I built a custom ray tracer in C++ to render a short film from scratch. Rehearsal.♦︎
A 10-second short film. Winner of the 2024 Rendering Prize. Everything you see here was rendered using a distributed ray tracer.
Implemented diffuse and Phong shading, mirror and glossy reflections, Perlin noise, and supersampling anti-aliasing. I built an indexed mesh structure for scene geometry and used bounding volume hierarchy (BVH) to accerate ray–triangle intersections using a surface area heuristic (SAH) for space subdivision informed by the landmark 1990 paper “Heuristics for ray tracing using space subdivision” paper from The Visual Computer (1990). The figure in the scene was animated with the help of the CMU Motion Capture Database.
The final scene was modeled, lit, and rendered entirely by me. This also served as my final project for CPSC 478 Computer Graphics course. You can see some work-in-progress clips below.
/
Plotted out basic scene layout and camera motion. Implemented cylindrical intersections with BVH.
1 of 4