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( , ) cosd
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