Global Illumination

Download Report

Transcript Global Illumination

Global Illumination
Direct Illumination vs. Global
Illumination


discreet light source.
efficient lighting calculations
based on light and surface
vectors (i.e. fast cheats).


reflected, scattered and
focused light (not discreet).
physical-based light transport
calculations modeled around
bidirectional reflective
distribution functions
(BRDFs).
Indirect Illumination
Color Bleeding
Contact Shadows
Notice the surface just under the sphere. The shadow gets much darker
where the direct illumination as well as most of the indirect illumination is
occluded. That dark contact shadow helps enormously in “sitting” the sphere
in scene. Contact shadows are difficult to fake, even with area lights.
Caustics

Focused and reflected
light, or caustics, are
another feature of the
real world that we lack
in direct illumination.
Global illumination rendered
images

Caustics are a striking and
unique feature of Global
Illumination.
BRDF



BRDF really just means “the way light bounces off of something.”
Specular reflection: some of the light bounces right off of the surface along
the angle of reflection without really changing color much.
Diffuse reflection: some of the light gets refracted into the plastic and
bounced around between red particles of pigment. Most of the green and
the blue light is absorbed and only the red light makes it’s way back out of
the surface. The red light bounced back is scattered every which way with
fairly equal probability.
Rendering Equation
L(x,  )  E (x,  )   f r (x,  ,  )G ( x, x)V ( x, x) L( x,  ) dA
L is the radiance from a point on a surface in a given direction ω
 E is the emitted radiance from a point: E is non-zero only if x’ is emissive
 V is the visibility term: 1 when the surfaces are unobstructed along the
direction ω, 0 otherwise
 G is the geometry term, which depends on the geometric relationship
between the two surfaces x and x’
 It includes contributions from light bounded many times off surfaces
 f is the BRDF

Light Emitted from a Surface

Radiance (L): Power per
unit area per unit solid
angle



Measured in W/m2sr
dA is projected area –
perpendicular to given
direction
Radiosity (B): Radiance
integrated over all directions
B   L( ,  ) cosd


Power from per unit area,
measured in W/m2
Radiosity Concept

Radiosity of each surface
depends on radiosity of all
other surfaces




Treat global illumination as
a linear system
Need constant BRDF
(diffuse)
Solve rendering equation
as a matrix problem
Process




Mesh into patches
Calculate form factors
Solve radiosity
Display patches
Cornell Program of Computer Graphics
Radiosity Equation
L(x,  )  E (x,  )   f r (x,  ,  )G ( x, x)V ( x, x) L( x,  ) dA
Assume only diffuse reflection
fr ( x, , )  f r ( x)
L( x,  )  E ( x,  )  f r ( x)  L( x,  )G ( x, x)V ( x, x) dA
Convert to radiosity
B( x,  )  Be ( x,  )  f r ( x)  B( x,  )G ( x, x)V ( x, x) dA
Radiosity Approximations
Discretize the surface into patches
n
Bi  Ei  i  Fji B j
j 1
The form factor
1
Fij 
Ai

Ai A j
Vij cos i cos  j
r
2
Fii = 0 (patches are flat)
Fij = 0 if occluded
Fij is dimensionless
dA j dAi
Radiosity Matrix
Such an equation exists for each patch, and in a closed environment, a set of n
Simultaneous equations in n unknown Bi values is obtained:
n
Bi  Ei  i  F ji B j
j 1
n
Ei   Bi  i  F ji B j
j 1
n
Ei   ( ij  i F ji ) B j
1  1F11  1F12
  F
 2 21 1   2 F22


   n Fn1
 1F1n 
B




1   n Fnn 
i
 B1 
B 
 2
 
 
 Bn 

 E1 
E 
 2
 
 
 En 
j 1
A solution yields a single radiosity value Bi for each patch in the environment – a
view-independent solution. The Bi values can be used in a standard renderer and
a particular view of the environment constructed from the radiosity solution.
Intuition
Form Factor Intuition
Fdi dj 
Vij cos i cos  j
r
2
dAi dAj
1
Fij 
Ai

