Toward Practical Real-Time Photon Mapping:
Efficient GPU Density Estimation

in Proceedings of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games (I3D 2013)

Michael Mara, NVIDIA
David Luebke, NVIDIA
Morgan McGuire, NVIDIA and Williams College

Paper (PDF)
Talk (PPTX)


ACM Copyright Notice Copyright by the Association for Computing Machinery, Inc. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Publications Dept, ACM Inc., fax +1 (212) 869-0481, or The definitive version of this paper can be found at ACM's Digital Library


We describe the design space for real-time photon density estimation, the key step of rendering global illumination (GI) via photon mapping. We then detail and analyze efficient GPU implementations of four best-of-breed algorithms. All produce reasonable results on NVIDIA GeForce 670 at 1920x1080 for complex scenes with multiple-bounce diffuse effects, caustics, and glossy reflection in real-time. Across the designs we conclude that tiled, deferred photon gathering in a compute shader gives the best combination of performance and quality.


We thank our colleagues Jacopo Pantaleoni at NVIDIA and Guedis Cardenas at Williams College for their contributions to this project.

Koguchi implemented a PS4 version of the tiled photon mapper which is available to PS4 developers in the SDK at ${SDK_PATH}\target\samples\sample_code\system\tutorial_cpu_gpu_optimization\GPU_photon_mapping\.



  author = {Michael Mara and Morgan McGuire and David Luebke},
  title = {Toward Practical Real-Time Photon Mapping: Efficient GPU Density Estimation},
  month = {March},
  year = {2013},
  booktitle = {Interactive 3D Graphics and Games 2013},
  location = {Orlando, Florida},
  url = {}