Path tracing is the big brother of ray tracing, able to simulate indirect lighting through recursive ray bounces and light scattering.
I implemented a path tracer during my time in graduate computer graphics sophomore spring. The path tracer uses Russian Roulette to terminate paths, the extended Reinhard operator for tone mapping from HDR, and low discrepancy sampling to decrease noise.
The path tracer supports six kinds of materials.






Additionally, the path tracer supports depth-of-field effects by varying sampling camera position and angle, as well as HDRI mapped backgrounds.


