The basic goal of this implementation of the photon map is to render true reflective and refractive caustics. The
photon map was first introduced by Henrik Wann Jensen (see Suggested Reading).
Photon mapping is a technique which uses a forward ray-tracing pre-processing step to render refractive and
reflective caustics realistically. This means that mirrors can reflect light rays and lenses can focus light.
Photon mapping works by shooting packets of light (photons) from light sources into the scene. The photons are
directed towards specific objects. When a photon hits an object after passing through (or bouncing off of) the target
object, the ray intersection is stored in memory. This data is later used to estimate the amount of light contributed
by reflective and refractive caustics.
This image shows refractive caustics from a sphere and a cylinder. Both use an index of refraction of
Also visible is a small amount of reflective caustics from the metal sphere, and also from the clear cylinder and
Here we have three lenses and three light sources. The middle lens has photon mapping turned off. You can also see
some reflective caustics from the brass box (some light reflects and hits the blue box, other light bounces through
the nearest lens and is focused in the lower left corner of the image).