DXR Path Tracer with ReSTIR
December 2022
Description: A basic DXR Path Tracer that implements the Reservoir-based Spatiotemporal Importance Resampling (ReSTIR) algorithm first introduced by Bitterli et al. at SIGGRAPH 2020. The goal is to improve convergence in scenes with many dynamic lights where standard direct lighting with one randomly chosen light would not be as successful. This implementation also uses NVIDIA’s Falcor framework for scene loading and CPU-side setup.
See Github and this slide deck for full technical and implementation details.
Paper:
- Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting, Bitterli et al., SIGGRAPH 2020
Features:
- Basic path tracer implemented with DirectX Raytracing
- Direct illumination
- Global illumination
- Lambertian materials
- Anti-aliasing
- Tone mapping
- ReSTIR
- Raytraced G-Buffer
- Weighted RIS
- Visibility reuse
- Temporal reuse
- Spatial reuse
- A-Trous denoising pass at the end
Note: I will be working on setting up my own DirectX framework soon and would like to revisit this implementation. I’m hoping this will allow for a deeper dive into the DirectX API as well as more customization.