25
Hardware-accelerated global illumination by image space photon mapping Morgan McGuire & David Luebke

hardware-accelerated global illumination by image space photon mapping

  • Upload
    lynice

  • View
    28

  • Download
    3

Embed Size (px)

DESCRIPTION

hardware-accelerated global illumination by image space photon mapping

Citation preview

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 IlluminationGoal: 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]

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

David Luebke
technically its rebalancing the tree, right? doesn't traditional PM build the tree incrementally then balance it to speed up the knn-search?

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.

SystemCPU Trace

Last Bounce: Photon Volumes

Direct + Shadows1st Bounce:Bounce Map

Bounce Map

11

Position

Outgoing DirectionOutgoing Power Refractive Index,A Priori Differential Probability

Normal Material Parameters (BSDF)

Radiance Estimate

INSERT r = f(rho)

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)

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

16

Results

All at 1920 x 1080No LODLit from scratch every frame

Direct Only

Indirect

Direct + Indirect

Photons

Direct + Ambient

22

Performance Details

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.