Photon Map Gathering on the GPU

Szabolcs Czuczor, László Szirmay-Kalos, László Szécsi, and László Neumann
Department of Control Engineering and Information Technology, Technical University of Budapest,
Budapest, Magyar Tudósok krt. 2, HUNGARY


Photon mapping methods obtain the indirect illumination of a point by finding those photon hits that arrived at the neighborhood of the point on the object surface. These neighborhood searches are the most time consuming step of the final gathering phase even if sophisticated data structures, like the kd-tree, are used. This paper proposes a method that stores the photon hits in a texture of the graphics hardware and replaces neighborhood searches by the filtering of this texture. The filtering step find the irradiance of all points (i.e. all texels) simultaneously in a single step, thus the average irradiance of a point can be obtained by a single texture lookup. Using this approach we can port the final gathering step of photon mapping to the graphics hardware (GPU). The CPU is only responsible for generating new light paths and updating the unfiltered photon map. Thanks to the optimal subdivision of the computation work between the the CPU and the GPU, the proposed algorithm can render globally illuminated scenes interactively.


Global illumination, GPU programming, HLSL, photon mapping, final gathering.