You are on page 1of 25

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 Global Illumination
Goal: Global Illumination
a
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]
1
st
Bounce 2
nd
3
rd
4
th


Build Tree
Image Space Photon Mapping (milliseconds)
Last Bounce
(Estimate Radiance)

Data Transfer
GPU Bounce Map
GPU Photon Volumes
CPU Trace
Pseudocode
1. For each emitter:
(a) Render shadow map.
(b) Render G-buffer from the emitters 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 eyes 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.

System
CPU Trace
Last Bounce:
Photon Volumes
Direct + Shadows
1
st
Bounce:
Bounce Map
Bounce Map
11
Position
Outgoing Direction Outgoing Power Refractive Index,
A Priori Differential Probability
Normal
Material Parameters (BSDF)

Radiance Estimate
INSERT r = f(rho)
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)
13

14
photon
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
Results
16
All at 1920 x 1080
No LOD
Lit from scratch every frame
Direct Only
Indirect
Direct + Indirect
Photons
Direct + Ambient
Performance Details

22
25
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.

You might also like