This project uses a premade OpenGL pathtracer with modifications for direct light sample reuse. It was done for the course CSCI 2240 Advanced Computer Graphics at Brown University.
The paper's authors are
- Benedikt Bitterli
- Chris Wyman
- Matt Pharr
- Peter Shirley
- Aaron Lefohn
- Wojciech Jarosz
Honorary papers that were also helpful include ReSTIR GI and Generalized Resampled Importance Sampling
Other sources
Images
In this image, there are 2 blank, non emissive lights outside the cornell box. On the left, ReSTIR is used, on the right, it is not.
In the following three images, on the left is our ReSTIR output, and the right is without. All using one super sample
Here is a denoised image.
Here is a scene with two thousand lights.
On the left is no ReSTIR, the middle is importance sampling, and the right is importance sampling with spatial and temporal reservoir sharing (all of ReSTIR).
Here is a link to our presentation
Of note, our temporal does not work as the paper describes. We naively reuse samples from previous frames instead of transforming it based on camera locations. We unfortuantely could not get this aspect working perfectly on time, but otherwise the program functions as we understand it from the paper.