Ai A j
Vij cos i cos  j
r
2
dA j dAi
Hemicube

Compute form factor with image-space precision



Render scene from centroid of Ai
Use z-buffer to determine visibility of other surfaces
Count “pixels” to determine projected areas
Monte Carlo Sampling

Compute form factor by random sampling



Select random points on elements
Intersect line segment to evaluate Vij
Evaluate Fij by Monte Carlo integration
Solving the Radiosity
Equations

Solution methods:



Invert the matrix – O(n3)
Iterative methods – O(n2)
Hierarchical methods – O(n)
1  1F11  1F12
  F 1  F
2 22
 2 21


   n Fn1
 1F1n 
B




1   n Fnn 
i
 B1 
B 
 2
 
 
 Bn 

 E1 
E 
 2
 
 
 En 
Examples
Museum simulation. Program of Computer Graphics, Cornell University.
50,000 patches. Note indirect lighting from ceiling.
Gauss-Siedel Iteration method
1.
For all i
Bi = Ei
2.
While not converged
For each i in turn
Bi  Ei  i  Fij B j
j i
3.
Display the image using Bi as the intensity of patch
i
Interpretation of Iteration

Iteratively gather radiosity to elements
Progressive Radiosity
Progressive Radiosity

Interpretation:


Iteratively shoot “unshot” radiosity from elements
Select shooters in order of unshot radiosity
Progressive Radiosity
Adaptive Meshing

Refine mesh in areas of
large errors
Adaptive Meshing
Uniform Meshing
Adaptive Meshing
Hierarchical Radiosity

Refine elements
hierarchically:


Compute energy
exchange at different
element granularity
satisfying a userspecified error tolerance
Hierarchical Radiosity
Hierarchical Radiosity
Displaying Radiosity
Usually Gouraud Shading
Computed
Rendered
Radiosity



Constrained by the resolution of your
subdivision patches.
Have to calculate all of the geometry before
you rendered an image.
No reflections or specular component.
Path Types

OpenGL


Ray Tracing


LDS*E
Radiosity


L(D|S)E
LD*E
Path Tracing

attempts to trace
“all rays” in a scene
Ray Tracing


LDS*E Paths
Rays cast from eye into scene
Why? Because most rays cast
from light wouldn’t reach eye

Shadow rays cast at each
intersection
Why? Because most rays
wouldn’t reach the light source

Workload badly distributed
Why? Because # of rays grows
exponentially, and their result
becomes less influential
objects
lights
Tough Cases

Caustics




Light focuses through a
specular surface onto a diffuse
surface
LSDE
Which direction should
secondary rays be cast to
detect caustic?
Bleeding



Color of diffuse surface
reflected in another diffuse
surface
LDDE
Which direction should
secondary rays be cast to
detect bleeding?
Path Tracing






Kajiya, SIGGRAPH 86
Diffuse reflection spawns
infinite rays
Pick one ray at random
Cuts a path through the
dense ray tree
Still cast an extra shadow
ray toward light source at
each step in path
Trace > 40 paths per pixel
objects
lights
Monte Carlo Path Tracing

Integrate radiance for
each pixel by sampling
paths randomly
L(x,  )  E (x,  )   f r (x,  ,  )G ( x, x)V ( x, x) L( x,  ) dA
Basic Monte Carlo Path Tracer
1.
2.
3.
Choose a ray (x, y), t; weight = 1
race ray to find intersection with nearest surface
Randomly decide whether to compute emitted or
reflected light
1.
1.
Step 3a: If emitted,
return weight * Le
Step 3b: If reflected,
weight *= reflectance
Generate ray in random direction
Go to step 2
Bi-directional Path Tracing

Role of source and receiver can be switched, flux
does not change
Bi-directional Path Tracing
Tracing from eye
Tracing from light
Monte Carlo Path Tracing

