Implicit Visibility and Implicit Visibility and Antiradiance for Interactive Antiradiance for Interactive
Global IlluminationGlobal Illumination
Carsten DachsbacherCarsten Dachsbacher11, Marc Stamminger, Marc Stamminger22, , George DrettakisGeorge Drettakis11, Frédo Durand, Frédo Durand33
11 REVES/INRIA Sophia-Antipolis, REVES/INRIA Sophia-Antipolis, 22 University of Erlangen, University of Erlangen,
33 MIT CSAIL MIT CSAIL
MotivationMotivation
global illuminationimportant for realistic image synthesisinteractivity is desirablevisibility is expensive
global illuminationimportant for realistic image synthesisinteractivity is desirablevisibility is expensive
direct illuminationdirect illumination global illuminationglobal illumination
Previous WorkPrevious Work
off-line vs. precomputed vs. real-time
radiosity / finite element methodsamount of transport: form factors
computation involves visibility, most expensive partdynamic scenes make global updates necessary
off-line vs. precomputed vs. real-time
radiosity / finite element methodsamount of transport: form factors
computation involves visibility, most expensive partdynamic scenes make global updates necessary
[Cohen88][Cohen88] [Sloan02][Sloan02] [Keller97][Keller97]
Previous Work - negative lightPrevious Work - negative lightstill 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 discussiondoes not address directional discretization, iterative solutions
still using visibilityincremental 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 discussiondoes not address directional discretization, iterative solutions
BRDFBRDF geometry termgeometry termincident radianceincident radiancevisibility functionvisibility function
Light TransportLight Transport
rendering equation [Kajiya86]rendering equation [Kajiya86]
Rendering EquationRendering Equationlinear operators [Arvo94]global transport operator G
computes incident radiance from other surfacesdetermines visibility
linear operators [Arvo94]global transport operator G
computes incident radiance from other surfacesdetermines visibility
GG
transportwith occlusion
transportwith occlusion
Rendering EquationRendering Equationreflection operator K
local operator, computes reflected radiance
rendering equation
reflection operator K local operator, computes reflected radiance
rendering equation
GG
transportwith occlusion
transportwith occlusion
KK
reflectionreflection
radiance L
emission E
radiance L
emission E
Goal: alleviate visibility computationGoal: alleviate visibility computation
replace Guse operator U for unoccluded transport
problem: excessive light transportsolution: compensate with “negative light”
replace Guse operator U for unoccluded transport
problem: excessive light transportsolution: compensate with “negative light”
UU
transportwithout occlusion
transportwithout occlusion
generatenegative light
generatenegative light
New operatorNew operator
additional local operatorgo-through operator J
lets radiance pass through surfaceno change in direction or magnitude
additional local operatorgo-through operator J
lets radiance pass through surfaceno change in direction or magnitude
UU
transportwithout occlusion
transportwithout occlusion
KK
reflectionreflection
JJ
go-throughoperator
go-throughoperator
From occluded to unoccluded transportFrom occluded to unoccluded transport
LLGLGL JGL
JGL
ULUL
Antiradiance
Antiradiance
inputinputoccludedoccluded unoccludedunoccludedradianceradiancetransporttransport transporttransport
go-throughgo-throughoperator Joperator J
problem:problem:extraneousextraneous
UAUA
negativenegativelightlight
lightlight
what we wantwhat we want what we can
do cheaply
what we can
do cheaply
what we needto remove
what we needto remove
From occluded to unoccluded transportFrom occluded to unoccluded transport
GLGL
occludedoccludedtransporttransport
ULUL
unoccludedunoccludedtransporttransport
UAUA
negativenegativelightlight
== --
occluded and unoccluded transport
antiradiance
radiance
occluded and unoccluded transport
antiradiance
radiance
AntiradianceAntiradiance
UAUAULULGLGL
BB
Occluded vs. unoccluded transportOccluded vs. unoccluded transport
GLGL
AA
ULUL
CC
antiradiance
exchange from C to B
antiradiance
exchange from C to B
GL: light is blocked at C, no transport A to BGL: light is blocked at C, no transport A to BUL: transport A to BUL: transport A to Bantiradiance generated at Cantiradiance generated at C
new rendering equation
avoids explicit visibility new quantity antiradiance propagate
new rendering equation
avoids explicit visibility new quantity antiradiance propagate
RecapRecap
UU
transportwithout occlusion
transportwithout occlusion
KK
reflectionreflection
JJ
go-throughoperator
go-throughoperator
Practical implementationPractical implementation
finite element approach
iterative strategies and convergence
using the GPUimplicit visibility makes is feasible
finite element approach
iterative strategies and convergence
using the GPUimplicit visibility makes is feasible
Finite ElementsFinite Elementsspatial and directional discretizationhierarchical radiosity with clustering
energy transport over linksform factors: energy transport between two patchesdirectional quantities: uniform discretization
spatial and directional discretizationhierarchical radiosity with clustering
energy transport over linksform factors: energy transport between two patchesdirectional quantities: uniform discretization
ComputationComputation
UU
transportwithout occlusion
transportwithout occlusion
KK
reflectionreflection
JJ
go-throughoperator
go-throughoperator
ComputationComputation
UU
transportwithout occlusion
transportwithout occlusion
global passpropagate energyhierarchical solver: links
global passpropagate energyhierarchical solver: links
ComputationComputation
KK
reflectionreflection
JJ
go-throughoperator
go-throughoperator
local passtransform incident energy into new exitant energy
local passtransform incident energy into new exitant energy
Iterative SolutionIterative Solution
symmetric iterationsymmetric iteration
Symmetric IterationSymmetric Iteration
1st iteration1st iteration 2nd iteration2nd iteration 3rd iteration3rd iteration
4th iteration4th iteration 8th iteration8th iterationpath tracingpath tracingreferencereference
Iterative SolutionIterative Solution
symmetric iteration
shadows are one step behindfast convergence
it can diverge in contrived scenesconverged in allscenes tested
symmetric iteration
shadows are one step behindfast convergence
it can diverge in contrived scenesconverged in allscenes tested
Iterative SolutionIterative Solution
asymmetric iterationone step of radiance propagation
multiple steps for antiradiance
#iterations = depth complexity
“emulate” one step of GL
asymmetric iterationone step of radiance propagation
multiple steps for antiradiance
#iterations = depth complexity
“emulate” one step of GL
ULUL UAUA
ConvergenceConvergenceoffice scene
symmetric: faster in the beginningasymmetric: better >90 stepsvisually: 10 iterations suffice
office scenesymmetric: faster in the beginningasymmetric: better >90 stepsvisually: 10 iterations suffice
Data structuresData structures
exitant energyexitant energy incident energyincident energy emission+total reflectionemission+total reflection
spatial and directional discretizationsimple 2D data structurestextures/render targets on GPUs
each table stores L and AK and J operate on separate hemispheres
spatial and directional discretizationsimple 2D data structurestextures/render targets on GPUs
each table stores L and AK and J operate on separate hemispheres
ele
men
tsele
men
ts
directionsdirections
Data structures (global pass)Data structures (global pass)
directionsdirections
receiver
patch
receiver
patch
sender
patch
sender
patch
formfactorformfactor
PPQQ FPQFPQ
link tablelink table
exitant energyexitant energy incident energyincident energy emission+total reflectionemission+total reflection
**
**
direction maskdirection maskcheap, because
no visibilitycheap, because
no visibility
store radiance and antiradiance for next iterationstore radiance and antiradiance for next iterationaccumulate reflected radiance for displayaccumulate reflected radiance for display
Data structures (local pass)Data structures (local pass)
exitant energyexitant energy incident energyincident energy emission+total reflectionemission+total reflection
KKJJ
new antiradiancenew antiradiance new radiancenew radiance
apply local operators to incident energy of each patchapply local operators to incident energy of each patch
separate direct and indirect illuminationinitialize from environment mapsevaluate direct light with shadow maps
separate direct and indirect illuminationinitialize from environment mapsevaluate direct light with shadow maps
ResultsResults
ResultsResults
glossy materialscomparison to path tracing
glossy materialscomparison to path tracing
GPU (11 fps) GPU (11 fps) path tracingpath tracing
Dynamic ScenesDynamic Scenesmoving or deforming objects
only update directly affected linksoptimal link hierarchy changes
moving or deforming objectsonly update directly affected linksoptimal link hierarchy changes
meshing and linking excessive subdivision for dynamic scenesdirectional quantities
memoryaccuracy, main approximation
meshing and linking excessive subdivision for dynamic scenesdirectional quantities
memoryaccuracy, main approximation
DiscussionDiscussion
rendering equation with implicit visibilitydirectional quantity antiradiancereorganized global illumination computation
interactive updatesmoving objects, lightsglossy surfaces
rendering equation with implicit visibilitydirectional quantity antiradiancereorganized global illumination computation
interactive updatesmoving objects, lightsglossy surfaces
ConclusionConclusion
Thank you for your attention!
Questions?
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 FellowshipNSF CAREER award 0447561Autodesk, A. Olivier, F. Firsching, P. Richard, P. Green
Acknowledgements: DFG (project “Interaktive Visualisierung Prozeduraler Modelle”)Marie-Curie Postdoctoral Fellowship “Scalable-GlobIllum” (MEIF-CT-2006-
041306)Microsoft Research New Faculty Fellowship, Sloan FellowshipNSF CAREER award 0447561Autodesk, A. Olivier, F. Firsching, P. Richard, P. Green