alt text

alt text

The second raytracer I built for school, this time a bidirectional path tracer in C++. Over the course of the project, I added support for several forms of optimization as well as features such as depth of field and constructive solid geometry (CSG). Other features such as global illumination, shadows, and reflections came naturally out of the algorithm.

This project holds the record for most optimization I’ve done on a single project - its runtime was literally reduced by orders of magnitude of orders of magnitude as more optimizations (such as more intelligently cast rays and Monte Carlo integration) were added.