Advantages






Any type of geometry
(procedural, curved, ...)
Any type of BRDF
(specular, glossy, diffuse,
...)
Samples all types of paths
(L(SD)*E)
Accurate control at pixel
level
Low memory consumption
Disadvantages


Slow convergence
Noise in the final image
Monte Carlo path tracing
1000 path / pixel
Monte Carlo Ray Tracing
It’s worse when you have small light sources (e.g. the sun) or lots of
light and dark variation (i.e. high-frequency) in your environment.
Monte Carlo Integration
That’s why you always see “overcast” lighting like this.
Noise Filtering
Unfiltered
filtered
van Jensen, Stanford
Photon Mapping


Monte Carlo path tracing relies on lots of
camera rays to “find” the bright areas in a
scene. Small bright areas can be a real
problem. (Hence the typical “overcast”
lighting).
Why not start from the light sources
themselves, scatter light into the
environment, and keep track of where the
light goes?
Photon Mapping






Jensen EGRW 95, 96
Simulates the transport of individual photons
Photons emitted from source
Photons deposited on diffuse surfaces
Photons reflected from surfaces to other
surfaces
Photons collected by rendering
What is a Photon?

A photon p is a particle of
light that carries flux DFp(xp,
p)




Power: DFp – magnitude
(in Watts) and color of the
flux it carries, stored as an
RGB triple
Position: xp – location of
the photon
Direction: p – the incident
direction i used to
compute irradiance
Photons vs. rays


Photons propagate flux
Rays gather radiance
p
DFp
xp
Sources

Point source





Photons emitted uniformly in all
directions
Power of source (W) distributed
evenly among photons
Flux of each photon equal to source
power divided by total # of photons
For example, a 60W light bulb would
send out a total of 100K photons,
each carrying a flux DF of 0.6 mW
Photons sent out once per
simulation, not continuously as in
radiosity
Russian Roulette







Arvo & Kirk, Particle Transport and Image
Synthesis, SIGGRAPH 90, pp. 63-66.
Reflected flux only a fraction of incident
flux
After several reflections, spending a lot of
time keeping track of very little flux
Instead, absorb some photons and reflect
the rest at full power
Spend time tracing fewer full power
photons
Probability of reflectance is the
reflectance 
Probability of absorption is 1 – .
?
Mixed Surfaces

Surfaces have specular and diffuse
components







d – diffuse reflectance
s – specular reflectance
d + s < 1 (conservation of energy)
Let z be a uniform random value from 0 to 1
If z < d then reflect diffuse
Else if z < d + s then reflect specular
Otherwise absorb
Photon Mapping
Direct illumination
Photon Map
Rendering


Photons in photon map are collected by eye
rays cast by a distributed ray tracer
Multiple photon maps



Indirect irradiance map
Caustic map
Rays use the radiance constructed from
reflected flux density from nearest neighbor
photons
Photon Mapping Rendering


Ray Tracing
At each hit:



Ray trace further if the
contribution > threshold
(more accurate)
Use photon map
approximation otherwise
Caustics rendered
directly
DA = r2
Caustic photon map


The caustics photon
map is used only to
store photons
corresponding to
caustics.
It is created by emitting
photons towards the
specular objects in the
scene and storing
these as they hit diffuse
surfaces.
Caustic illumination
Global Photon Map



The global photon map is
used as a rough
approximation of the
light/flux within the scene
It is created by emitting
photons towards all objects.
It is not visualized directly
and therefore it does not
require the same precision
as the caustics photon map.
Indirect Illumination
Example
224,316 caustic photons, 3095 global photons
Example
Readings



Textbook 16.13
Distribution Ray Tracing: Theory and
Practice Shirley and Wang. Proceedings of
the 3rd Eurographics Rendering Workshop
1992
Global Illumination using Photon Maps Henrik
Wann Jensen, Rendering Techniques '96