Kevin Chen

Ray Tracer and Animation

Spring 2021

tags: computer graphics

Built a distributed ray tracer in C++.

Implemented diffuse and Phong shading, mirror and glossy reflections, soft shadows, and supersampling anti-aliasing. I created an indexed mesh data structure to store scene geometry and a bounding volume hierarchy (BVH) to accelerate ray intersections. BVH space subdivision was based on the surface area heuristic from The Visual Computer 1990 paper Heuristics for ray tracing using space subdivision. I also implemented .OBJ file parsing for my renderer, enabling the import of models created in 3D modeling software like Blender or Maya.

I used motion capture data from the CMU Motion Capture Database. The final scene was lit and modeled by myself (re: done in Blender and imported into my renderer) and rendered using my ray tracer.

Final project for CPSC 478 at Yale, Computer Graphics.

Rendered video.