Incremental Instant Radiosity for Real-Time Indirect Illumination
-
Upload
courtney-foreman -
Category
Documents
-
view
41 -
download
3
description
Transcript of Incremental Instant Radiosity for Real-Time Indirect Illumination
![Page 1: Incremental Instant Radiosity for Real-Time Indirect Illumination](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/1.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/2.jpg)
Motivation
• Indirect illumination looks good
Direct + constant ambient Direct + 1 bounce indirect
![Page 3: Incremental Instant Radiosity for Real-Time Indirect Illumination](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/7.jpg)
What to do?
![Page 8: Incremental Instant Radiosity for Real-Time Indirect Illumination](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/8.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/11.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/13.jpg)
Spatial Data Structures
• Compute Voronoi diagram and Delaunay triangulation for the VPL point set
![Page 14: Incremental Instant Radiosity for Real-Time Indirect Illumination](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/14.jpg)
Deleting VPLs
• Greedily choose the ”worst” VPL= The one with shortest Delaunay edges
![Page 15: Incremental Instant Radiosity for Real-Time Indirect Illumination](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/15.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/16.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/17.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/18.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/20.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/21.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/22.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/23.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/24.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/25.jpg)
Strengths
• No precomputation
• Dynamic objects can receive indirect light
• Real-time performance
• Simplicity
![Page 26: Incremental Instant Radiosity for Real-Time Indirect Illumination](https://reader036.fdocuments.us/reader036/viewer/2022062516/56812c58550346895d90e0b7/html5/thumbnails/26.jpg)
Thank You
• Questions