Monte Carlo Ray Tracer with Photon Mapping

Realistic image synthesis is a wide reserach area and has become important in industries such as entertainment (games and film), medical and scientific visualization. For this project we did an implementation of a Monte Carlo ray tracer using photon maps. This was a part of the course Advanced Global Illumination and Rendering at Linköping University where each student or groups of student got to implement there own ray tracer.

We started this task by implementing a simple Whitted ray tracer with perfect reflection and refraction. To also handle diffuse reflectors we implemented a Monte Carlo estimator to sample radiance in several direction over the hemisphere. The last part of the project was spent on trying to reduce noise and speed up the convergence of the estimator by using the technique of Photon mapping.

The ray tracer is implemented in C++ and uses OpenMP to parallelize the process on multiple cores, thus speeding up the rendering time.