1 / 26

Incremental Instant Radiosity for Real-Time Indirect Illumination

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.

Download Presentation

Incremental Instant Radiosity for Real-Time Indirect Illumination

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Incremental Instant Radiosity forReal-Time Indirect Illumination Samuli Laine1,3 Hannu Saransaari3Janne Kontkanen2,3 Jaakko Lehtinen3,4Timo 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 • Officially close enough to full GI solution • Terminate light paths at first intersection Tabellion and Lamorlette, SIGGRAPH 2004

  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 32tessellated 4.4k

  21. Maze Triangles: original 55ktessellated 63k

  22. Sibenik Triangles: original 80ktessellated 109k

  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

More Related