Title: Photon Mapping
Author: Nathan Cournia
Description: Overview of photon mapping.
Institution: Clemson University
Class: CPSC805 - Advanced Computer Graphics
Language: C++
Construction Time: About 1 Week
Date Completed: April 18, 2002


Photon mapping is a global illumination technique developed by Henrik Wann Jensen. After reading a slew of papers I was eventually able to add a photon caustic map into my ray tracer. Here's an example of an image that my ray tracer can now produce (notice the caustic):




Here are some slides (PDF) that give a general overview on what photon mapping is.

Compiling:
Most of the variables for photon mapping are hard code (sorry, I was lazy). As such, you'll have to modify the code on a per scene basis (changing the photon gathering radius and gather amount). However, compiling the code should be straight forward. Just type:

make

For command line options type:

./yart

Example invocation:

./yart -i caustic.pov -w 320 -h 240


Source Code: cournia_yart-20020418.tar.gz (56k)