CS 5620/6620 - Fall 2025 - Rendering with Ray Tracing
Project 13 - Path Tracer
Unlike the previous projects, in this project we will not simply add a new feature to our ray tracers. Instead, we will replace the Monte Carlo GI component with path tracing. Converting our renderer to a sampler, we will no longer need the legacy shading interface.
Requirements
Implement path tracing with a large number of bounces using Russian roulette.
Implement multiple importance sampling.
Render one or more scenes with indirect illumination.
Compare rendered images with different numbers of bounces.
Make sure to use gamma correction.
Source Code
The following source code files are provided to help you with this and upcoming projects. You are not required to use them, but it is highly recommended that you use them and refrain from modifying them. Some of these files include additional code as compared to the same files in the previous project, so make sure to download them all again.
renderer.h: The ShadeInfo class is removed (unless LEGACY_SHADING_API is defined).
scene.h: Direction sampler has a new method for calculating the probability of a given direction sample. Light::Illuminate() and Material::Shade() methods are removed (unless LEGACY_SHADING_API is defined).
lights.h: Removes the Illuminate() methods (unless LEGACY_SHADING_API is defined) and includes implementations of the new direction sampler interface for most lights.
materials.h: Removes the Shade() methods (unless LEGACY_SHADING_API is defined) and materials now include the new direction sampler interface.
Optional Feature Suggestions
Implement progressive rendering.
Implement Light tracing.
Implement Bidirectional path tracing.
References
[Kajiya 1986]
James T. Kajiya. 1986. The rendering equation. In Proceedings of the 13th annual conference on Computer graphics and interactive techniques (SIGGRAPH '86), David C. Evans and Russell J. Athay (Eds.). ACM, New York, NY, USA, 143-150.
[Veach 1997]
Eric Veach. 1997. Robust Monte Carlo Methods for Light Transport Simulation. PhD dissertation, Stanford University, December 1997.