Presentation is loading. Please wait.

Presentation is loading. Please wait.

Incremental Instant Radiosity for Real-Time Indirect Illumination

Similar presentations


Presentation on theme: "Incremental Instant Radiosity for Real-Time Indirect Illumination"— Presentation transcript:

1 Incremental Instant Radiosity for Real-Time Indirect Illumination
Samuli Laine1,3 Hannu Saransaari3 Janne Kontkanen2,3 Jaakko Lehtinen3,4 Timo Aila1,3 1NVIDIA Research 2PDI/DreamWorks 3Helsinki University of Technology 4Remedy Entertainment

2 Motivation Indirect illumination looks good Direct + constant ambient
Direct + 1 bounce indirect

3 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

4 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

5 One-Bounce Indirect Illumination
Tabellion and Lamorlette, SIGGRAPH 2004 Officially close enough to full GI solution Terminate light paths at first intersection

6 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

7 What to do?

8 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

9 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

10 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

11 2D Domain for VPLs Let’s concentrate on 180o cosine-falloff spot lights for now Nusselt analog Uniform distribution in unit disc = Cosine-weighted directional distribution

12 Reprojecting VPLs So we have VPLs from previous frame
Discard ones behind the spot light Discard ones behind obstacles Reproject the rest

13 Spatial Data Structures
Compute Voronoi diagram and Delaunay triangulation for the VPL point set

14 Deleting VPLs Greedily choose the ”worst” VPL
= The one with shortest Delaunay edges

15 Generating New VPLs Greedily choose the ”best” spot
= The one with longest distance to existing VPLs

16 Computing VPL Intensities
Since our distribution may be nonuniform, weight each VPL according to Voronoi area

17 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 

18 Interleaved Sampling Reduces the number of shadow map lookups per pixel For each pixel, use a subset of all VPLs Apply geometry-aware filtering

19 Results 256 VPLs in all scenes Budget: 4-8 new VPLs per frame
GeForce 8800 GTX

20 Cornell Triangles: original 32 tessellated 4.4k Resolution Time (ms)
FPS 1024×7680 13.9 65.1 1600×1200 26.8 29.7

21 Maze Triangles: original 55k tessellated 63k Resolution Time (ms) FPS
1024×7680 15.6 49.2 1600×1200 28.6 28.5

22 Sibenik Triangles: original 80k tessellated 109k Resolution Time (ms)
FPS 1024×7680 17.0 48.6 1600×1200 30.1 25.9

23 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

24 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

25 Strengths No precomputation Dynamic objects can receive indirect light
Real-time performance Simplicity

26 Thank You Questions


Download ppt "Incremental Instant Radiosity for Real-Time Indirect Illumination"

Similar presentations


Ads by Google