26
Incremental Instant Radiosity for Real-Time Indirect Illumination Samuli Laine 1,3 Hannu Saransaari 3 Janne Kontkanen 2,3 Jaakko Lehtinen 3,4 Timo Aila 1,3 1 NVIDIA Research 2 PDI/DreamWorks 3 Helsinki University of Technology 4 Remedy Entertainment

Incremental Instant Radiosity for Real-Time Indirect Illumination

Embed Size (px)

DESCRIPTION

Incremental Instant Radiosity for Real-Time Indirect Illumination. Samuli Laine 1,3 Hannu Saransaari 3 Janne Kontkanen 2,3 Jaakko Lehtinen 3,4 Timo Aila 1,3 1 NVIDIA Research 2 PDI/DreamWorks 3 Helsinki University of Technology 4 Remedy Entertainment. Motivation. - PowerPoint PPT Presentation

Citation preview

Page 1: Incremental Instant Radiosity for Real-Time Indirect Illumination

Incremental Instant Radiosity forReal-Time Indirect Illumination

Samuli Laine1,3 Hannu Saransaari3

Janne Kontkanen2,3 Jaakko Lehtinen3,4

Timo Aila1,3

1NVIDIA Research 2PDI/DreamWorks3Helsinki University of Technology 4Remedy Entertainment

Page 2: Incremental Instant Radiosity for Real-Time Indirect Illumination

Motivation

• Indirect illumination looks good

Direct + constant ambient Direct + 1 bounce indirect

Page 3: Incremental Instant Radiosity for Real-Time Indirect Illumination

Previous Work

• Instant radiosity [Keller 97]

• Interleaved sampling [Keller & Heidrich 01]

– Hardware implementation [Segovia et al. 06]

• Large-scale interactive indirect illumination– Ingo Wald’s PhD thesis [Wald04]– Precomputed transport [Kristensen et al. 05]

• Reflective shadow maps, Splatting indirect illumination [Dachsbacher&Stamminger 05] x 2

Page 4: Incremental Instant Radiosity for Real-Time Indirect Illumination

Instant Radiosity Howto

• Trace light paths from light source

• Place virtual point lights (VPLs) at intersections

• Render scene, use VPLs as 180o spots

• Global illumination ensues

Page 5: Incremental Instant Radiosity for Real-Time Indirect Illumination

One-Bounce Indirect Illumination

• Officially close enough to full GI solution

• Terminate light paths at first intersection

Tabellion and Lamorlette, SIGGRAPH 2004

Page 6: Incremental Instant Radiosity for Real-Time Indirect Illumination

Baseline 1-Bounce Instant Radiosity

• Cast a bunch of rays from the light source– Rays must be distributed according to the

emission function

• At each hit point, construct a VPL– Render shadow map (paraboloid)– Yes, that’s a lot of shadow maps to render per

frame

• Gather illumination from all VPLs– Yes, that’s a lot of shadow map lookups per

pixel

Page 7: Incremental Instant Radiosity for Real-Time Indirect Illumination

What to do?

Page 8: Incremental Instant Radiosity for Real-Time Indirect Illumination

The Recipe for Success

Old ingredients

• Instant radiosity with single bounce

• Interleaved sampling

• Paraboloid shadow mapping

New ingredients

• Reuse of VPLs

• ... and that’s about it

Page 9: Incremental Instant Radiosity for Real-Time Indirect Illumination

VPL Reuse

• Reuse VPLs from previous frame– Generate as few new VPLs as possible– Stay within budget, e.g. 4-8 new VPLs/frame

+ Benefit: Can reuse shadow maps!

! Disclaimer: Scene needs to be static

§ Note: Illumination does not lag behind

Page 10: Incremental Instant Radiosity for Real-Time Indirect Illumination

How To Reuse VPLs

• Every frame, do the following:– Delete invalid VPLs– Reproject existing VPLs to a 2D domain

according to the new light source position– Delete more VPLs if the budget says so– Create new VPLs– Compute VPL intensities

Page 11: Incremental Instant Radiosity for Real-Time Indirect Illumination

2D Domain for VPLs

• Let’s concentrate on 180o cosine-falloff spot lights for now

• Nusselt analogUniform distribution in unit disc

= Cosine-weighted directional distribution

Page 12: Incremental Instant Radiosity for Real-Time Indirect Illumination

Reprojecting VPLs

• So we have VPLs from previous frame

• Discard ones behind the spot light

• Discard ones behind obstacles

• Reproject the rest

Page 13: Incremental Instant Radiosity for Real-Time Indirect Illumination

Spatial Data Structures

• Compute Voronoi diagram and Delaunay triangulation for the VPL point set

Page 14: Incremental Instant Radiosity for Real-Time Indirect Illumination

Deleting VPLs

• Greedily choose the ”worst” VPL= The one with shortest Delaunay edges

Page 15: Incremental Instant Radiosity for Real-Time Indirect Illumination

Generating New VPLs

• Greedily choose the ”best” spot= The one with longest distance to existing VPLs

Page 16: Incremental Instant Radiosity for Real-Time Indirect Illumination

Computing VPL Intensities

• Since our distribution may be nonuniform, weight each VPL according to Voronoi area

Page 17: Incremental Instant Radiosity for Real-Time Indirect Illumination

Omni Lights?!

• Perform all 2D domain actions on the surface of unit sphere

• Blunder in the paper– Surface of 3D tetrahedralization = convex hull– Would’ve been a lot simpler and faster

Page 18: Incremental Instant Radiosity for Real-Time Indirect Illumination

Interleaved Sampling

• Reduces the number of shadow map lookups per pixel

• For each pixel, use a subset of all VPLs

• Apply geometry-aware filtering

Page 19: Incremental Instant Radiosity for Real-Time Indirect Illumination

Results

• 256 VPLs in all scenes

• Budget: 4-8 new VPLs per frame

• GeForce 8800 GTX

Page 20: Incremental Instant Radiosity for Real-Time Indirect Illumination

Resolution Time (ms) FPS

1024×7680 13.9 65.1

1600×1200 26.8 29.7

Cornell

Triangles:

original 32tessellated 4.4k

Page 21: Incremental Instant Radiosity for Real-Time Indirect Illumination

Resolution Time (ms) FPS

1024×7680 15.6 49.2

1600×1200 28.6 28.5

Maze

Triangles:

original 55ktessellated 63k

Page 22: Incremental Instant Radiosity for Real-Time Indirect Illumination

Resolution Time (ms) FPS

1024×7680 17.0 48.6

1600×1200 30.1 25.9

Sibenik

Triangles:

original 80ktessellated 109k

Page 23: Incremental Instant Radiosity for Real-Time Indirect Illumination

Limitations / Future Work

• Not full GI– Well, we could use entire light paths, but that

would lead to many faint VPLs– Feasible at some point in future

• Diffuse surfaces only– Slightly glossy should work OK– Truly glossy won’t work

Page 24: Incremental Instant Radiosity for Real-Time Indirect Illumination

More Limitations / Future Work

• Not view-dependent– Distributing VPLs should be based on visual

importance– Insert heuristics here

• Dynamic scenes non-trivial– The shadows are wrong for less than a

second when the scene changes, but still...– Predictive VPL generation could help

Page 25: Incremental Instant Radiosity for Real-Time Indirect Illumination

Strengths

• No precomputation

• Dynamic objects can receive indirect light

• Real-time performance

• Simplicity

Page 26: Incremental Instant Radiosity for Real-Time Indirect Illumination

Thank You

• Questions