C481 B581 Computer Graphics
Dana Vrajitoru
Radiosity
-
A global illumination method that also needs a lot of computations.
-
Based on the interaction between all of the surfaces in the scene, and
on the conservation of the global light energy.
-
We can choose to compute the light intensity in each point of the scene,
then use this information to render the scene from any point of view.
General idea: we must have an equilibrium of the amount of light
produced by each light source and the total amount of light reflected by
each surface.
Notations
-
Radiosity b: the total amount of light energy that we can find in
each point, i.e. that is visible in this point in a solid angle in a unit
of time.
-
Emitted light e: part of the radiosity that is produced by the point,
if it belongs to a light source.
-
Reflected light R: part of the radiosity that is reflected by the
surface containing the point depending on a factor r.
-
Note. b = e + R.
-
Form factor f: part of the radiosity produced by one object that
is reflected by another one.
The System of Equations
-
In general, e = 0 for a point in the scene that is not a light source,
and r = 0 for the light sources.
-
The radiosity in each point must be equal to the light emitted by it plus
the total light it reflects from all of the other objects in the scene.
Numerically the integral becomes a sum over all the polygons in the
scene.
This is a system of equations where the unknowns are bi.
The Form Factor
If j corresponds to a light source, fi-j depends on the
angle between the ray of light from the source to the surface and the normal
to the surface.
If the objects i and j are both reflecting surfaces, then
fi-j depends on the angles made by the normals to the surface
in i and j with the line segment from i to j.
fi-i = 0, for i=1 to n.
Gauss-Seidel Method
Iteratively compute bi :
Initialize
Compute bi for the light sources based on the emitted
energy.
For all the other polygons, assign bi = 0 (or sum the components
from the light sources).
Repeat for a given number of iterations or until the change is not significant
anymore.
Recalculate each bi based on the previously computed
b1, b2, ... bn.
If the scene is made of complex surfaces, discretize it as a mesh of
polygons.
For examples and more information, see
http://www.cg.tuwien.ac.at/research/rendering/rays-radio/
Demo: http://www.youtube.com/watch?v=WknKIigV380.