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.