Skip to content

meganr28/DXR-Pathtracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DirectX Raytracing - Path Tracer

  • Megan Reddy
  • Tested on: Windows 10, AMD Ryzen 9 5900HS with Radeon Graphics @ 3301 MHz 16GB, NVIDIA GeForce RTX 3060 Laptop GPU 6GB (Personal Computer)

Introduction

restir

This project implements the Reservoir-based Spatiotemporal Importance Resampling (ReSTIR) algorithm first introduced by Bitterli et al. at SIGGRAPH 2020. The goal is to render scenes with many lights in real-time, producing more converged results than standard direct lighting with a randomly chosen light. The basic idea is to sample a certain number of light candidates per pixel and store the result in a reservoir, discard occluded samples, combine results from previous pixels as well as adjacent pixels, and then shade the pixel with the reservoir's weight. A comparison photo of each pass is shown below. This implementation is based on Chris Wyman's tutorials on DirectX Raytracing and uses NVIDIA's Falcor framework.

comp4

Features

  • Basic DXR Pathtracer

    • Direct illumination
    • Global illumination
    • Lambertian materials
    • Antialiasing
    • Tone mapping
  • ReSTIR

    • Raytraced G-Buffer
    • Weighted RIS
    • Visibility reuse
    • Temporal reuse
    • Spatial reuse
    • A-Trous denoising

Build Instructions

This project was developed using Chris Wyman's base code from his SIGGRAPH 2018 DirectX Raytracing tutorials. It is dependent on NVIDIA's Falcor framework (version 3.1.0). The basic requirements can be found on the tutorial's webpage here.

Limitations and Future Work

Some limitations of this work include:

  • One test scene (test on wider variety of scenes)
  • Only supports point lights (no area or mesh lights)

There are many interesting directions and possibilities for future work. This includes:

  • Supporting N > 1 samples (either by storing multiple reservoirs per pixel or doing separate passes of the algorithm)
  • Dynamic lighting
  • Extending to world-space (e.g. ReGIR)
  • Global illumination (ReSTIR GI)
  • Better temporal coherence

References

[1] Chris Wyman - "A Gentle Introduction to DirectX Raytracing" (ACM SIGGRAPH 2018 Course)

[2] Bitterli et al. - Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting (ACM SIGGRAPH 2020)

[3] Shubham Sachdeva - Spatiotemporal Reservoir Resampling (ReSTIR) - Theory and Basic Implementation

[4] Dammertz et al. - Edge-Avoiding À-Trous Wavelet Transform for Fast Global Illumination Filtering (HPG 2010)

[5] Boksansky et al. - Rendering Many Lights with Grid-Based Reservoirs - Ray Tracing Gems II Chapter 23

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors