
DXR and Global Illumination
This is a solo project I worked on for two months during Y2. While I didn't entirely get the result I wanted, this project was a great introduction into raytracing and global illumination.
For a more in-depth explanation, you can check my blog post here.

Raytracing with DXR

First step: Getting hit, ray gen and miss shaders, as well as a BVH, working.
Second step: Per-instance data. Here I'm rendering the normals of each mesh.

To implement DXR I used NVIDIA's tutorials and helpers. I did this to make the process faster, as my focus this project was global illumination, not raytracing.
While I still had some difficulties tackling new concepts like shader tables and the way the raytracing pipeline worked, implementing a PBR ray-tracer only took me about 2 weeks.

Third step: textures.
Implementing RTXGI
The implementation step of RTXGI were clearly explained in the GitHub repository. I go more in depth into it in my blog post.
Unfortunately, after implementation, I still noticed bugs and inaccuracies in the way the irradiance was being calculated. Nevertheless, I still learned a lot while working on this project.

Cornell box with direct lighting only
Calculated irradiance


Direct lighting + irradiance
Why RTXGI instead of other Global Illumination methods
When I decided I wanted to implement Global Illumination, I had multiple ways of implementation to choose from. My main 3 options were ReSTIR, Dynamic Noise Free Screen Space Diffuse Global Illumination and RTXGI.
I ended choosing RTXGI because there was more documentation, which was helpful as I only had 2 months to implement.
Dynamic, Noise Free, Screen Space Diffuse Global Illumination
Pros:
-
Simple implementation with clear explanations
-
Includes referenceable code snippets
Cons:
-
No prevention for shadow or light leaks; requires a solution
-
Doesn't account for a moving camera, necessitating denoising techniques like motion vectors
-
Accounting for lighting outside screen space would require further research.
RTX GI
Pros:
-
Shadow and light leak-free
-
Noise-free
-
Abundant documentation, including a YouTube video and GitHub project for practical learning
Cons:
-
None identified.
reSTIR GI
Pros:
-
State-of-the-art solution
-
Upcoming lecture in the graphics masterclass.
Cons:
-
Complicated
-
Requires a denoising algorithm.
-
Challenging to understand from one paper alone.