CS 5620/6620 - Fall 2025 - Rendering with Ray Tracing
Project 10 - Soft Shadows and Glossy Surfaces
In this project we will add support for soft shadows and glossy reflections/refractions to our ray tracers.
Requirements
Implement soft shadows for area lights.
Implement glossy reflections and refractions.
Render images showing your results with different parameters.
XML Scene Format
In the XML scene format we specify area shadows by adding a "size" value to point lights. This size value effectively converts the point light to a spherical area light.
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.
renderer.h: The ShadeInfo class now contains a random number generator and secondary ray traversal methods can differentiate between reflection and refraction rays.
scene.h: Includes changes for rendering light sources.
lights.h: Point light now has a size parameter that turns it into a spherical light and makes it renderable. Notice that the implementation of PointLight::Illuminate() method is removed.
xmlload.cpp: Includes changes for loading the new light parameter.
viewport.cpp: Includes changes for rendering the renderable lights in the viewport.
Test Scenes
The following scene files are provided to help you test your implementation. You can also prepare other scenes to show your work.
Test scene: Four reflective balls with different glossiness values, one reflective teapot, and one refractive glossy ball in front of a wall, illuminated by a spherical light.
Optional Feature Suggestions
Implement area lights for shading.
Use a Quasy Monte-Carlo sequence for glossy reflections/refractions as well as area lights.
References
[Cook et al. 1984]
Robert L. Cook, Thomas Porter, and Loren Carpenter. 1984. Distributed ray tracing. In Proceedings of the 11th annual conference on Computer graphics and interactive techniques (SIGGRAPH '84), Hank Christiansen (Ed.). ACM, New York, NY, USA, 137-145.