Bidirectional path tracing Metropolis light transport Photon mapping Progressive photon mapping Figure 1 : A glass lamp illuminates a wall and generates a complex caustics lighting pattern on the wall. This type of illumination is difficult to simulate with Monte Carlo ray tracing methods such as path tracing, bidirectional path tracing, and Metropolis light transport. The lighting seen through the lamp is particularly difficult for these methods. Photon mapping is significantly better at capturing the caustics lighting seen through the lamp, but the final quality is limited by the memory available for the photon map and it lacks the fine detail in the illumination. Progressive photon mapping provides an image with substantially less noise in the same render time as the Monte Carlo ray tracing methods and the final quality is not limited by the available memory. This paper introduces a simple and robust progressive global illumination algorithm based on photon mapping. Progressive photon mapping is a multi-pass algorithm where the first pass is ray tracing followed by any number of photon tracing passes. Each photon tracing pass results in an increasingly accurate global illumination solution that can be visualized in order to provide progressive feedback. Progressive photon mapping uses a new radiance estimate that converges to the correct radiance value as more photons are used. It is not necessary to store the full photon map, and unlike standard photon mapping it possible to compute a global illumination solution with any desired accuracy using a limited amount of memory. Compared with existing Monte Carlo ray tracing methods progressive photon mapping provides an efficient and robust alternative in the presence of complex light transport such as caustics and in particular reflections of caustics.
Ref. REF introduced progressive photon mapping where the global illumination solution becomes increasingly accurate and can be visualized to provide progressive feedback.
Progressive photon mapping
SIGGRAPH Asia '08
Computer Science