Radiosity
The philosophy of our previous lectures on illumination were based on what we called quick
methods: efficient approaches that manage to fool the eye. The local illumination model
is central to the efficiency of these approaches.
A global illumination model is a model which takes into account the fact that light is not
just coming from a few point light source, but that light is arriving indirectly from many
different directions, and possibly from the objects themselves.
What are the elements of a global illumination model?
The basic idea is viewing each object as being a potential light source. Some objects (light
sources) radiate light directly, but others (non-black surfaces) can radiate light indirectly.
Radiosity is another example of a global illumination model.
Radiosity Overview
Radiosity: the intensity of each point on the surface of some object in our environment.
This intensity of the point P is a function of
Sampling
Radiosity computations are quite expensive since for every point we need to know the
illumination of all the surface elements that this point can see. A common way is to choose
some sampled points in the environment.
How do we sample?
The most common way is based on a generalization of the finite element method.
Subdivide each of the object surface into a number of small polygonal patches (surface
mesh)
For each patch, compute an approximation of the radiosity of this patch. For example,
this could be done by computing the radiosities at each of its vertices and then averaging
these.
How do we construct these patches?
First start with a coarse mesh, and determine in which regions of the mesh the radiosity
is varying most rapidly.
Then refine these mesh regions and iterate.
When the radiosity values are fairly constant in the neighborhood of a patch of the mesh,
or when the patches are deemed to be small enough then we do not need to refine
further.
More sophisticated methods, i.e. discontinuity meshing actually attempt to align the edges
of the mesh with sharp changes in radiosity (e.g. as happens along the edges of shadows).
Define a large linear system of equations, that encodes all of the radiosity dependencies.
By solving this equation, we can determine all the radiosities at all the points.
The problem is the size of this linear system is enormous, as for n surface patches (or
mesh elements) the matrix size is = n2 n2, since each variable in the equation
involves the transmission of light between each pair of surface patches.
Progressive refinement radiosity: The idea is:
start with the brightest light source and shoot its radiation to the entire scene.
Then we move to the next brightest light source and repeat this process.
Note that as we do this, surface patches that were initially black start picking up more
and more intensity. Eventually a non-emitting light source accumulates more and more
intensity, until it becomes the brightest light source, and then it shoots its intensity to
the surrounding scene.
The University of Texas at Austin
min
10
In practice, we cannot expect to be able to solve this energy balance integral equation.
As mentioned before, most radiosity methods are based on subdividing space into small
patches, and assuming that the radiosity is constant for each path. Using some additional
simplifications of radiance and with symmetry arguments and assuming that B(y) is constant
for all points y in a surface patch we obtain a simplified radiosity equation (see the last
portion of this lecture for details),
The radiosity equation becomes
N Z
X
j=1
where
V (x, y) =
cos cos
B(y)
V (x, y)dy.
2
r
yPj
1, if x can see y
0, otherwise
11
Since B(y) = Bj , y Pj ,
N
X
Bj
j=1
yPj
cos cos
V (x, y)dy.
2
r
Note: Even though B(x) varies over a patch Pi, we consider B as constant over a
patch only for purpose of illuminating other surfaces. The
constant radiosity value is an
R
area-weighted average of the pointwise radiosities Bi = A1 xP B(x)dx; similarly exitance
i
i
R
1
Ei = A xP E(x)dx and Pd(x) = Pi (constant).
i
Hence
B i = Ei + i
N
X
j=1
or more compactly,
1
Bj
Ai
xPi
yPj
B i = Ei + i
N
X
cos cos
V (x, y)dxdy
r 2
Fij Bj
j=1
12
or
Ei = B i i
N
X
Bj Fij
j=1
where Form factor Fi,j : the fraction of light energy leaving Pi that arrives at patch Pj :
Fi,j
1
=
Aj
xPi
yPj
cos cos
V (x, y)dydx
r 2
Fi,j is a dimensionless quantity. If patches are close, large, and facing one another, Fi,j will
be large.
Here Bi is the radiosity of patch i (the amount of light reflected per unit area), Ei is the
amount of light emitted from this patch per unit area, i is the reflectivity of patch i ( 0
means a dark non-reflecting object and 1 means a bright highly reflecting object). Ai
and Aj are the areas of patches Pi and Pj , respectively.
13
Form Factors
1 1F1,1
2F2,1
...
nFn,1
1F1,2
1 2F2,2
...
nFn,2
...
B1
1F1,n
B2
2F2,n
...
...
Bn
1 nFn,n
E1
= E. 2
..
En
The values i are dependent on the surface types. The hard thing to compute are the values
of Fi,j . The linear system is sparse. Iterative techniques from numerical analysis, such as
Gauss-Seidel, can be used to solve this type of system.
It can be shown that there is a fairly simple geometric interpretation of Fi,j .
14
r=
15
16
Basics of Radiance
The most basic concept of radiosity is radiance.
Radiance L: the amount of energy per unit time (or equivalently power) emitted from a
point x in a given direction per unit area (perpendicular to direction) per unit solid angle.
Define:
L = L(x, , ) = L(x, )
dw
dq
dx
f
17
The energy radiating during time interval dt from a small patch dx2 in some small solid
angle dw can be expressed as:
L(x, , ) |dx {z
cos } ddt
projectedarea
18
If surfaces are Lambertian (idea diffuse surface), then we can simplify L(x, , ) and just
write L(x). The radiosity at the point x is given by
B(x) =
L(x, , ) cos d
= L(x)
= L(x)
cos d
where d = sin dd
cos sin dd
= L(x).
This means simply that depends only on the radiance, the light power, at the point.
19
where Le denotes emitted radiance and Li denotes the incoming irradiance, d(x) denotes
the coefficient of diffuse reflection (earlier we had written this as kd ).
We cannot eliminate the directional component from the Li term, because we still need to
consider Lamberts law for incoming radiation.
If we define
H(x) =
Li (x, , ) cos d
and let E(x) denote the emitted radiosity Le (x), and recall that B(x) = L(x) then
we can write this as
B(x) = E(x) + d(x)H(x)
The term H(x) essentially describes how much illumination energy is arriving from all other
points in the scene.
To simplify H(x) we can use the Lambertian assumption. Rather than integrating over
the angular space surrounding x, instead we will integrate over the set of points on the
The University of Texas at Austin
20
dx
L(y, , ) =
And
B(y)
.
cos dy
.
d =
r2
21
Putting these together, we can define H(x) in terms of an integral over surface points:
cos cos
H(x) =
B(y)
V (x, y)dy.
2
r
yS
where
V (x, y) =
1, if x can see y
0, otherwise
cos cos
V (x, y)dy.
B(x) = E(x) + d(x)
B(y)
2
r
yS
22
Please review the appropriate sections related to this lecture in chapter 7, and associated
exercises, of the recommended text.
(Recommended Text: Interactive Computer Graphics, by Edward Angel, Dave Shreiner, 6th
edition, Addison-Wesley)
Please track Blackboard for the most recent Announcements and Project postings related to
this course.
(http://www.cs.utexas.edu/users/bajaj/graphics2012/cs354/)
23