380 likes | 394 Views
Towards a Taxonomy of Global Illumination Algorithms. Philip Dutré Program of Computer Graphics Cornell University. Global Illumination. Make a photo-realistic picture of a virtual scene which is physically-based modeled. (source: Stroebel ‘86). Photo-realistic picture?.
E N D
Towards a Taxonomy ofGlobal Illumination Algorithms Philip Dutré Program of Computer Graphics Cornell University
Global Illumination Make a photo-realistic picture of a virtual scene which is physically-based modeled (source: Stroebel ‘86)
Photo-realistic picture? • Picture = matrix of ‘light intensity’ values • Rendered picture and photograph look the same to a human observer
Physically-based modeled? • Light Sources • Emission characteristics • Materials • Reflectance characteristics (BRDF) • Geometry
Rendering Framework goniometric comparison radiometric comparison perceptual comparison 9 7 5 5 10 6 4 6 ? ? 9 7 5 5 11 8 4 5 = = 14 9 7 5 12 10 8 5 1 7 9 7 2 9 9 6 Light Transport Simulation Visual Display Display Observer emission geometry BRDF displayed image radiometric values 27 15 22 13 goniometric error metric radiometric error metric perceptual error metric
Light Transport Light Transport Simulation Emission (light sources) BRDFs (materials) Geometry (objects) Radiometric Values “Intensity” for each point and each direction
Global Illumination Problem pixel What is the ‘intensity’ of this surface in the direction of the eye? eye
Global Illumination Problem What is the ‘intensity’ of this surface in all possible directions?
Common Ground for GI • Pre-’86: ??? • 1986: Rendering Equation • 1992: Potential Equation Is there a single framework that describes all GI algorithms?
Radiance (L) • Fundamental transport quantity … power per unit projected area per solid angle in each point and direction • Radiance is invariant along a straight line (that’s why ray tracing works) • Flux = integrated radiance
Look for initial L (light sources) Propagate L along straight paths to the first visible surfaces Reflect L locally at the surfaces Light source descriptions Visibility calculation (geometry) Reflectance (materials) Radiance Distribution
Radiance Distribution Propagate ... … and reflect
Shooting Operation • Propagation + Reflection = “Shooting” Lnew = SLinit • … propagate and reflect again!
Shooting Operation … propagate … and reflect again
Shooting Operation Lnewer = SLnew = SSLinit Ltotal = Linit+SLinit +SSLinit
Shooting Operation Li SLi SSLi SSSLi Li Li +SLi Li +SLi+SSLi Li +SLi+ SSLi+ SSSLi
Shooting Equilibrium Lequil = Linit+SLequil Rendering Equation
Collecting Radiance Collect all radiance at this patch (= flux) How do we know where to collect radiance?
Collecting Radiance • Define an importance function W • W = 1 where to collect • W = 0 where not to collect • Each patch/pixel/… has its own W
Collecting Radiance W = 0 W = 1 Flux = Radiance L x Importance W = <L,W>
“Helmholtz” Reciprocity • Role of source and receiver can be switched, flux does not change
Dual Transport • Instead of shooting from light sources and collecting at receivers … • … start at receivers and trace back to the light sources
Dual Transport • Start at surface with Winit= 1 • “Where could radiance come from?” • reflect W locally • propagate reflected W backwards • Collect propagated W at light sources
Dual Transport Winit …reflect back …propagate back Wnew = RWinit
Dual Transport Wequil = Winit+RWequil Importance Equation
Dual Transport • Collect propagated W at light sources • Li 0 at light sources Flux = Importance W x Radiance Linit = <W,Linit>
Solving Global Illumination • Shoot radiance from light source and collect at receiver • Shoot importance from receiver and collect at light sources • or … shoot both at once and collect in the middle
Solving Global Illumination <Wi,SSLi> or <RWi,SLi> or <RRWi,Li> <Wi,SLi> or <RWi,Li> F = <Wi,Li>+ +
*Tracing Particle Tracing <Wi,SSLi> or <RWi,SLi> or <RRWi,Li> <Wi,SLi> or <RWi,Li> BT F = <Wi,Li>+ + Ray Tracing
Bidirectional Path Tracing (RenderPark 98)
Radiosity • Progressive radiosity = shooting L • Gauss-Seidel = shooting W • Bidirectional Radiosity • shoot L and W and meet in the middle • select each patch in turn as W-source • faster convergence for selected patches
Ray Tracing Particle tracing Bidirectional path tracing Gauss-Seidel radiosity Progressive radiosity Bidirectional Radiosity Algorithms
Conclusion • Framework for global illumination • Combines radiance and potential in a single formulation • Taxonomy of algorithms • Bidirectional algorithms