330 likes | 547 Vues
Implicit Visibility and Antiradiance for Interactive Global Illumination. Carsten Dachsbacher 1 , Marc Stamminger 2 , George Drettakis 1 , Frédo Durand 3 1 REVES/INRIA Sophia-Antipolis, 2 University of Erlangen, 3 MIT CSAIL. Motivation. global illumination
E N D
Implicit Visibility and Antiradiance for Interactive Global Illumination Carsten Dachsbacher1, Marc Stamminger2, George Drettakis1, Frédo Durand3 1 REVES/INRIA Sophia-Antipolis, 2 University of Erlangen, 3 MIT CSAIL
Motivation • global illumination • important for realistic image synthesis • interactivity is desirable • visibility is expensive direct illumination global illumination
Previous Work • off-line vs. precomputed vs. real-time • radiosity / finite element methods • amount of transport: form factors • computation involves visibility, most expensive part • dynamic scenes make global updates necessary [Sloan02] [Keller97] [Cohen88]
Previous Work - negative light • still using visibility • incremental updates for dynamic radiosity [Chen90] • complex data structures, “negative light” • photon mapping (shadow photons) [Jensen95] • alleviating visibility • ambient occlusion [Bunnell05] • “how to avoid explicit visibility” [Pellegrini99] • purely theoretical discussion • does not address directional discretization, iterative solutions
Light Transport rendering equation [Kajiya86] BRDF incident radiance geometry term visibility function
Rendering Equation • linear operators [Arvo94] • global transport operator G • computes incident radiance from other surfaces • determines visibility G transport with occlusion
Rendering Equation • reflection operator K • local operator, computes reflected radiance • rendering equation radiance L emission E G K transport with occlusion reflection
Goal: alleviate visibility computation • replace G • use operator U for unoccluded transport • problem: excessive light transport • solution: compensate with “negative light” U transport without occlusion generate negative light
New operator • additional local operator • go-through operator J • lets radiance pass through surface • no change in direction or magnitude K reflection U J transport without occlusion go-through operator
From occluded to unoccluded transport unoccluded problem: negative occluded input go-through radiance transport extraneous operator J light transport light L GL UL A=JGL UA Antiradiance what we want what we can do cheaply what we need to remove
unoccluded negative occluded transport light transport GL UL UA From occluded to unoccluded transport = -
occluded and unoccluded transport antiradiance radiance GL UA UL Antiradiance
Occluded vs. unoccluded transport UL: transport A to B GL: light is blocked at C, no transport A to B antiradiance generated at C A UL antiradiance exchange from C to B GL C B
Recap • new rendering equation • avoids explicit visibility • new quantity antiradiance • propagate K U reflection J transport without occlusion go-through operator
Practical implementation • finite element approach • iterative strategies and convergence • using the GPU • implicit visibility makes is feasible
Finite Elements • spatial and directional discretization • hierarchical radiosity with clustering • energy transport over links • form factors: energy transport between two patches • directional quantities: uniform discretization
Computation K reflection U J transport without occlusion go-through operator
global pass propagate energy hierarchical solver: links Computation U transport without occlusion
local pass transform incident energy into new exitant energy Computation K reflection J go-through operator
Iterative Solution • symmetric iteration
Symmetric Iteration 1st iteration 2nd iteration 3rd iteration path tracing 4th iteration 8th iteration reference
Iterative Solution • symmetric iteration • shadows are one step behind • fast convergence • it can diverge in contrived scenes • converged in allscenes tested
Iterative Solution • asymmetric iteration • one step of radiance propagation • multiple steps for antiradiance • #iterations = depth complexity • “emulate” one step of GL UL UA
Convergence • office scene • symmetric: faster in the beginning • asymmetric: better >90 steps • visually: 10 iterations suffice
spatial and directional discretization simple 2D data structures textures/render targets on GPUs each table stores L and A K and J operate on separate hemispheres Data structures exitant energy incident energy emission+total reflection elements directions
Data structures (global pass) link table cheap, because no visibility Q FPQ P direction mask * sender patch form factor receiver patch * exitant energy incident energy emission+total reflection directions
Data structures (local pass) store radiance and antiradiance for next iteration accumulate reflected radiance for display apply local operators to incident energy of each patch new antiradiance new radiance J K exitant energy incident energy emission+total reflection
Results • separate direct and indirect illumination • initialize from environment maps • evaluate direct light with shadow maps
Results • glossy materials • comparison to path tracing GPU (11 fps) path tracing
Dynamic Scenes • moving or deforming objects • only update directly affected links • optimal link hierarchy changes
Discussion • meshing and linking • excessive subdivision for dynamic scenes • directional quantities • memory • accuracy, main approximation
Conclusion • rendering equation with implicit visibility • directional quantity antiradiance • reorganized global illumination computation • interactive updates • moving objects, lights • glossy surfaces
Thank you for your attention! Questions? Acknowledgements: DFG (project “Interaktive Visualisierung Prozeduraler Modelle”) Marie-Curie Postdoctoral Fellowship “Scalable-GlobIllum” (MEIF-CT-2006-041306) Microsoft Research New Faculty Fellowship, Sloan Fellowship NSF CAREER award 0447561 Autodesk, A. Olivier, F. Firsching, P. Richard, P. Green