The RADIANCE
Lighting Simulation
and Rendering System
Gregory J. Ward / GJWard@lbl.gov
Radiance
is often used to create walk-through animations of static
environments.
Though this is not typically the domain of ray-tracing renderers,
we employ some techniques to make the process more efficient.
The most important technique is the use of recorded
depth information at each pixel to interpolate
fully ray-traced frames with a z-buffer algorithm.
Our method is similar to the one explained by Chen et al
[3], where pixel depths are used to recover an
approximate 3-dimensional model of the visible portions of the
scene, and a z-buffer is used to make visibility decisions for
each intermediate view.
This makes it possible to generate 30 very
good-looking frames for each second of animation
while only having to render about 5
of them.
Another technique we use is unique to
Radiance,
which is the sharing of indirect irradiance values.
Since these values are view-independent,
there is no sense in recomputing them each time, and sharing them
during the animation process distributes the cost over so many
frames that the incremental cost of simulating diffuse
interreflection is negligible.
Finally, it is possible to get interactive frame rates from
advanced rendering hardware using illumination maps instead of
ray-tracing the frames directly.
(An illumination map is a 2-dimensional array of color values
that defines the surface shading.)
Such maps may be kept separate from the surfaces'
own patterns and textures, then combined during rendering.
Specular surfaces will not appear correct since they
depend on the viewer's perspective, but this may be
a necessary sacrifice when user
control of the walk-through is desired.
Interactive rendering
has long been touted as a principal advantage of radiosity,
when in fact complete view-independence
is primarily a side-effect of assuming diffuse reflection.
Radiance
calculates the same values using a ray-tracing technique, and
storage and rendering may even be more efficient since large
polygons need not be subdivided into hundreds of little ones -- an
illumination map works just as well or better.