Following the light
This study brings together the ray tracing and path tracing work from CIS-5610, Advanced Computer Graphics at Penn. Rather than separate entries for every assignment, it follows the renderer's development from geometric visibility to material response and indirect illumination.
The course supplied assignment frameworks and test scenes. I implemented the assigned rendering components and added experiments in acceleration, sampling and rough transmission. The images here are outputs from those implementations, not the course's reference renders.
From intersections to acceleration
The early C++ renderer covers camera rays, transformed geometry, shadows, recursive reflection and refraction. For scenes containing triangle meshes, I added a bounding-volume hierarchy with surface-area-based splitting and a linearized traversal representation.
Sampling and global illumination
The GLSL path tracer progressively accumulates samples. Its development includes explicit light sampling, multiple importance sampling, microfacet materials and multi-bounce illumination, with environment maps supplying lighting and background content.
Implementing next-event estimation early made the role of light sampling tangible: instead of relying only on random paths to find a light, the integrator explicitly queries one. MIS then combines light and BSDF sampling strategies.
Rough transmission
For an additional experiment, I implemented a microfacet transmissive material and built a scene around a frosted, jade-like dodecahedron with a light inside. It sits beside reflective and transmissive objects so their responses can be compared in the same image.
The opening image is one of these experiments. Residual sampling noise is retained as part of the original outputs, rather than presenting them as fully converged beauty renders.
Related studies
Materials & SSR explores faster approximations to material response. Implicit Modeling & SSS applies ray marching to implicit geometry and thickness-aware lighting.
Built with: C++, Qt, OpenGL and GLSL. Coursework and personal extensions, Spring 2026.

