Photon Mapping Principle


PREVIOUS < - - - - > CS 184 HOME < - - - - > CURRENT < - - - - > NEXT

Photon mapping allows to simulate global illumination in scenes containing arbitrary objects
(for which we can calculate ray intersections)
with diffuse, or glossy, or reflective, or transparent, or translucent surfaces.


A photon map is created by emitting a large number of photons from the light sources into the scene.

Each photon is traced through the scene, and when it hits a non-specular surface, it is stored in the photon map.
This can be a separate data structure, e.g., kD-tree.

These photons are stored with incoming direction vectors to provide samples of the incoming light flux at various surface points. This photon map can then be used to produce radiance estimates for any assumed BRDF. 

More samples should be cast to "important" surface points;
thus two separate photon maps are created:

1.) A high-resolution photon map that represents caustics (spots where light is concentrated by lensing effects) to be visualized directly;
2.) A global photon map of lower resolution that serves to reduce the number of reflections that need to be traced, and also to generate optimized sampling directions in the Monte Carlo ray tracer (to increase its efficiency).  Radiance values for a given location are then generated by interpolating over the nearest N photon samples stored.


Photon mapping makes it possible to efficiently simulate global illumination in complex scenes, even when they include participating media.

Example:
A simple museum scene rendered with photon mapping.

Note the caustic below the glass sphere, the glossy reflections,
and the overall quality of the global illumination.


Source:
http://graphics.stanford.edu/~henrik/papers/ewr7/ewr7.html

Background:
Realistic Image Synthesis Using Photon Mapping by Henrik Wann Jensen






PREVIOUS < - - - - > CS 184 HOME < - - - - > CURRENT < - - - - > NEXT