CS 5620/6620 - Fall 2025 - Rendering with Ray Tracing
Project 11 - Monte Carlo Global Illumination
In this project we will use Monte Carlo ray tracing for computing global illumination.
Requirements
Monte Carlo sampling for diffuse indirect illumination with a single bounce.
Compare results with uniform hemisphere sampling and cosine-weighted importance sampling using the same sample count.
Make sure to use gamma correction.
Implement inverse square attenuation for point lights.
Implement energy conserving Blinn material.
Optional: You can implement indirect illumination as a new ambient light source type. Given a point and a surface normal, the Illuminate method of this light source generates Monte Carlo samples over the hemisphere and returns an average light intensity. This average is computed by weighting each sample using the geometry term.
XML Scene Format
In the XML scene format we add an emission color to the Blinn material. This parameter allows any object act like a light source, though the object using this material is not listed among the scene lights.
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 recommened 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.
scene.h: Includes a new parameter in the Camera class for controlling gamma correction.
materials.h: Materials now include an emission parameter.
lights.h: Point light now has an attenuation parameter.
xmlload.cpp: Includes changes for loading the new camera, material, and light properties.
viewport.cpp: Includes changes for gamma correction, material emission, and light attenuation.
Test Scenes
The following scene files are provided to help you test your implementation. You can also prepare other scenes to show your work.
Cornell Box: A simple Cornell box scene with a few spheres.
Optional Feature Suggestions
Multiple bounces for indirect illumination.
Quasy Monte Carlo sampling for indirect illumination.
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.