Hardware-accelerated global illumination by image space photon mapping
Morgan McGuire & David Luebke
The Authors
• Morgan McGuire PhD.– Prof at Williams College/visiting prof. at NVIDIA
research• David Luebke PhD: Researcher NVIDIA Corp.
• Paper: 2009 ACM New Orleans, LA
Motivation
Dynamic global illumination in which lights and objects can move freely - in real time, at high resolution
Goal: Dynamic HD Global Illumination
a
1920x1080, 20fps
Goal: Dynamic Global Illumination
Contribution 1
Photon Mapping Time (seconds)e.g., [Jensen 96, 01, Pharr and Humphreys 04]
1st Bounce 2nd 3rd 4th… Build Tree
Image Space Photon Mapping (milliseconds)
Last Bounce(“Estimate Radiance”)
…
Data Transfer
GPU Bounce Map GPU Photon VolumesCPU Trace
Pseudocode1. For each emitter:
(a) Render shadow map.(b) Render G-buffer from the emitter’s view.(c) Emit photons, bounce once, and store in a bounce map.(d) (CPU)
Continue tracing bounce map photons through the scene until absorption, storing them before each bounce in the photon map.
2. Render G-buffer from the eye’s view.
3.Compute direct illumination using shadow maps and deferred shading of the eye G-buffer.
4. Render indirect illumination by scattering photon volumes.
5. ender translucent surfaces back-to-front with direct, mirror,and refracted illumination only.
Steps
1. Rasterize the scene from the eye to create a screen space deferred-shading G-buffer. 2. For each light, rasterize a bounce map in light space. 3. Advance bounced photons by world-space ray tracing. 4. Scatter the final photons in screen space, invoking illumination on the G-buffer by rasterizing photon volumes.
Bounce Map
11
Position
Outgoing DirectionOutgoing Power Refractive Index,A Priori Differential Probability
Normal Material Parameters (BSDF)
…
13
Radiance Estimate• Traditional photon mapping: gather
• Per pixel• k-NN search in k-d tree• World-space (3D)
• Image-space photon mapping: scatter• Per photon• Hardware rasterization using photon volumes• Image space (2D)
• Invoke an illumination contribution on all pixels for which a photon might be a valid estimate of incident radiance
• Not virtual point lights (a.k.a. instant radiosity)• Not 2D splatting
Photon Volumes
– Point light sources.– Pinhole camera
Limitations:
- Utilized the concept of image space to eliminate the need to adapting kd-Tree to GPU architecture.
Advantages
Assumptions
-- Clipping at near plane – ignorable/avoidable: Accurate light/volume rep resulting in problems when the camera gets inside the volume-- 4x more expensive than direct illumination (heavy fill consumption)-- Consistent, but biased (like photon mapping)-- Performance is limited by CPU trace
- Algorithm was simplified enabling implementation of the original photon map without loss of quality
- Capable of rendering full featured offline renders without considerable amount of noise.