DXR Path Tracer with ReSTIR

December 2022

ReSTIR

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:

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.