SlideShare ist ein Scribd-Unternehmen logo
1 von 10
~ ComputerGraphics,Volume24, Number4, August1990
AdaptiveRadiosityTexturesfor BidirectionalRay Tracing
Paul S. Heckbert
Dept. of Electrical Engineering and Computer Science
University of California, Berkeley, CA 94720
Abstract
We present a rendering method designed to provide
accurate, general simulation of global illumination for re-
alistic image synthesis. Separating surface interaction into
diffuse plus specular, we compute the specular component
on the fly, as in ray tracing, and store the diffuse compo-
nent (the radiosity) for later-reuse, similar to a radiosity
algorithm. Radiosities are stored in adaptive radiosity tez-
lures (fezes) that record the pattern of light and shadow
on every diffuse surface in the scene. They adaptively sub-
divide themselves to the appropriate level of detail for the
picture being made, resolving sharp shadow edges auto-
matically.
We use a three-pass, bidirectional ray tracing algorithm
that traces rays from both the lights and the eye. The "size
pass" records visibility iufornmtion on diffuse surfaces; the
"light pass" progressivelytraces rays from lights and bright
surfaces to deposit photons on diffuse surfaces to construct
the radiosity textures; and the "eye pass" traces rays from
the eye, collecting light from diffuse surfaces to make a
picture.
CtL Categories: 1.3.3 [Computer Graphicsl: Picture/Image
Generation- display algorithms; 1.3.7 [Computer Graphics]:
Three-Dimensional Graphics and ReMism - visible line~surface
algorithms.
General Terms: algorithms.
Additional Key Words and Phrases: global illumination, den-
sity estimation, texture mapping, quadtree, adaptive subdivision,
sampling.
1 Introduction
The presentation is divided into four sections. We first discuss
previous work on the global illumination problem. Then we out-
line our bidirectional ray tracing approach in an intuitive way.
Next we describe our implementation and some early results. We
conclude with a summary of the method and of our experiences
to date.
Permission to copy without fee all or part of this material is granted
provided that the copies are not made or distributed for direct
commercial advantage, the ACM copyright notice and the title of the
publication and its date appear, and notice is given that copying is by
permission of the Association for Computing Machinery. To copy
otherwise, or to republish, requires a fee and/or specific permission.
2 The Global Illumination Problem
The primary goal of realistic image synthesis is the develop-
ment of methods for modeling and realistically rendering three-
dimensional scenes. One of the most chMlenging tasks of realistic
image synthesis is the accurate and efficient simulation of global
illumination effects: the illumination of surfaces in a scene by
other surfaces. Early rendering programs treated the visibility
(hidden surface) and shading tasks independently, employing a
local illumination model which assumed that the shading of each
surface is independent of the shading of every other surface. Lo-
cal illumination typically assumes that light comes from a finite
set of point light sources only. Global illumination models, on the
other hand~ recognize that the visibility and shading are interre-
lated: the shade of a sm'face point is determined by the shades
of all of the surfaces visible fl'om that point.
The intensity of light traveling in a given outgoing direction
o~t from a surface point is the integral of the incident inten-
sity times the bidirectional distribution function (BDF) over all
possible incoming directions in:
intensity(oWl) = fphere intensity(i~) BDF(in, o~t) d(in)
The bidirectional distribution function is the fraction of energy
reflected or transmitted from the incoming direction in = (¢i, Oi)
to the outgoing direction out = (¢o, 0o); it is the sum of the
bidirectional reflectance distribution function (BRDF) and the
bidirectional transmittance distribution function (BTDF). See
[Hall89] for a more detailed discussion of the physics of illumina-
tion. We will characterize previous global illumination algorithms
by the approximations they make to the above integral.
Because of the superposition properties of electromagnetic ra-
diatlon, we can segregate surface reflectance into two types: dif-
fuse and specular. We define diffuse interaction (both reflection
and transmission) to be the portion of interaction that scatters
fight equally in all directions, and specular interaction to be the
remaining portion. BDF = BDFdilf + BDF~pee. For many ma-
terials, specular interaction scatters light in only a small cone of
directions. When this cone includes just a finite number of direc-
tions, each a cone with solid angle zero, we call the interaction
ideal specular, otherwise, when the cone(s) have a positive finite
angle, we call it rough specular. Two examples of ideal specular
surfaces are: (1) a perfect mirror that reflects in one direction,
and (2) a perfect transmitter that refracts in one direction and
reflects in another. An ideal specular surface with micro-bumps
behaves statistically like a rough specular surface. Oar three
classes of interaction are diagrammed in figure 1.
©1990 ACM-O-89791-344-2/90/O0810145 $00.75 145
O SIGGRAPH '90, Dallas, August 6-10, 1990
diffuse roughspecular ideal specular
Figure 1: Three classes of reflectance: diffuse, rough specular,
and ideal specular; showing a polar plot of the reflectance coeffi-
cient for fixed incoming direction and varying outgoing direction.
Transmittance is similar.
A diffuse surface appears equally bright from all viewing di-
rections, but a specular surface's brightness varies with viewing
direction, so we say that diffuse interaction is view-independent
while specular interaction is view-dependent. The simplest ma-
terials have a position-invariant, isotropic BDF consisting of a
linear combination of diffuse and ideal specular interaction, but
a fully-general BDF can simulate textured, anisotropic, diffuse
and rough specular surfaces.
2.1 Ray Tracing vs. l:tadiosity
The two most popular algorithms for global illumination are ray
tracing and radiosity. Ray tracing is both a visibility algorithm
and a shading algorithm~ but radiosity is just a shading algo-
rithm.
2.1.1 Ray Tracing
Classic ray tracing generates a picture by tracing rays from the
eye into the scene, reeursively exploring specularly reflected and
transmitted directions, and tracing rays towaxd point light sources
to simulate shadowing [Whitted80]. It assumes that the BDF
contains no rough specular, and that the incident light relevant
to the diffuse computation is a sum of delta functions in the di-
rection of each light source. This latter assumption implies a
local illumination model for diffuse.
A more realistic illumination model includes rough specular
BDF's and computes diffuse interaction globally. Exact simu-
lation of these effects requires the integration of incident light
over cones of finite solid angle. Ray tracing can be generalized
to approximate such computations using distribution ray trac-
ing [Cook84], ILee85], [Dippe85], [Cook86], [Kajiya86]. (We pro-
pose the name "distribution ray tracing" as an alternative to
the current name, "distributed ray tracing", which is confusing
because of its parallel hardware connotations.) In distribution
ray tracing, rays are distributed, either uniformly or stochasti-
cally, throughout any distributions needing integration. Many
rays must be traced to accurately integrate the broad reflectance
distributions of rough specular and diffuse surfaces: often hun-
dreds or thousands per surface intersection.
2.1.2 Radiosity
The term radiosity is used in two senses. First, radiosity is a
physical quantity equal to power per unit area, which determines
the intensity of light diffusely reflected by a surface, and second,
radiosity is a shading algorithm. The meaning of each use should
be clear by context.
The Classic radiosity algorithm subdivides each surface into
polygons and determines the fraction of energy diffusely radi-
ated from each polygon to every other polygon: the pair's form
]actor. From the form factors, a large system of equations is
constructed whose solution is the radiosities of each polygon
[SiegelS1], [Gora184], [Nishita85]. This system can be solved ei-
ther with Gauss-Seidel iteration or, most conveniently, with pro-
gressive techniques that compute the matrix and solve the sys-
tem a piece at a time [Cohen88]. Form factors can be determined
analytically for simple geometries [Siege181], [Baum89], but for
complex geometries a numerical approach employing a visibility
algorithm is necessary. The most popular visibility method for
this purpose is a hemicube computed using a z-buffer [Cohen85],
but ray tracing has recently been promoted as an alternative
[Wallace89], [Sillion89]. Classic radiosity assumes an entirely dif-
fuse reflectance, so it does not simulate specular interaction at
all.
The output of the radiosity algorithm is one radiosity value
per polygon. Since diffuse interaction is by definition view-inde-
pendent, these radiosities are valid from any viewpoint. The
radiosity computation must be followed by a visibility algorithm
to generate a picture.
The radiosity method can be generalized to simulate specu-
lar interaction by storing not just a single radiosity value with
each polygon, but a two-dimensional array [Imme186], [Shao88],
[Buckalew89]. The resulting algorithm, which we call directional
radiosity, simulates both diffuse and specular interaction globally,
but the memory requirements are so excessive as to be impracti-
cal.
2.1.3 Hybrid Methods
Ray tracing is best at speculax and radiosity is best at diffuse,
and the above attempts to generalize ray tracing to diffuse and
to generalize radiosity to specular stretch the algorithms beyond
the reflectance realms for which each is best suited, making them
less accurate and less efficient. Another class of algorithms is
formed by hybridizing the methods, using a two-pass algorithm
that applies a radiosity pass followed by the ray tracing pass.
This is the approach used by [Wallace87] and [Sillion89].
The first pass of Wallace's algorithm consists of classic radios-
ity extended to include diffuse-to-diffuse interactions that bounce
off planar mirrors. He follows this with a classic ray tracing pass
(implemented using a z-buffer). Unfortunately, the method is
limited to planar surfaces (because of the polygonization involved
in the radiosity algorithm) and to perfect planar mirrors.
Sillion's algorithm is llke Wallace's but it computes its form
factors using ray tracing instead of hemicubes. This eliminates
the restriction to planar mirrors. The method still suffers from
the polygonization inherent in the radiosity step, however.
2.2 Sampling Radlositles
Many of the sampling problems of ray tracing have been solved
by recent adaptive algorithms [WhittedS0], [Cook86], [Lee85],
[Dippe85], [Mitchel187], [Painter89], particularly for the simula-
tion of specular interaction. The sampling problems of the radios-
ity algorithm are less well studied, probably because its sampling
process is less explicit than that of ray tracing.
146
~' ComputerGraphics,Volume24, Number4, August1990
We examine four data structures for storing radiosities: light
images, polygons, samples in 3-D, and textures. Several different
algorithms have been used to generate these data structures: ra-
diosities have been generated analytically, with hemicubes at the
receiver (gathering), with hemieubes at the sender (shooting),
and by tracing rays from the eye or from the light.
2.2.1 Light Images
The simplest data structure, the light image, simulates only shad-
ows, the first order effects of diffuse interreflection. Light images
are pictures of the scene from the point of view of each light
~ource. They are most often generated using the z-buffer shadow
algorithm, which saves the z-buffers of these light images and
uses them while rendering from the point of view of the eye to
test if visible points are in shadow [Wilhams78], [Reeves87]. This
shadow algorithm is more flexible than most, since it is not lim-
ited to polygons, but it is difficult to tune. Choosing the resolu-
tion for the light images is critical, since aliasing of shadow edges
results if the light images are too. coarse.
2.2.2 Polygonlzed l~adioslty
The Atherton-Weiler algorithm is another method for comput-
ing shadows that renders from the point of view of the lights
[Atherton78]. It uses the images rendered from the lights to gen-
erate "surface detail polygons", modifying the scene description
by splitting all polygons into shadowed and unshadowed portions
that are shaded appropriately in the final rendering from the eye.
Surface detail polygons are an example of polygonized radiosity,
the storage of radiosity as polygons. The shadows computed by
the Atherton-Weiler algorithm are a first-approximation to the
interrefiection simulated by radiosity algorithms.
The most common method for computing polygonized radios-
ity is, of course, the classic radiosity algorithm. A major prob-
lem with this Mgorithm is that surfaces are polygonized before
radiosities are computed. Difficulties result if this polygonization
is either too coarse or too fine.
Sharp shadow edges caused by small light sources can be un-
dersampled if the polygonization is too coarse, resulting in blur-
ring or abasing of the radiosities. Cohen developed the "sub-
structuring" technique in response to this problem [Cohen86].
It makes an initial pass computing radiosities at low resolution,
then splits polygons that appear to be in high-variance regions
and recomputes radiosities. Substructuring helps, but it is not
fully automatic, as the subdivision stopping criterion appears to
be a polygon size selected in some ad hoc manner. The limi-
tations of the method are further demonstrated by the absence
to date of radiosity pictures in published work exhibiting sharp
shadow edges.
The other extreme of radiosity problems is oversampling of
radiosities due to polygonization that is too fine for the hemicube.
The resulting quantization can be cured by adaptive subdivision
of the hemicube or of the light rays [Wallace89], [Baum89].
We conclude that polygonization criteria remain a difficult
problem for the radiosity method.
It is interesting to note the similaxities between radiosity al-
gorithms and the Atherton-Weiler algorithm. Conceptually, the
original radiosity method gathers light to each polygon by ren-
dering the scene from the point of view of each receiver, but
the progressive radiosity algorithm shoots light by rendering the
scene from the point of view of each sender (a light source). A
progressive radiosity algorithm using a hemicube is thus much
like repeated application of the Atherton-Weiler shadow algo-
rithm.
2.2.3 Samples in 3-D
l~adiosities can be computed using brute force distribution ray
tracing [Kajiya86], but the method is inefficient because it sam-
ples the slowly-varying radiosity function densely. To exploit the
coherence of radiosity values, Ward sampled the diffuse compo-
nent sparsely, and saved this information in a world space octree
[Ward88]. Because his algorithm shot rays from the eye toward
the lights, and not vice-versa, it had difficulty detecting light
sources reflected by specular surfaces.
2.2.4 Radiosity Texture
The fourth data structure for radiosities is the radiosity texture.
Instead of polygonizing each surface and storing one radiosity
value per polygon, radiosity samples are stored in a texture on
every diffuse surface in the scene [Arvo86]. Arvo called his tex-
tures "illumination maps". He computed them by tracing rays
from the light sources.
2.3 Light Ray Tracing
Rays traced from the eye we call eye rays and rays traced from the
lights we call light rays. We avoid the terms "forward ray tracing"
and "backward ray tracing" because they are ambiguous: some
people consider photon motion ~'forward', while others consider
Whitted's rays "forward".
Light ray tracing was originally proposed by Appel [Appe168],
who "stored" his radiosities on paper with a plotter. Light ray
tracing was proposed for beams in previous work with Hanra-
han [Heckbert84] where we stored radiosities as surface detail
polygons like Atherton-Weiler. This approach was modified by
Strauss, who deposited light directly in screen pixels when a dif-
fuse surface was hit by a beam, rather than store the radiosities
with the surface [Strauss88]. Watt has recently implemented light
beam tracing to simulate refraction at water surfaces [Wattg0].
Arvo used light ray tracing to compute his radiosity textures
[Arvo86]. Light ray tracing is often discussed but has been little
used, to date.
3 Bidirectional Ray Tracing Using Adap-
tive Radiosity Textures
In quest of realistic image synthesis, we seek efficient algorithms
for simulating global illumination that can accommodate curved
surfaces, complex scenes, and arbitrary surface characteristics
(BDF's), and generate pictures perceptually indistinguishable
from reality. These goals are not realizable at present, but we
can make progress if we relax our requirements.
147
O SIGGRAPH '90, Dallas, August 6-10, 1990
We make the following assumptions:
(1) Only surfaces are relevant. The scattering or absorp-
tion of volumes can be ignored.
(2) Curved surfaces are important. The world is not
polygonal.
(3) Shadows, penumbras, texture, diffuse interreflection,
specular reflection, and refraction are all important.
(4) We can ignore the phenomena of fluorescence (light
wavelength crosstalk), polarization, and diffraction.
(5) Surface properties can be expressed as a linear com-
bination of diffuse and specular reflectance and trans-
mission functions:
BDF =kd~BRDFdity + ksrB1~DF~pec+
kdtBTDFdi// + kstBTDFspec
The coet-ficients klj are not assumed constant.
(6) Specular surfaces are not rough; all specular interac-
tion is ideal.
3.1 Approach
Our approach is a hybrid of radiosity and ray tracing ideas.
Rather than patch together these two Mgorithms, however, we
seek a simple, coherent, hybrid algorithm. To provide the great-
est generality of shape primitives and optical effects, we choose
ray tracing as the visibility algorithm. Because ray tracing is
weak at simulating global diffuse interaction, the principal task
before us is therefore to determine an etficient method for calcu-
lating radiosities using ray tracing.
To exploit the view-independence and coherence of radiosity,
we store radioslty with each diffuse surface, using an adaptive
radiosity texture, or rex. A rex records the pattern of light and
shadow and color bleeding on a surface. We store radiosity as
a texture, rather than as a polygonization, in order to decouple
the data structures for geometry and shading, and to facilitate
adaptive subdivision of radieslty information; and we store it
with the surface, ratlier than in a global octree [Ward88], or in a
light image, based on the intuition that radiosities are intrinsic
properties of a surface. We expect that the memory required for
rexes will not be excessive, since dense sampling of radiosity will
be necessary only where it has a high gradient, such as at shadow
edges.
Next we need a general technique for computing the rexes.
The paths by which photons travel through a scene can motivate
our algorithm (figure 2). We can characterize each interaction
along a photon's path from light (L) to eye (E) as either diffuse
(D) or specular (S). Each path can therefore be labeled with
some string in the set given by the regular expression L(D]S)*E.
Classic ray tracing simulates only LDS*E [LS*E paths, while
classic radioslty simulates only LD*E. Eye ray tracing has dif-
ficulty finding paths such as LS+DE because it doesn't know
where to look for specularly reflected light when integrating the
hemisphere. Such paths are easily simulated by light ray tracing,
however.
We digress for a moment to discuss units. Light rays carry
power (energy/time) and eye rays carry intensity (energy / (time
* projected area * solid angle)). Each light ray carries a fraction
Figure 2: Selected photon paths from light (L) to eye (E) by
way of diffuse (D) and specular (S) surfaces. For simplicity, the
surfaces shown are entirely diffuse or entirely specular; normally
each surface would be a mixture.
D
° /
Figure 3: Left: first level light ray tracing propagates photons
from the light to the first diffuse surface on a path (e.g. LD
and LSD); higher levels of progressive light ray tracing simulate
indirect diffuse interaction (e.g. LDD). Right: eye ray trac-
ing shoots rays from the eye, extracting radiosities from diffuse
surfaces (e.g. it traces DE and DSE in reverse).
of the total power emitted by the light.
We can simulate paths of the form LS*D by shooting light
rays (photons) into the scene, depositing the photon's power into
the rex of the first diffuse surface encountered (figure 3, left).
Such a light ray tracing pass will compute a first approximation
to the radiosities. This can be followed by an eye ray tracing pass
in which we trace DS*E paths in a backward direction, extract-
ing intensity from the rex of the first diffuse surface encountered
(figure 3, right). The net effect of these two passes will be the
simulation of all LS*DS*E paths. The rays of the two passes
"meet in the middle" to exchange information. To simulate dif-
fuse interreflection, we shoot progressively from bright surfaces
[Cohen88] during the light ray tracing pass, thereby accounting
for all paths: L(S*D)*S*E = L(D[S)*E. We call these two
passes the light pass and eye pass. Such bidirectional ray tracing
using adaptive radiosity textures can thus simulate all photon
paths, in principle.
Our bidirectional ray tracing algorithm is thus a hybrid. From
radiosity we borrowed the idea of saving and reusing the diffuse
component, whicil is view-independent, and from ray tracing we
borrowed the idea of discarding and recomputing the specular
component, which is view-dependent.
148
~ ComputerGraphics,Volume24, Number4, August1990
3.2 All Sampling is Adaptive
There are three separate multidimensional sampling processes
involved in this approach: sampling of directions from the light,
sampling of directions from the eye (screen sampling), and sam-
pling of radiosity on each diffuse surface.
3.3 Adaptive Radiosity Textures (Rexes)
Rexes are textures indexed by surface parameters u and v, as in
standard texture mapping [Blinn76], [Heckbert86]. We associate
a rex with every diffuse or partially-diffuse surface. By using
a texture and retaining the initial geometry, instead of polygo-
nizing, we avoid the polygonized silhouettes of curved surfaces
common in radiosity pictures.
In the bidirectional ray tracing algorithm, the rexes collect
power from incident photons during the light pass, and this in-
formation is used to estimate the true radiosity function during
the eye pass (figure 4). Our rexes thus serve much like den-
sity estimators that estimate the probability density of a random
variable from a set of samples of that random variable [Silver-
man86]. Density can be estimated using either histogram meth-
ods, which subdivide the domain into buckets; or kernel estima-
tors, which store every sample and reconstrnct the density as a
sum of weighted kernels (similar to a spline).
The resolution of a rex should be related to its screen size.
Ideally, we want to resolve shadow edges sharply in the final
picture, which means that rexes should store details as fine as
the preimage of a screen pixel. On the other hand, resolution
of details smaller than this is unnecessary, since subpixel detail
is beyond the Nyquist limit of screen sampling. Cohen's sub-
structuring technique is adaptive, but its criteria appear to be
independent of screen space, so it cannot adapt and optimize the
radiosity samples for a particular view.
To provide the light pass with information about rex resolu-
tion we precede the light pass with a size pass in which we trace
rays from the eye, labeling each diffuse surface with the minimum
rex feature size.
3.8.1 Adaptive Light Sampling
Adaptive sampling of light rays is desirable for seYeral reasons.
Sharp resolution of shadow edges requires rays only where the
light source sees a silhouette. Also, it is only necessary to trace
light paths that hit surfaces visible (directly or indirectly) to the
eye. Thirdly, omnidirectional lights disperse photons in a sphere
of directions, but when such lights are far from the visible scene,
as is the sun, the light ray directions that affect the final picture
subtend a small solid angle. Finally, stratified sampling should be
used for directional lights to effect their goniometric distribution.
Thus, to avoid tracing irrelevant rays, we sample the sphere of
directions adaptively [Sillion89], [Wallace89].
For area light sources, we use stratified sampling to distribute
the ray origins across the surface with a density proportional to
the local radiosity. Stratified sampling should also be used to
shoot more light rays near the normal, since it is intensity that
is constant with outgoing angle, while power is proportional to
the cosine of the angle with the normal. If the surface has both a
standard texture and a rex mapped onto it, then the rex should
be modulated by this standard texture before shooting. With
Figure 4: Photons incident on a rex (shown as spikes with height
proportional to power) are samples from the true, piecewise-
continuous radiosity function (the curve). We try to estimate
the function from the samples.
area light sources, the distribution to be integrated is thus four-
dimensional: two dimensions for surface parameters u and v,
and two dimensions for ray direction. For best results, a 4-D
data structure such as a k-d tree should be used to record and
adapt the set of light rays used.
3.3.2 Adaptive Eye Sampling
Eye rays (screen pixels) are sampled adaptively as well. Tech-
niques for adaptive screen sampling have been covered well by
others [Warnock69], [Whitted80], [Mitchell87], [Painter89].
3.4 Three Pass Algorithm
Our bidirectional ray tracing algorithm thus has three passes.
We discuss these passes here in a general way; the details of a
particular implementation are discussed in §4. The passes are:
size pass - record screen size information in each rex
light pass - progressively trace rays from lights and bright
surfaces, depositing photons on diffuse surfaces to
construct radiosity textures
eye pass - trace rays from eye, extracting light from dif-
fuse surfaces to make a picture
Specular reflection and transmission bounces are followed on all
three passes. Distribution ray tracing can be used in all passes
to simulate the broad distributions of rough specular reflections
and other effects.
3.4.1 Size Pass
As previously described, the size pass traces rays from the eye,
recording information about the mapping between surface pa-
rameter space and screen space. This information is used by each
rex during the light pass to terminate its adaptive subdivision.
3.4.2 Light Pass
Indirect diffuse interaction is simulated during the llght pass by
regarding bright diffuse surfaces as light sources, and shooting
light rays from them~ as in progressive radiosity. The rex records
the shot and unshot power.
149
@SIGGRAPH '90, Dallas, August 6-10, 1990
The adaptive algorithm for light ray tracing must ensure that:
(a) a minimum level of light sampling is achieved; (b) more rays
are devoted near silhouettes, shadows, and high curvature areas;
(c) sharp radiosity gradients are resolved to screen pixel size; and
(d) light rays and rexes are subdivided cooperatively.
3.4.3 Eye Pass
The eye pass is like a standard ray tracing algorithm except that
the diffuse intensity is extracted out of the text instead of from a
shadow ray. The radiosity of a surface patch is its power divided
by its world-space surface area.
After the three passes are run, one could move the eye point
and re-run the eye pass to generate other views of the seen% but
the results would be inferior to those made by recomputing the
rexes adapted to the new viewpoint.
3.4.4 Observations
Because light rays are concentrated on visible portions of the
scene and radlosity is resolved adaptive to each surface~s projec-
tion in screen space, the radiosity calculation performed in the
light pass is view-dependent. But this is as it should be: al-
though the exact radiosity values are view-independent, the ra-
diosity sample locations needed to make a picture are not. When
computing moving-camera animation~ one could prime the rexes
by running the size pass for selected key frames to achieve more
view-independent sampling.
4 Implementation and Results
The current implementation realizes many, but not all, of the
ideas proposed here. It performs bidirectional ray tracing using
adaptive sampling for light~ eyed and rex. It has no size pass e
just a light pass and an eye pass. The program can render scenes
consisting of CSG combinations of spheres and polyhedra. Spec-
ular interaction is assumed ideal, and diffuse transmission is not
simulated. The light pass shoots photons from omnidirectional
point light sources, and does not implement progressive radios-
ity. The implementation thus simulates only iS*DS*E paths at
present. We trace ray trees, not just ray paths [Kajiya86].
4.0.5 Data Structures
Quadtrees were used for each of the 2-D sampling processes
[Samet90]: one for the outgoing directions of each light, one for
the parameter space of each radiosity texture, and one for the
eye.
The light and eye quadtrees are quite similar; their records
are shown below in pseudocode. Each node contains pointers to
its child nodes (if not a leaf) and to its parent node. Light space
is parameterized by (r,s), where r is latitude and s is longitude.
and eye space (screen space) is parameterized by (x,y). Each
node represents a square region of the parameter space whose
corner is given by (to, so) or (x0, y0) and whose size is propor-
tional to 2 -level.
low
Figure 5: I~ex quadtree on a surface. Adaptive fez subdivision
tries to subdivide more finely near a shadow edge.
The light quadtree sends one light ray per node at a location
uniformly distributed over the square. Also stored in each light
quadtree node is the ID of the surface hit by the light ray, if any,
and the surface parameters (u, v) at the intersection point. This
information is used to determine the distance in parameter space
between rex hits.
Eye quadtrees are simpler. Each node has pointers to the
intensities at its corners. These are shared with neighbors and
children. Eye ray tracing is currently uniform, not stochastic.
A rex quadtree node represents a square re,on of (u, v) pa-
rameter space on a diffuse surface (figure 5). Leaves in the rex
quadtree act as histogram buckets~ accumulating the number of
photons and their power. Rex nodes also record the world space
surface area of their surface patch.
lisht_node: type =
record
leaf: boolean;
mark: boolean;
level: int;
parent: "lisht_node;
nw, ne, se, ss: "light_node;
tO, sO: real;
r~ e: real;
surfnc: int;
u, v: real;
end;
eye_node: type =
record
leaf: boolean;
mark: boolean;
level: int;
parent: "eye_node;
nw, ne. se, sw: "eye_node;
xO. yO: real;
inw. ine. ise. is,: "color;
end;
{LIGHT QUADTREE NODE>
{is this a leaf?>
{should node be split?}
{level in tree (rook=O)}
{parent node. if any}
{four child/sn, if not a leaf}
{params of corner of square}
{dir. params o2 ray (lat.lon)}
{id of surface hit. if any}
{surf params of surface hit}
{EYE QUADTREE NODE}
{is this a leaf?}
{should node be split?}
{level in tree (root=O)}
{parent node. if any}
{four children, if not a leaf}
{coords of corner of square}
{intensity samples at corners}
rex_node: type =
record
leaf: boolean;
mark: boolean;
level: int;
parent: "rex_node;
nw, ne, se, sw: "rex_node;
nO. vO: real;
area: real;
count: int;
power: color;
end;
{REX QUADTREENODE}
{is this a leaf?}
{should node be split?}
{level in tree (root=O)}
{parent node. if any}
{four children, if not a leaf}
{surf params of square corner}
{surface area of this bucket}
{~photon~ in bucket, if leaf}
{accumulated power of bucket}
150
~ ComputerGraphics,Volume24, Number4, August1990
1/16 1/16...
O0 i! 0
• • 0 o
Figure 6: Light quadtree shown schematically (left) and in light
direction parameter space (right). When a light quadtree node is
split, its power is redistributed to its four sub-nodes, which each
send a ray in a direction (r,s) jittered ~oithin their parameter
square. The fractional power of each light ray is shown next to
the leaf node that sends it.
The current implementation uses the following algorithm.
4.1 Light Pass
First, rex quaxitrees are initialized to a chosen starting level (level
3, say, for 8x8 subdivision), and the counts and powers of all
leaves are zeroed.
For each light, light ray tracing proceeds in breadth first order
within the light quadtree, at level 0 tracing a single ray carrying
the total power of the light, at level 1 tracing up to 4 rays, at level
2 tracing up to 16 rays, etc (figure 6). At each level, we adaptively
subdivide both the light quadtree and the rex quadtrees. Chang-
ing the rex quadtrees in the midst of light ray shooting raises
the histogram redistribution problem, however: if a histogram
bucket is split during collection, it is necessary to redistribute
the parent's mass among the children. There is no way to do this
reliably without a priori knowledge, so we clear the rex at the
beginning of each level and reshoot.
Processing a given level k of light rays involves three steps:
(1) rex subdivision to split rex buckets containing a high density
of photons, (2) light marking to mark light quadtree nodes where
more light rays should be sent, and (3) light subdivision to split
marked light nodes.
Rex subdivision consists of a sweep through every rex quadtree
in the scene, splitting all rex buckets whose photon count exceeds
a chosen limit. All counts and powers are zeroed at the end of
this sweep.
Light marking traverses the light quadtree, marking all level
k nodes that meet the subdivision criteria listed below.
(1) Always subdivide until a minimum level is reached.
(2) Never subdivide beyond a maximum level (if a size
pass were implemented, it would determine this max-
imum level locally).
Otherwise, look at the light quadtree neighbors above, below,
left, and right, and subdivide if the following is true:
(3) The ray hit a diffuse surface, and one of the four
neighbors of the rex node hit a different surface or
was beyond a threshold distance in (u, v) parameter
space from the center ray's.
To help prevent small feature neglect, we also mark for subdi-
vision all level k - 1 leaves that neighbor on level k leaves that
are m~ked for subdivision. This last rule guarantees a restricted
quadtree [Von Herzen87] where each leaf node's neighbors are at
a level within plus or minus one of the center node's.
Light subdivision traverses the light quadtree splitting the
marked nodes. Subdividing a node splits a ray of power p into
four rays of power p/4 (figure 6). When a light node is cre-
ated (during initialization or subdivision) we select a point at
random within its square (r, s) domain to achieve jittered sam-
pling [Cook86] and trace a ray in that direction. Marked nodes
thus shoot four new rays, while unmarked nodes re-shoot their
rays. During light ray tracing we follow specular bounces, split-
ting the ray tree and subdividing the power according to the re-
flectance/transmittance coefficients kij, and deposit their power
on any diffuse surface that are hit. When a diffuse surface is hit,
we determine (u,v) of the intersection point, and descend the
surface's rex quadtree to find the rex node containing that point.
The power of that node is incremented by the power of the ray
times the cosine of the incident angle.
4.2 Eye Pass
The eye pass is a fairly standard adaptive supersampling ray
tracing algorithm: nodes are split when the intensity difference
between the four corners exceeds some threshold. To generate a
picture, nodes larger than a pixel perform bilinear interpolation
to fill in the pixels they cover, while nodes smaller than a pixel
are averaged together to compute a pixel. The picture is stored
in floating point format initially, then scaled and clamped to the
range [0,255] in each channel.
4.3 Results
Figures 7-12 were generated with this program. Figures 7, 8, and
9 show the importance of coordinating the light ray sampling pro-
cess with the rex resolution. Sending too few light rays results
in a noisy radiosity estimate from the rex, and too coarse a rex
results in blocky appearance. When the rex buckets are approxi-
mately screen pixel size and the light ray density deposits several
photons per bucket (at least 10, s~y), the results are satisfac-
tory. We estimate the radiosity using a function that is constant
within each bucket; this simple estimator accounts for the blocki-
ness of the images. If bilinear interpolation were used, as in most
radiosity algorithms, we could trade off blockiness for blurriness.
Figure 10 shows adaptive subdivision of a rex quadtree, split-
ting more densely near shadow edges (the current splitting cri-
teria cause unnecessary splitting near the border of the square).
Its rex quadtree is shown in figure 11.
Figure 12 shows off some of the effects that are simulated by
this algorithm.
151
SIGGRAPH '90, Dallas, August 6-10, 1990
.7~:~"Z :" : •
I • ":J'g
Lgm":+ .... z2q " .4:!
Figure 7: Noisy appearance results when too few light rays are
received in each rex bucket (too few light rays or too fine a rex).
Scene consists of a diffuse sphere above a diffuse floor both illu-
minated by an overhead light source.
Figure 8: Blocky or blurry appearance results when rex buckets
are much larger than a screen pixel (too coarse a rex).
Figure 9: Proper balance of light sampling and rex sampling
reduces both noise and blockiness.
Figure 10: Rez with adaptation: the rex of the floor is initially a
single bucket, but it splits adaptively near the edges of the square
and near the shadow edge.
Statistics for these images are listed below, including the
number of light rays, the percentage of light rays striking an ob-
ject, the resolution of the rex, the resolution of the final picture,
the number of eye rays, and the CPU time. All images were com-
puted on a MIPS R2000 processor. The lens image used about 20
megabytes of memory~ mostly :for the light qu~dtree. Ray trees
were traced to a depth of 5.
#LRAYS %HIT REX I EYE #ERAYS
87,400 10% 128~ I 256~ 246,000
87,400 10% 82 2562 139,000
822,000 68% 1282 2562 146,000
331,000 20% vbl 2562 139,000
1,080,000 61% 256~ 5122 797,000
TIME I FIG1.0 min. fig. 7
0.6 rain. fig. 8
3.5 rain. fig. 9
1.3 rain. fig. 10
6.4 rain. fig. 12
152
~ ComputerGraphics,Volume24, Number4, August1990
Figure 11: Rex quadtree in (u, v) space of previous figure's floor.
Each leaf node's square is colored randomly. Note the subdivision
near the shadow edge and the quadtree restriction.
5 Conclusions
The bidirectional ray tracing algorithm outlined here appears to
be an accurate, general approach for global illumination of scenes
consisting of diffuse and pure specular surfaces. It is accurate be-
cause it can account for all possible light paths; and it is general
because it supports both the radiosity and ray tracing realms:
shapes bosh planar and curved materials both diffuse and spec-
ular, and lights both large and small. Distribution ray tracing
can be used to simulate effects not directly supported by the
algorithm.
Adaptive radiosity textures (rexes) are a new data struc-
ture that have several advantages over previous radiosity storage
schemes. They can adaptively subdivide themselves to resolve
sharp shadow edges to screen pixel size, thereby eliminating vis-
ible artifacts of radiosity sampling. Their subdivision can be
automatic, requiring no ad hoc user-selected parameters.
The current implementation is young, however, and many
problems remain. A terse fist follows: Good adaptive sampling
of area light sources appears to require a 4-D data structure. Bet-
ter methods are needed to determine the number of light rays.
The redistribution problems of histograms caused us to send each
light ray multiple times. To avoid this problem we could store
all (or selected) photon locations using kernel estimators [Sil-
verman86]. Excessive memory is currently devoted to the light
quadtree, since one node is stored per light ray. Perhaps the
quadtree could be subdivided in more-or-less scanline order, and
the memory recycled (quadtree restriction appears to complicate
this, however). Adaptive subdivision algorithms that compare
the ray trees of neighboring rays do not mix easily with path
tracing and distribution ray tracing, because the latter obscure
coherence. Last but not least, the interdependence of light ray
subdivision and rex subdivision is precarious.
Figure 12: Light focusing and reflection from a lens and chrome
ball. Scene is a glass lens formed by CSG intersection of two
spheres, a chrome ball, and a diffuse floor~ illuminated by a light
source off screen to the right. Note focusing of light through lens
onto floor at center (an LSSD path), reflection of refracted light
off ball onto floor (an LSS SD path involving both transmission
and reflection), the reflection of light off lens onto floor forming
a parabolic arc (an LSD path), and the reflection of the lens in
the ball (a LSSDSSE path, in full).
In spite of these challenges, we are hopeful. The approach
of bidirectional ray tracing using adaptive radiosity textures ap-
pears to contain the mechanisms needed to simulate global illu-
mination in a general way.
6 Acknowledgements
Thanks to Greg Ward for discussions about the global illumina-
tion problem, to Steve Omohundro for pointing me to the density
estimation literature, to Ken Turkowski and Apple Computer for
financial support, and to NSF grant CDA-8722788 for "Mam-
moth" time.
7 References
[Appe168] Arthur Appel, "Some Techniques for Shading Machine Render-
ings of Solids", AFIPS 1968 Spring Joint Computer Con].,col. 32,
1968, pp. 37-45.
[Arvo86] James Afro, "Backward Ray Tracing", SIGGRAPH '86Develop-
ments in Ray Tracingseminar notes,Aug. 1986.
[Atherton?8] Peter R. Atherton, Kevin Weiler, Donald P. Greenberg, "Poly-
gon Shadow Generation°, Computer Graphics(SIGGRAPH '78 Pro-
ceedings), vol. 12, no. 3, Aug. 1978~pp. 275-281.
[Baurn89] Daniel R. Baum, Holly E. Rushmeier, James M. Winget, "Im-
proving lqadiosity Solutions Through the Use of Analytically Deter-
mined Form Factors", Computer Graphics(SIGGRAPH '89 Proceed-
ings), col. 23, no. 3, July 1989, pp. 325-334.
[BlJnn76] James F. Blinn, Martin E. Newell, "Texture and Reflection in
Computer Generated Images", CACM, col. 19, no. 10, Oct. 1976,
pp. 842-547.
153
@SIGGRAPH '90, Dallas, August 6-10, 1990
[Buckalew89] Chris Buckalew, Donald FusseU, "Illumination Networks: Fast
Realistic Rendering with General Reflectance Functions", Computer
Graphics (SIGGRAPH '89 Proceedings), vol. 23, no. 3, July 1989,
pp. 89-98.
[Cohengg] Michael F. Cohen, Donald P. Greenberg, "The Hemi-Cube: A
Radiosity Solution for Complex Environments", Computer Graphics
(SIGGRAPH '85 Proceedings), vol. 19, no. 3, July 1985, pp. 31-40.
[Cohen86] Michael F. Cohen, Donald P. Greenberg, David S. ]rnmel, Philip
J. Brock, "An Efficient Radiosity Approach for Realistic Image Syn-
thesis", [EEE Computer Graphics and Applications, Mar. 1986, pp.
26-35.
[CohenS8] Michael F. Cohen, Shenehang Eric Chen, John R. Wallace, Don-
ald P. Greenberg, "A Progressive R.ellnement Approach to Fast R.~.-
diosity Image Generation", Computer Graphics(SIGGRAPH '88 Pro-
eeedings), vol. 22, no. 4, Aug. 1988, pp. 75-84.
[Cook84] Robert L. Cook, Thomas Porter, Loren Carpenter, "Distributed
Ray Tracing", Computer Graphics(SIGGRAPH '84 Proceedings), vol.
18, no. 3, July 1984, pp. 137-145.
[Cook86] P~obert L. Cook, "Stocha~stie Sampling in Computer Graphics",
ACM Transactions on Graphics, vol. 5, no. 1, Jan. 1986, pp. 51-72.
[Dippe851 Mark A. Z. Dippe, Erling Henry Wold, "Antiallaslng Through
Stochastic Sampling", Computer Graphics(SIGGRAPH '85 Proceed-
ings), vol. 19, no. 3, July 1985, pp. 69-78.
[Gora184] Cindy M. Goral, Kenneth E. Torrance, Donald P. Greenberg,
Bennett Battaile, "Modeling the Interaction of Light Between Diffuse
Surfaces", Computer Graphics(SIGGRAPH '84 Proceedings), vol. 18,
no. 3, July 1984, pp. 213-222.
[Hallg9] Roy Hall, Rlumination and Color in Computer Generatedlmagery,
Springer Verlag, New York, 1989.
[I-Iockbert84] Paul S. Heekbert, Pat Hanrahan, "Beam Tracing Polygonal
Objects", Computer Graphics (SIGGRAPH '84 Proceedings), vol. 18,
no. 3, July 1984, pp. 119-127.
[Heckbert86] Paul S. Heckbezt, "Survey of Texture Mapping", 1EEE Com-
puter Graphicsand Applications, vol. 6, no. 11, Nov. 1986, pp. 56-67.
[ImmelS6~ David S. Immel, Michael F. Cohen, Donald P. Greenherg, "A
Radiosity Method for Non-Diffuse Environments", Computer Graphics
(SIGGRAPH '86 Proceedings), vol. 20, no. 4, Aug. 1986, pp. 133-
142.
[Kajiya88] James T. Kajiya, "The Rendering Equation", Computer Graph-
ics (SIGGRAPH '86 Proceedings), vol. 20, no. 4, Aug. 1986, pp.
143-150.
[Lee85] Mark E. Lee, 1Lichard A. Redner, Samuel P. Uselton, "Statistically
Optimized Sampling for Distributed Ray Tracing", Computer Graph-
ics (SIGGRAPH '85 Proceedings), vol. 19, no. 3, July 1985, pp.
61-67.
[Mitchell87] Don P. Mitchell, "Generating Antialiased Images at Low Sam-
piing Densities", Computer Graphics (SIGGRAPH '87 Proceedings),
vol. 21, us. 4, July 1987, pp. 65-72.
[INishita85] Tomoyukilqishita, EihachiroNakamae, "Continuous Tone Rep-
resentation of 3-D Objects Taking Account ofShadows and lute,reflec-
tion", Computer Graphics (SIGGRAPH '85 Proceedings), voh 19, no.
3, July 1985, pp. 23-30.
[Painter89] James Painter, Kenneth S]oan, "Antialiased Ray Tracing by
Adaptive Progressive Refinement", Computer Graphics(SIGGRAPH
'89 Pxoceedings), vol. 23, no. 3, July 1989, pp. 281-288.
[Keeves87] William T. Reeves, David H. Salesin, Robert L. Cook, "Ren-
dering Antialiascd Shadows with Depth Maps", Computer Graphics
(SIGGRAPH '87 Proceedings), vol. 21, no. 4, July 1987, pp. 283-291.
[Samet90] Hanan Samet, The Design and Analysis of Spatial Data Struc-
tures, Reading, MA, Addison-Wesley, 1990.
[Shaog8] Min-Zhi ShaD, Qun-Slieng Peng, You-Dong Liang, "A New Ra-
diosity Approach by Procedural Refinements for Realistic Image Syn-
thesis", Computer Graphics (SIGGRAPH '88 Proceedings), vol. 22,
us. 4, Aug. 1988, pp. 93-101.
[Siegel81] Robert Siegel, John R. Howell, Thermal Radiation Heat Trans-
fer, Hemisphere Publishing Corp., Washington, DC, 1981.
[SiUion89] Francois Sillion, Claude Puech, ~A General Two-Pass Method
Integrating Specular and Diffuse ReflectionS, Computer Graphics(SIC-
GRAPH '89 Proceedings), vol. 23, no. 3~July 1989~ pp. 335-344.
[Silvermang6] B.W. Silverman, Density Estimation for Statistics and Data
Analysis, Chapman and Hall, London, 1986.
[Strnuasg8] Paul S. Strauss, BAGS: The Brotvn Animation GenerationSys-
tern, PhD thesis, Tech. Report CS-88-2, Dept. of CS, Brown U, May
1988.
[Von Herren87] Brian Von Herren, Alan H. Burr, "Accurate Triangula-
tions of Deformed, Intersecting Surfaces", Computer Graphics (SIC-
GRAPH '87 Proceedings), vol. 21, no. 4, July 1987, pp. 103-110.
[WallaceS7] John R. Wallace, Michael F. Cohen, Donald P. Greenber8~ "A
Two-Pass Solution to the Rendering Equation: A Synthesis of Ray
Tracing and Radiosity Methods", Computer Graphics (SIGGRAPH
'87 Proceedings), vol. 21, no. 4, July 1987, pp. 311-320.
[Wallace89] John R. Wallace, Kells A. Elmquist, Eric A. Haines, "A Ray
Tracing Algorithm for Progressive Radiosity", Computer Graphics
(SIGGRAPH '89 Proceedings), vol. 23, no. 3, July 1989, pp. 315-324.
[Ward88] Gregory J. Ward, Francis M. Rubinstein, Robert D. Clear, "A
Ray Tracing Solution for Diffuse Interrefleetion", Computer Graphics
(SIGGRAPH '88 Proceedings), vol. 22, no. 4, Aug. 1988, pp. 85-92.
[Warnock69] John E. Warnoek, A Hidden Surface Algorithm for Computer
Generated Halftone Pictures, TR 4-15, CS Dept, U. of Utah, June
1969.
[Watt90] Mark Watt, "Light-Ware, interaction using Backward BeamTrae
ing', Computer Graphics (SIGGRAPH '90 Proceedings), Aug. 1990.
[Whlttedg0] Turner Whirred, "An Improved Illumination Model for Shaded
Display"~ CACM, voh 23, no. 6, June 1980, pp. 343-349.
[Wllllams78] Lance Williams, "Casting Curved Shadows on Curved Sur-
faces", Computer Graphics (SIGGRAPH '78 ProeeedingS)r voL 12,
no. 3, Aug. 1978, pp. 270-274.
154

Weitere ähnliche Inhalte

Was ist angesagt?

GRPHICS07 - Textures
GRPHICS07 - TexturesGRPHICS07 - Textures
GRPHICS07 - TexturesMichael Heron
 
A Physical Approach to Moving Cast Shadow Detection (ICASSP 2009)
A Physical Approach to Moving Cast Shadow Detection (ICASSP 2009)A Physical Approach to Moving Cast Shadow Detection (ICASSP 2009)
A Physical Approach to Moving Cast Shadow Detection (ICASSP 2009)Jia-Bin Huang
 
Graphics Lecture 7
Graphics Lecture 7Graphics Lecture 7
Graphics Lecture 7Saiful Islam
 
Computer Vision: Shape from Specularities and Motion
Computer Vision: Shape from Specularities and MotionComputer Vision: Shape from Specularities and Motion
Computer Vision: Shape from Specularities and MotionDamian T. Gordon
 
Feature based ghost removal in high dynamic range imaging
Feature based ghost removal in high dynamic range imagingFeature based ghost removal in high dynamic range imaging
Feature based ghost removal in high dynamic range imagingijcga
 
Deferred Pixel Shading on the PLAYSTATION®3
Deferred Pixel Shading on the PLAYSTATION®3Deferred Pixel Shading on the PLAYSTATION®3
Deferred Pixel Shading on the PLAYSTATION®3Slide_N
 
Interferogram Filtering Using Gaussians Scale Mixtures in Steerable Wavelet D...
Interferogram Filtering Using Gaussians Scale Mixtures in Steerable Wavelet D...Interferogram Filtering Using Gaussians Scale Mixtures in Steerable Wavelet D...
Interferogram Filtering Using Gaussians Scale Mixtures in Steerable Wavelet D...CSCJournals
 
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral ImagesBand Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral ImagesIDES Editor
 
Variable length signature for near-duplicate
Variable length signature for near-duplicateVariable length signature for near-duplicate
Variable length signature for near-duplicatejpstudcorner
 
Optic flow estimation with deep learning
Optic flow estimation with deep learningOptic flow estimation with deep learning
Optic flow estimation with deep learningYu Huang
 
illumination model in Computer Graphics by irru pychukar
illumination model in Computer Graphics by irru pychukarillumination model in Computer Graphics by irru pychukar
illumination model in Computer Graphics by irru pychukarsyedArr
 
Neural Scene Representation & Rendering: Introduction to Novel View Synthesis
Neural Scene Representation & Rendering: Introduction to Novel View SynthesisNeural Scene Representation & Rendering: Introduction to Novel View Synthesis
Neural Scene Representation & Rendering: Introduction to Novel View SynthesisVincent Sitzmann
 
Rotman Lens Performance Analysis
Rotman Lens Performance AnalysisRotman Lens Performance Analysis
Rotman Lens Performance AnalysisIDES Editor
 
Normalized averaging using adaptive applicability functions with applications...
Normalized averaging using adaptive applicability functions with applications...Normalized averaging using adaptive applicability functions with applications...
Normalized averaging using adaptive applicability functions with applications...guest31063e
 

Was ist angesagt? (20)

GRPHICS07 - Textures
GRPHICS07 - TexturesGRPHICS07 - Textures
GRPHICS07 - Textures
 
HDR
HDRHDR
HDR
 
A Physical Approach to Moving Cast Shadow Detection (ICASSP 2009)
A Physical Approach to Moving Cast Shadow Detection (ICASSP 2009)A Physical Approach to Moving Cast Shadow Detection (ICASSP 2009)
A Physical Approach to Moving Cast Shadow Detection (ICASSP 2009)
 
Illumination models
Illumination modelsIllumination models
Illumination models
 
Ray tracing
Ray tracingRay tracing
Ray tracing
 
Graphics Lecture 7
Graphics Lecture 7Graphics Lecture 7
Graphics Lecture 7
 
Shading methods
Shading methodsShading methods
Shading methods
 
Computer Vision: Shape from Specularities and Motion
Computer Vision: Shape from Specularities and MotionComputer Vision: Shape from Specularities and Motion
Computer Vision: Shape from Specularities and Motion
 
Ray tracing
 Ray tracing Ray tracing
Ray tracing
 
Feature based ghost removal in high dynamic range imaging
Feature based ghost removal in high dynamic range imagingFeature based ghost removal in high dynamic range imaging
Feature based ghost removal in high dynamic range imaging
 
Deferred Pixel Shading on the PLAYSTATION®3
Deferred Pixel Shading on the PLAYSTATION®3Deferred Pixel Shading on the PLAYSTATION®3
Deferred Pixel Shading on the PLAYSTATION®3
 
graphics notes
graphics notesgraphics notes
graphics notes
 
Interferogram Filtering Using Gaussians Scale Mixtures in Steerable Wavelet D...
Interferogram Filtering Using Gaussians Scale Mixtures in Steerable Wavelet D...Interferogram Filtering Using Gaussians Scale Mixtures in Steerable Wavelet D...
Interferogram Filtering Using Gaussians Scale Mixtures in Steerable Wavelet D...
 
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral ImagesBand Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
 
Variable length signature for near-duplicate
Variable length signature for near-duplicateVariable length signature for near-duplicate
Variable length signature for near-duplicate
 
Optic flow estimation with deep learning
Optic flow estimation with deep learningOptic flow estimation with deep learning
Optic flow estimation with deep learning
 
illumination model in Computer Graphics by irru pychukar
illumination model in Computer Graphics by irru pychukarillumination model in Computer Graphics by irru pychukar
illumination model in Computer Graphics by irru pychukar
 
Neural Scene Representation & Rendering: Introduction to Novel View Synthesis
Neural Scene Representation & Rendering: Introduction to Novel View SynthesisNeural Scene Representation & Rendering: Introduction to Novel View Synthesis
Neural Scene Representation & Rendering: Introduction to Novel View Synthesis
 
Rotman Lens Performance Analysis
Rotman Lens Performance AnalysisRotman Lens Performance Analysis
Rotman Lens Performance Analysis
 
Normalized averaging using adaptive applicability functions with applications...
Normalized averaging using adaptive applicability functions with applications...Normalized averaging using adaptive applicability functions with applications...
Normalized averaging using adaptive applicability functions with applications...
 

Andere mochten auch

Simulacion sistemas tema6pr-2
Simulacion sistemas tema6pr-2Simulacion sistemas tema6pr-2
Simulacion sistemas tema6pr-2Xavier Davias
 
01 simulacion de sistemas semana1 - elvis del aguila lopez
01 simulacion de sistemas   semana1 - elvis del aguila lopez01 simulacion de sistemas   semana1 - elvis del aguila lopez
01 simulacion de sistemas semana1 - elvis del aguila lopezElvis Del Aguila Lopez
 
Introduccion a la Simulación de Sistemas
Introduccion a la Simulación de SistemasIntroduccion a la Simulación de Sistemas
Introduccion a la Simulación de SistemasP.A. Ortiz Bochard
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Sergio Sanchez
 
Simulación de sistemas
Simulación de sistemasSimulación de sistemas
Simulación de sistemasjack_corvil
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y ObjetosKudos S.A.S
 

Andere mochten auch (6)

Simulacion sistemas tema6pr-2
Simulacion sistemas tema6pr-2Simulacion sistemas tema6pr-2
Simulacion sistemas tema6pr-2
 
01 simulacion de sistemas semana1 - elvis del aguila lopez
01 simulacion de sistemas   semana1 - elvis del aguila lopez01 simulacion de sistemas   semana1 - elvis del aguila lopez
01 simulacion de sistemas semana1 - elvis del aguila lopez
 
Introduccion a la Simulación de Sistemas
Introduccion a la Simulación de SistemasIntroduccion a la Simulación de Sistemas
Introduccion a la Simulación de Sistemas
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
 
Simulación de sistemas
Simulación de sistemasSimulación de sistemas
Simulación de sistemas
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
 

Ähnlich wie Heckbert p s__adaptive_radiosity_textures_for_bidirectional_r

Laser Physics Department -ALNeelain University 5 th
Laser Physics Department -ALNeelain University 5 thLaser Physics Department -ALNeelain University 5 th
Laser Physics Department -ALNeelain University 5 thGazy Khatmi
 
Seismic data processing 15, kirchhof migration
Seismic data processing 15, kirchhof migrationSeismic data processing 15, kirchhof migration
Seismic data processing 15, kirchhof migrationAmin khalil
 
Fusion of Multispectral And Full Polarimetric SAR Images In NSST Domain
Fusion of Multispectral And Full Polarimetric SAR Images In NSST DomainFusion of Multispectral And Full Polarimetric SAR Images In NSST Domain
Fusion of Multispectral And Full Polarimetric SAR Images In NSST DomainCSCJournals
 
V.karthikeyan published article a..a
V.karthikeyan published article a..aV.karthikeyan published article a..a
V.karthikeyan published article a..aKARTHIKEYAN V
 
V.KARTHIKEYAN PUBLISHED ARTICLE
V.KARTHIKEYAN PUBLISHED ARTICLEV.KARTHIKEYAN PUBLISHED ARTICLE
V.KARTHIKEYAN PUBLISHED ARTICLEKARTHIKEYAN V
 
Resolving filter grating etc
Resolving filter grating etcResolving filter grating etc
Resolving filter grating etcMohsin Siddique
 
BettySlamaPRE2011
BettySlamaPRE2011BettySlamaPRE2011
BettySlamaPRE2011Betty Slama
 
MC0086 Internal Assignment (SMU)
MC0086 Internal Assignment (SMU)MC0086 Internal Assignment (SMU)
MC0086 Internal Assignment (SMU)Krishan Pareek
 
Ultraviolet visible (uv vis) spectroscopy Likhith K
Ultraviolet visible (uv vis) spectroscopy Likhith KUltraviolet visible (uv vis) spectroscopy Likhith K
Ultraviolet visible (uv vis) spectroscopy Likhith KLIKHITHK1
 
Segmentation Based Multilevel Wide Band Compression for SAR Images Using Coif...
Segmentation Based Multilevel Wide Band Compression for SAR Images Using Coif...Segmentation Based Multilevel Wide Band Compression for SAR Images Using Coif...
Segmentation Based Multilevel Wide Band Compression for SAR Images Using Coif...CSCJournals
 
nanoscale xrd
nanoscale xrdnanoscale xrd
nanoscale xrdAun Ahsan
 
Boosting CED Using Robust Orientation Estimation
Boosting CED Using Robust Orientation EstimationBoosting CED Using Robust Orientation Estimation
Boosting CED Using Robust Orientation Estimationijma
 
Basics of remote sensing and GIS.pptx
Basics of remote sensing and GIS.pptxBasics of remote sensing and GIS.pptx
Basics of remote sensing and GIS.pptxFUCKAGAIN
 

Ähnlich wie Heckbert p s__adaptive_radiosity_textures_for_bidirectional_r (20)

Global illumination
Global illuminationGlobal illumination
Global illumination
 
Laser Physics Department -ALNeelain University 5 th
Laser Physics Department -ALNeelain University 5 thLaser Physics Department -ALNeelain University 5 th
Laser Physics Department -ALNeelain University 5 th
 
bragg2pre
bragg2prebragg2pre
bragg2pre
 
NIR imaging
NIR imaging NIR imaging
NIR imaging
 
Seismic data processing 15, kirchhof migration
Seismic data processing 15, kirchhof migrationSeismic data processing 15, kirchhof migration
Seismic data processing 15, kirchhof migration
 
Speckle Reduction in Images with WEAD and WECD
Speckle Reduction in Images with WEAD and WECD  Speckle Reduction in Images with WEAD and WECD
Speckle Reduction in Images with WEAD and WECD
 
Report
ReportReport
Report
 
Fusion of Multispectral And Full Polarimetric SAR Images In NSST Domain
Fusion of Multispectral And Full Polarimetric SAR Images In NSST DomainFusion of Multispectral And Full Polarimetric SAR Images In NSST Domain
Fusion of Multispectral And Full Polarimetric SAR Images In NSST Domain
 
V.karthikeyan published article a..a
V.karthikeyan published article a..aV.karthikeyan published article a..a
V.karthikeyan published article a..a
 
V.KARTHIKEYAN PUBLISHED ARTICLE
V.KARTHIKEYAN PUBLISHED ARTICLEV.KARTHIKEYAN PUBLISHED ARTICLE
V.KARTHIKEYAN PUBLISHED ARTICLE
 
Resolving filter grating etc
Resolving filter grating etcResolving filter grating etc
Resolving filter grating etc
 
Basics of dip
Basics of dipBasics of dip
Basics of dip
 
Polarization effect of antireflection coating for soi material system
Polarization effect of antireflection coating for soi material systemPolarization effect of antireflection coating for soi material system
Polarization effect of antireflection coating for soi material system
 
BettySlamaPRE2011
BettySlamaPRE2011BettySlamaPRE2011
BettySlamaPRE2011
 
MC0086 Internal Assignment (SMU)
MC0086 Internal Assignment (SMU)MC0086 Internal Assignment (SMU)
MC0086 Internal Assignment (SMU)
 
Ultraviolet visible (uv vis) spectroscopy Likhith K
Ultraviolet visible (uv vis) spectroscopy Likhith KUltraviolet visible (uv vis) spectroscopy Likhith K
Ultraviolet visible (uv vis) spectroscopy Likhith K
 
Segmentation Based Multilevel Wide Band Compression for SAR Images Using Coif...
Segmentation Based Multilevel Wide Band Compression for SAR Images Using Coif...Segmentation Based Multilevel Wide Band Compression for SAR Images Using Coif...
Segmentation Based Multilevel Wide Band Compression for SAR Images Using Coif...
 
nanoscale xrd
nanoscale xrdnanoscale xrd
nanoscale xrd
 
Boosting CED Using Robust Orientation Estimation
Boosting CED Using Robust Orientation EstimationBoosting CED Using Robust Orientation Estimation
Boosting CED Using Robust Orientation Estimation
 
Basics of remote sensing and GIS.pptx
Basics of remote sensing and GIS.pptxBasics of remote sensing and GIS.pptx
Basics of remote sensing and GIS.pptx
 

Mehr von Xavier Davias

Mehr von Xavier Davias (20)

Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9
 
Fourier transforms & fft algorithm (paul heckbert, 1998) by tantanoid
Fourier transforms & fft algorithm (paul heckbert, 1998) by tantanoidFourier transforms & fft algorithm (paul heckbert, 1998) by tantanoid
Fourier transforms & fft algorithm (paul heckbert, 1998) by tantanoid
 
03.problemas
03.problemas03.problemas
03.problemas
 
Systems interfacesanddeployment
Systems interfacesanddeploymentSystems interfacesanddeployment
Systems interfacesanddeployment
 
Oracle b tree index internals - rebuilding the thruth
Oracle b tree index internals - rebuilding the thruthOracle b tree index internals - rebuilding the thruth
Oracle b tree index internals - rebuilding the thruth
 
Sistemas temaii 5
Sistemas temaii 5Sistemas temaii 5
Sistemas temaii 5
 
El hombre anumerico john allen paulos
El hombre anumerico  john allen paulosEl hombre anumerico  john allen paulos
El hombre anumerico john allen paulos
 
Clase3
Clase3Clase3
Clase3
 
Cap04
Cap04Cap04
Cap04
 
Cap2
Cap2Cap2
Cap2
 
Cap1
Cap1Cap1
Cap1
 
Aic multiproc
Aic multiprocAic multiproc
Aic multiproc
 
Aa
AaAa
Aa
 
08 0300 cs
08 0300 cs08 0300 cs
08 0300 cs
 
Cp223
Cp223Cp223
Cp223
 
Cap04
Cap04Cap04
Cap04
 
Ejercicios tema7
Ejercicios tema7Ejercicios tema7
Ejercicios tema7
 
Ejercicios tema6
Ejercicios tema6Ejercicios tema6
Ejercicios tema6
 
Ejercicios tema5
Ejercicios tema5Ejercicios tema5
Ejercicios tema5
 
Ejercicios tema3
Ejercicios tema3Ejercicios tema3
Ejercicios tema3
 

Kürzlich hochgeladen

Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 

Kürzlich hochgeladen (20)

Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 

Heckbert p s__adaptive_radiosity_textures_for_bidirectional_r

  • 1. ~ ComputerGraphics,Volume24, Number4, August1990 AdaptiveRadiosityTexturesfor BidirectionalRay Tracing Paul S. Heckbert Dept. of Electrical Engineering and Computer Science University of California, Berkeley, CA 94720 Abstract We present a rendering method designed to provide accurate, general simulation of global illumination for re- alistic image synthesis. Separating surface interaction into diffuse plus specular, we compute the specular component on the fly, as in ray tracing, and store the diffuse compo- nent (the radiosity) for later-reuse, similar to a radiosity algorithm. Radiosities are stored in adaptive radiosity tez- lures (fezes) that record the pattern of light and shadow on every diffuse surface in the scene. They adaptively sub- divide themselves to the appropriate level of detail for the picture being made, resolving sharp shadow edges auto- matically. We use a three-pass, bidirectional ray tracing algorithm that traces rays from both the lights and the eye. The "size pass" records visibility iufornmtion on diffuse surfaces; the "light pass" progressivelytraces rays from lights and bright surfaces to deposit photons on diffuse surfaces to construct the radiosity textures; and the "eye pass" traces rays from the eye, collecting light from diffuse surfaces to make a picture. CtL Categories: 1.3.3 [Computer Graphicsl: Picture/Image Generation- display algorithms; 1.3.7 [Computer Graphics]: Three-Dimensional Graphics and ReMism - visible line~surface algorithms. General Terms: algorithms. Additional Key Words and Phrases: global illumination, den- sity estimation, texture mapping, quadtree, adaptive subdivision, sampling. 1 Introduction The presentation is divided into four sections. We first discuss previous work on the global illumination problem. Then we out- line our bidirectional ray tracing approach in an intuitive way. Next we describe our implementation and some early results. We conclude with a summary of the method and of our experiences to date. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. 2 The Global Illumination Problem The primary goal of realistic image synthesis is the develop- ment of methods for modeling and realistically rendering three- dimensional scenes. One of the most chMlenging tasks of realistic image synthesis is the accurate and efficient simulation of global illumination effects: the illumination of surfaces in a scene by other surfaces. Early rendering programs treated the visibility (hidden surface) and shading tasks independently, employing a local illumination model which assumed that the shading of each surface is independent of the shading of every other surface. Lo- cal illumination typically assumes that light comes from a finite set of point light sources only. Global illumination models, on the other hand~ recognize that the visibility and shading are interre- lated: the shade of a sm'face point is determined by the shades of all of the surfaces visible fl'om that point. The intensity of light traveling in a given outgoing direction o~t from a surface point is the integral of the incident inten- sity times the bidirectional distribution function (BDF) over all possible incoming directions in: intensity(oWl) = fphere intensity(i~) BDF(in, o~t) d(in) The bidirectional distribution function is the fraction of energy reflected or transmitted from the incoming direction in = (¢i, Oi) to the outgoing direction out = (¢o, 0o); it is the sum of the bidirectional reflectance distribution function (BRDF) and the bidirectional transmittance distribution function (BTDF). See [Hall89] for a more detailed discussion of the physics of illumina- tion. We will characterize previous global illumination algorithms by the approximations they make to the above integral. Because of the superposition properties of electromagnetic ra- diatlon, we can segregate surface reflectance into two types: dif- fuse and specular. We define diffuse interaction (both reflection and transmission) to be the portion of interaction that scatters fight equally in all directions, and specular interaction to be the remaining portion. BDF = BDFdilf + BDF~pee. For many ma- terials, specular interaction scatters light in only a small cone of directions. When this cone includes just a finite number of direc- tions, each a cone with solid angle zero, we call the interaction ideal specular, otherwise, when the cone(s) have a positive finite angle, we call it rough specular. Two examples of ideal specular surfaces are: (1) a perfect mirror that reflects in one direction, and (2) a perfect transmitter that refracts in one direction and reflects in another. An ideal specular surface with micro-bumps behaves statistically like a rough specular surface. Oar three classes of interaction are diagrammed in figure 1. ©1990 ACM-O-89791-344-2/90/O0810145 $00.75 145
  • 2. O SIGGRAPH '90, Dallas, August 6-10, 1990 diffuse roughspecular ideal specular Figure 1: Three classes of reflectance: diffuse, rough specular, and ideal specular; showing a polar plot of the reflectance coeffi- cient for fixed incoming direction and varying outgoing direction. Transmittance is similar. A diffuse surface appears equally bright from all viewing di- rections, but a specular surface's brightness varies with viewing direction, so we say that diffuse interaction is view-independent while specular interaction is view-dependent. The simplest ma- terials have a position-invariant, isotropic BDF consisting of a linear combination of diffuse and ideal specular interaction, but a fully-general BDF can simulate textured, anisotropic, diffuse and rough specular surfaces. 2.1 Ray Tracing vs. l:tadiosity The two most popular algorithms for global illumination are ray tracing and radiosity. Ray tracing is both a visibility algorithm and a shading algorithm~ but radiosity is just a shading algo- rithm. 2.1.1 Ray Tracing Classic ray tracing generates a picture by tracing rays from the eye into the scene, reeursively exploring specularly reflected and transmitted directions, and tracing rays towaxd point light sources to simulate shadowing [Whitted80]. It assumes that the BDF contains no rough specular, and that the incident light relevant to the diffuse computation is a sum of delta functions in the di- rection of each light source. This latter assumption implies a local illumination model for diffuse. A more realistic illumination model includes rough specular BDF's and computes diffuse interaction globally. Exact simu- lation of these effects requires the integration of incident light over cones of finite solid angle. Ray tracing can be generalized to approximate such computations using distribution ray trac- ing [Cook84], ILee85], [Dippe85], [Cook86], [Kajiya86]. (We pro- pose the name "distribution ray tracing" as an alternative to the current name, "distributed ray tracing", which is confusing because of its parallel hardware connotations.) In distribution ray tracing, rays are distributed, either uniformly or stochasti- cally, throughout any distributions needing integration. Many rays must be traced to accurately integrate the broad reflectance distributions of rough specular and diffuse surfaces: often hun- dreds or thousands per surface intersection. 2.1.2 Radiosity The term radiosity is used in two senses. First, radiosity is a physical quantity equal to power per unit area, which determines the intensity of light diffusely reflected by a surface, and second, radiosity is a shading algorithm. The meaning of each use should be clear by context. The Classic radiosity algorithm subdivides each surface into polygons and determines the fraction of energy diffusely radi- ated from each polygon to every other polygon: the pair's form ]actor. From the form factors, a large system of equations is constructed whose solution is the radiosities of each polygon [SiegelS1], [Gora184], [Nishita85]. This system can be solved ei- ther with Gauss-Seidel iteration or, most conveniently, with pro- gressive techniques that compute the matrix and solve the sys- tem a piece at a time [Cohen88]. Form factors can be determined analytically for simple geometries [Siege181], [Baum89], but for complex geometries a numerical approach employing a visibility algorithm is necessary. The most popular visibility method for this purpose is a hemicube computed using a z-buffer [Cohen85], but ray tracing has recently been promoted as an alternative [Wallace89], [Sillion89]. Classic radiosity assumes an entirely dif- fuse reflectance, so it does not simulate specular interaction at all. The output of the radiosity algorithm is one radiosity value per polygon. Since diffuse interaction is by definition view-inde- pendent, these radiosities are valid from any viewpoint. The radiosity computation must be followed by a visibility algorithm to generate a picture. The radiosity method can be generalized to simulate specu- lar interaction by storing not just a single radiosity value with each polygon, but a two-dimensional array [Imme186], [Shao88], [Buckalew89]. The resulting algorithm, which we call directional radiosity, simulates both diffuse and specular interaction globally, but the memory requirements are so excessive as to be impracti- cal. 2.1.3 Hybrid Methods Ray tracing is best at speculax and radiosity is best at diffuse, and the above attempts to generalize ray tracing to diffuse and to generalize radiosity to specular stretch the algorithms beyond the reflectance realms for which each is best suited, making them less accurate and less efficient. Another class of algorithms is formed by hybridizing the methods, using a two-pass algorithm that applies a radiosity pass followed by the ray tracing pass. This is the approach used by [Wallace87] and [Sillion89]. The first pass of Wallace's algorithm consists of classic radios- ity extended to include diffuse-to-diffuse interactions that bounce off planar mirrors. He follows this with a classic ray tracing pass (implemented using a z-buffer). Unfortunately, the method is limited to planar surfaces (because of the polygonization involved in the radiosity algorithm) and to perfect planar mirrors. Sillion's algorithm is llke Wallace's but it computes its form factors using ray tracing instead of hemicubes. This eliminates the restriction to planar mirrors. The method still suffers from the polygonization inherent in the radiosity step, however. 2.2 Sampling Radlositles Many of the sampling problems of ray tracing have been solved by recent adaptive algorithms [WhittedS0], [Cook86], [Lee85], [Dippe85], [Mitchel187], [Painter89], particularly for the simula- tion of specular interaction. The sampling problems of the radios- ity algorithm are less well studied, probably because its sampling process is less explicit than that of ray tracing. 146
  • 3. ~' ComputerGraphics,Volume24, Number4, August1990 We examine four data structures for storing radiosities: light images, polygons, samples in 3-D, and textures. Several different algorithms have been used to generate these data structures: ra- diosities have been generated analytically, with hemicubes at the receiver (gathering), with hemieubes at the sender (shooting), and by tracing rays from the eye or from the light. 2.2.1 Light Images The simplest data structure, the light image, simulates only shad- ows, the first order effects of diffuse interreflection. Light images are pictures of the scene from the point of view of each light ~ource. They are most often generated using the z-buffer shadow algorithm, which saves the z-buffers of these light images and uses them while rendering from the point of view of the eye to test if visible points are in shadow [Wilhams78], [Reeves87]. This shadow algorithm is more flexible than most, since it is not lim- ited to polygons, but it is difficult to tune. Choosing the resolu- tion for the light images is critical, since aliasing of shadow edges results if the light images are too. coarse. 2.2.2 Polygonlzed l~adioslty The Atherton-Weiler algorithm is another method for comput- ing shadows that renders from the point of view of the lights [Atherton78]. It uses the images rendered from the lights to gen- erate "surface detail polygons", modifying the scene description by splitting all polygons into shadowed and unshadowed portions that are shaded appropriately in the final rendering from the eye. Surface detail polygons are an example of polygonized radiosity, the storage of radiosity as polygons. The shadows computed by the Atherton-Weiler algorithm are a first-approximation to the interrefiection simulated by radiosity algorithms. The most common method for computing polygonized radios- ity is, of course, the classic radiosity algorithm. A major prob- lem with this Mgorithm is that surfaces are polygonized before radiosities are computed. Difficulties result if this polygonization is either too coarse or too fine. Sharp shadow edges caused by small light sources can be un- dersampled if the polygonization is too coarse, resulting in blur- ring or abasing of the radiosities. Cohen developed the "sub- structuring" technique in response to this problem [Cohen86]. It makes an initial pass computing radiosities at low resolution, then splits polygons that appear to be in high-variance regions and recomputes radiosities. Substructuring helps, but it is not fully automatic, as the subdivision stopping criterion appears to be a polygon size selected in some ad hoc manner. The limi- tations of the method are further demonstrated by the absence to date of radiosity pictures in published work exhibiting sharp shadow edges. The other extreme of radiosity problems is oversampling of radiosities due to polygonization that is too fine for the hemicube. The resulting quantization can be cured by adaptive subdivision of the hemicube or of the light rays [Wallace89], [Baum89]. We conclude that polygonization criteria remain a difficult problem for the radiosity method. It is interesting to note the similaxities between radiosity al- gorithms and the Atherton-Weiler algorithm. Conceptually, the original radiosity method gathers light to each polygon by ren- dering the scene from the point of view of each receiver, but the progressive radiosity algorithm shoots light by rendering the scene from the point of view of each sender (a light source). A progressive radiosity algorithm using a hemicube is thus much like repeated application of the Atherton-Weiler shadow algo- rithm. 2.2.3 Samples in 3-D l~adiosities can be computed using brute force distribution ray tracing [Kajiya86], but the method is inefficient because it sam- ples the slowly-varying radiosity function densely. To exploit the coherence of radiosity values, Ward sampled the diffuse compo- nent sparsely, and saved this information in a world space octree [Ward88]. Because his algorithm shot rays from the eye toward the lights, and not vice-versa, it had difficulty detecting light sources reflected by specular surfaces. 2.2.4 Radiosity Texture The fourth data structure for radiosities is the radiosity texture. Instead of polygonizing each surface and storing one radiosity value per polygon, radiosity samples are stored in a texture on every diffuse surface in the scene [Arvo86]. Arvo called his tex- tures "illumination maps". He computed them by tracing rays from the light sources. 2.3 Light Ray Tracing Rays traced from the eye we call eye rays and rays traced from the lights we call light rays. We avoid the terms "forward ray tracing" and "backward ray tracing" because they are ambiguous: some people consider photon motion ~'forward', while others consider Whitted's rays "forward". Light ray tracing was originally proposed by Appel [Appe168], who "stored" his radiosities on paper with a plotter. Light ray tracing was proposed for beams in previous work with Hanra- han [Heckbert84] where we stored radiosities as surface detail polygons like Atherton-Weiler. This approach was modified by Strauss, who deposited light directly in screen pixels when a dif- fuse surface was hit by a beam, rather than store the radiosities with the surface [Strauss88]. Watt has recently implemented light beam tracing to simulate refraction at water surfaces [Wattg0]. Arvo used light ray tracing to compute his radiosity textures [Arvo86]. Light ray tracing is often discussed but has been little used, to date. 3 Bidirectional Ray Tracing Using Adap- tive Radiosity Textures In quest of realistic image synthesis, we seek efficient algorithms for simulating global illumination that can accommodate curved surfaces, complex scenes, and arbitrary surface characteristics (BDF's), and generate pictures perceptually indistinguishable from reality. These goals are not realizable at present, but we can make progress if we relax our requirements. 147
  • 4. O SIGGRAPH '90, Dallas, August 6-10, 1990 We make the following assumptions: (1) Only surfaces are relevant. The scattering or absorp- tion of volumes can be ignored. (2) Curved surfaces are important. The world is not polygonal. (3) Shadows, penumbras, texture, diffuse interreflection, specular reflection, and refraction are all important. (4) We can ignore the phenomena of fluorescence (light wavelength crosstalk), polarization, and diffraction. (5) Surface properties can be expressed as a linear com- bination of diffuse and specular reflectance and trans- mission functions: BDF =kd~BRDFdity + ksrB1~DF~pec+ kdtBTDFdi// + kstBTDFspec The coet-ficients klj are not assumed constant. (6) Specular surfaces are not rough; all specular interac- tion is ideal. 3.1 Approach Our approach is a hybrid of radiosity and ray tracing ideas. Rather than patch together these two Mgorithms, however, we seek a simple, coherent, hybrid algorithm. To provide the great- est generality of shape primitives and optical effects, we choose ray tracing as the visibility algorithm. Because ray tracing is weak at simulating global diffuse interaction, the principal task before us is therefore to determine an etficient method for calcu- lating radiosities using ray tracing. To exploit the view-independence and coherence of radiosity, we store radioslty with each diffuse surface, using an adaptive radiosity texture, or rex. A rex records the pattern of light and shadow and color bleeding on a surface. We store radiosity as a texture, rather than as a polygonization, in order to decouple the data structures for geometry and shading, and to facilitate adaptive subdivision of radieslty information; and we store it with the surface, ratlier than in a global octree [Ward88], or in a light image, based on the intuition that radiosities are intrinsic properties of a surface. We expect that the memory required for rexes will not be excessive, since dense sampling of radiosity will be necessary only where it has a high gradient, such as at shadow edges. Next we need a general technique for computing the rexes. The paths by which photons travel through a scene can motivate our algorithm (figure 2). We can characterize each interaction along a photon's path from light (L) to eye (E) as either diffuse (D) or specular (S). Each path can therefore be labeled with some string in the set given by the regular expression L(D]S)*E. Classic ray tracing simulates only LDS*E [LS*E paths, while classic radioslty simulates only LD*E. Eye ray tracing has dif- ficulty finding paths such as LS+DE because it doesn't know where to look for specularly reflected light when integrating the hemisphere. Such paths are easily simulated by light ray tracing, however. We digress for a moment to discuss units. Light rays carry power (energy/time) and eye rays carry intensity (energy / (time * projected area * solid angle)). Each light ray carries a fraction Figure 2: Selected photon paths from light (L) to eye (E) by way of diffuse (D) and specular (S) surfaces. For simplicity, the surfaces shown are entirely diffuse or entirely specular; normally each surface would be a mixture. D ° / Figure 3: Left: first level light ray tracing propagates photons from the light to the first diffuse surface on a path (e.g. LD and LSD); higher levels of progressive light ray tracing simulate indirect diffuse interaction (e.g. LDD). Right: eye ray trac- ing shoots rays from the eye, extracting radiosities from diffuse surfaces (e.g. it traces DE and DSE in reverse). of the total power emitted by the light. We can simulate paths of the form LS*D by shooting light rays (photons) into the scene, depositing the photon's power into the rex of the first diffuse surface encountered (figure 3, left). Such a light ray tracing pass will compute a first approximation to the radiosities. This can be followed by an eye ray tracing pass in which we trace DS*E paths in a backward direction, extract- ing intensity from the rex of the first diffuse surface encountered (figure 3, right). The net effect of these two passes will be the simulation of all LS*DS*E paths. The rays of the two passes "meet in the middle" to exchange information. To simulate dif- fuse interreflection, we shoot progressively from bright surfaces [Cohen88] during the light ray tracing pass, thereby accounting for all paths: L(S*D)*S*E = L(D[S)*E. We call these two passes the light pass and eye pass. Such bidirectional ray tracing using adaptive radiosity textures can thus simulate all photon paths, in principle. Our bidirectional ray tracing algorithm is thus a hybrid. From radiosity we borrowed the idea of saving and reusing the diffuse component, whicil is view-independent, and from ray tracing we borrowed the idea of discarding and recomputing the specular component, which is view-dependent. 148
  • 5. ~ ComputerGraphics,Volume24, Number4, August1990 3.2 All Sampling is Adaptive There are three separate multidimensional sampling processes involved in this approach: sampling of directions from the light, sampling of directions from the eye (screen sampling), and sam- pling of radiosity on each diffuse surface. 3.3 Adaptive Radiosity Textures (Rexes) Rexes are textures indexed by surface parameters u and v, as in standard texture mapping [Blinn76], [Heckbert86]. We associate a rex with every diffuse or partially-diffuse surface. By using a texture and retaining the initial geometry, instead of polygo- nizing, we avoid the polygonized silhouettes of curved surfaces common in radiosity pictures. In the bidirectional ray tracing algorithm, the rexes collect power from incident photons during the light pass, and this in- formation is used to estimate the true radiosity function during the eye pass (figure 4). Our rexes thus serve much like den- sity estimators that estimate the probability density of a random variable from a set of samples of that random variable [Silver- man86]. Density can be estimated using either histogram meth- ods, which subdivide the domain into buckets; or kernel estima- tors, which store every sample and reconstrnct the density as a sum of weighted kernels (similar to a spline). The resolution of a rex should be related to its screen size. Ideally, we want to resolve shadow edges sharply in the final picture, which means that rexes should store details as fine as the preimage of a screen pixel. On the other hand, resolution of details smaller than this is unnecessary, since subpixel detail is beyond the Nyquist limit of screen sampling. Cohen's sub- structuring technique is adaptive, but its criteria appear to be independent of screen space, so it cannot adapt and optimize the radiosity samples for a particular view. To provide the light pass with information about rex resolu- tion we precede the light pass with a size pass in which we trace rays from the eye, labeling each diffuse surface with the minimum rex feature size. 3.8.1 Adaptive Light Sampling Adaptive sampling of light rays is desirable for seYeral reasons. Sharp resolution of shadow edges requires rays only where the light source sees a silhouette. Also, it is only necessary to trace light paths that hit surfaces visible (directly or indirectly) to the eye. Thirdly, omnidirectional lights disperse photons in a sphere of directions, but when such lights are far from the visible scene, as is the sun, the light ray directions that affect the final picture subtend a small solid angle. Finally, stratified sampling should be used for directional lights to effect their goniometric distribution. Thus, to avoid tracing irrelevant rays, we sample the sphere of directions adaptively [Sillion89], [Wallace89]. For area light sources, we use stratified sampling to distribute the ray origins across the surface with a density proportional to the local radiosity. Stratified sampling should also be used to shoot more light rays near the normal, since it is intensity that is constant with outgoing angle, while power is proportional to the cosine of the angle with the normal. If the surface has both a standard texture and a rex mapped onto it, then the rex should be modulated by this standard texture before shooting. With Figure 4: Photons incident on a rex (shown as spikes with height proportional to power) are samples from the true, piecewise- continuous radiosity function (the curve). We try to estimate the function from the samples. area light sources, the distribution to be integrated is thus four- dimensional: two dimensions for surface parameters u and v, and two dimensions for ray direction. For best results, a 4-D data structure such as a k-d tree should be used to record and adapt the set of light rays used. 3.3.2 Adaptive Eye Sampling Eye rays (screen pixels) are sampled adaptively as well. Tech- niques for adaptive screen sampling have been covered well by others [Warnock69], [Whitted80], [Mitchell87], [Painter89]. 3.4 Three Pass Algorithm Our bidirectional ray tracing algorithm thus has three passes. We discuss these passes here in a general way; the details of a particular implementation are discussed in §4. The passes are: size pass - record screen size information in each rex light pass - progressively trace rays from lights and bright surfaces, depositing photons on diffuse surfaces to construct radiosity textures eye pass - trace rays from eye, extracting light from dif- fuse surfaces to make a picture Specular reflection and transmission bounces are followed on all three passes. Distribution ray tracing can be used in all passes to simulate the broad distributions of rough specular reflections and other effects. 3.4.1 Size Pass As previously described, the size pass traces rays from the eye, recording information about the mapping between surface pa- rameter space and screen space. This information is used by each rex during the light pass to terminate its adaptive subdivision. 3.4.2 Light Pass Indirect diffuse interaction is simulated during the llght pass by regarding bright diffuse surfaces as light sources, and shooting light rays from them~ as in progressive radiosity. The rex records the shot and unshot power. 149
  • 6. @SIGGRAPH '90, Dallas, August 6-10, 1990 The adaptive algorithm for light ray tracing must ensure that: (a) a minimum level of light sampling is achieved; (b) more rays are devoted near silhouettes, shadows, and high curvature areas; (c) sharp radiosity gradients are resolved to screen pixel size; and (d) light rays and rexes are subdivided cooperatively. 3.4.3 Eye Pass The eye pass is like a standard ray tracing algorithm except that the diffuse intensity is extracted out of the text instead of from a shadow ray. The radiosity of a surface patch is its power divided by its world-space surface area. After the three passes are run, one could move the eye point and re-run the eye pass to generate other views of the seen% but the results would be inferior to those made by recomputing the rexes adapted to the new viewpoint. 3.4.4 Observations Because light rays are concentrated on visible portions of the scene and radlosity is resolved adaptive to each surface~s projec- tion in screen space, the radiosity calculation performed in the light pass is view-dependent. But this is as it should be: al- though the exact radiosity values are view-independent, the ra- diosity sample locations needed to make a picture are not. When computing moving-camera animation~ one could prime the rexes by running the size pass for selected key frames to achieve more view-independent sampling. 4 Implementation and Results The current implementation realizes many, but not all, of the ideas proposed here. It performs bidirectional ray tracing using adaptive sampling for light~ eyed and rex. It has no size pass e just a light pass and an eye pass. The program can render scenes consisting of CSG combinations of spheres and polyhedra. Spec- ular interaction is assumed ideal, and diffuse transmission is not simulated. The light pass shoots photons from omnidirectional point light sources, and does not implement progressive radios- ity. The implementation thus simulates only iS*DS*E paths at present. We trace ray trees, not just ray paths [Kajiya86]. 4.0.5 Data Structures Quadtrees were used for each of the 2-D sampling processes [Samet90]: one for the outgoing directions of each light, one for the parameter space of each radiosity texture, and one for the eye. The light and eye quadtrees are quite similar; their records are shown below in pseudocode. Each node contains pointers to its child nodes (if not a leaf) and to its parent node. Light space is parameterized by (r,s), where r is latitude and s is longitude. and eye space (screen space) is parameterized by (x,y). Each node represents a square region of the parameter space whose corner is given by (to, so) or (x0, y0) and whose size is propor- tional to 2 -level. low Figure 5: I~ex quadtree on a surface. Adaptive fez subdivision tries to subdivide more finely near a shadow edge. The light quadtree sends one light ray per node at a location uniformly distributed over the square. Also stored in each light quadtree node is the ID of the surface hit by the light ray, if any, and the surface parameters (u, v) at the intersection point. This information is used to determine the distance in parameter space between rex hits. Eye quadtrees are simpler. Each node has pointers to the intensities at its corners. These are shared with neighbors and children. Eye ray tracing is currently uniform, not stochastic. A rex quadtree node represents a square re,on of (u, v) pa- rameter space on a diffuse surface (figure 5). Leaves in the rex quadtree act as histogram buckets~ accumulating the number of photons and their power. Rex nodes also record the world space surface area of their surface patch. lisht_node: type = record leaf: boolean; mark: boolean; level: int; parent: "lisht_node; nw, ne, se, ss: "light_node; tO, sO: real; r~ e: real; surfnc: int; u, v: real; end; eye_node: type = record leaf: boolean; mark: boolean; level: int; parent: "eye_node; nw, ne. se, sw: "eye_node; xO. yO: real; inw. ine. ise. is,: "color; end; {LIGHT QUADTREE NODE> {is this a leaf?> {should node be split?} {level in tree (rook=O)} {parent node. if any} {four child/sn, if not a leaf} {params of corner of square} {dir. params o2 ray (lat.lon)} {id of surface hit. if any} {surf params of surface hit} {EYE QUADTREE NODE} {is this a leaf?} {should node be split?} {level in tree (root=O)} {parent node. if any} {four children, if not a leaf} {coords of corner of square} {intensity samples at corners} rex_node: type = record leaf: boolean; mark: boolean; level: int; parent: "rex_node; nw, ne, se, sw: "rex_node; nO. vO: real; area: real; count: int; power: color; end; {REX QUADTREENODE} {is this a leaf?} {should node be split?} {level in tree (root=O)} {parent node. if any} {four children, if not a leaf} {surf params of square corner} {surface area of this bucket} {~photon~ in bucket, if leaf} {accumulated power of bucket} 150
  • 7. ~ ComputerGraphics,Volume24, Number4, August1990 1/16 1/16... O0 i! 0 • • 0 o Figure 6: Light quadtree shown schematically (left) and in light direction parameter space (right). When a light quadtree node is split, its power is redistributed to its four sub-nodes, which each send a ray in a direction (r,s) jittered ~oithin their parameter square. The fractional power of each light ray is shown next to the leaf node that sends it. The current implementation uses the following algorithm. 4.1 Light Pass First, rex quaxitrees are initialized to a chosen starting level (level 3, say, for 8x8 subdivision), and the counts and powers of all leaves are zeroed. For each light, light ray tracing proceeds in breadth first order within the light quadtree, at level 0 tracing a single ray carrying the total power of the light, at level 1 tracing up to 4 rays, at level 2 tracing up to 16 rays, etc (figure 6). At each level, we adaptively subdivide both the light quadtree and the rex quadtrees. Chang- ing the rex quadtrees in the midst of light ray shooting raises the histogram redistribution problem, however: if a histogram bucket is split during collection, it is necessary to redistribute the parent's mass among the children. There is no way to do this reliably without a priori knowledge, so we clear the rex at the beginning of each level and reshoot. Processing a given level k of light rays involves three steps: (1) rex subdivision to split rex buckets containing a high density of photons, (2) light marking to mark light quadtree nodes where more light rays should be sent, and (3) light subdivision to split marked light nodes. Rex subdivision consists of a sweep through every rex quadtree in the scene, splitting all rex buckets whose photon count exceeds a chosen limit. All counts and powers are zeroed at the end of this sweep. Light marking traverses the light quadtree, marking all level k nodes that meet the subdivision criteria listed below. (1) Always subdivide until a minimum level is reached. (2) Never subdivide beyond a maximum level (if a size pass were implemented, it would determine this max- imum level locally). Otherwise, look at the light quadtree neighbors above, below, left, and right, and subdivide if the following is true: (3) The ray hit a diffuse surface, and one of the four neighbors of the rex node hit a different surface or was beyond a threshold distance in (u, v) parameter space from the center ray's. To help prevent small feature neglect, we also mark for subdi- vision all level k - 1 leaves that neighbor on level k leaves that are m~ked for subdivision. This last rule guarantees a restricted quadtree [Von Herzen87] where each leaf node's neighbors are at a level within plus or minus one of the center node's. Light subdivision traverses the light quadtree splitting the marked nodes. Subdividing a node splits a ray of power p into four rays of power p/4 (figure 6). When a light node is cre- ated (during initialization or subdivision) we select a point at random within its square (r, s) domain to achieve jittered sam- pling [Cook86] and trace a ray in that direction. Marked nodes thus shoot four new rays, while unmarked nodes re-shoot their rays. During light ray tracing we follow specular bounces, split- ting the ray tree and subdividing the power according to the re- flectance/transmittance coefficients kij, and deposit their power on any diffuse surface that are hit. When a diffuse surface is hit, we determine (u,v) of the intersection point, and descend the surface's rex quadtree to find the rex node containing that point. The power of that node is incremented by the power of the ray times the cosine of the incident angle. 4.2 Eye Pass The eye pass is a fairly standard adaptive supersampling ray tracing algorithm: nodes are split when the intensity difference between the four corners exceeds some threshold. To generate a picture, nodes larger than a pixel perform bilinear interpolation to fill in the pixels they cover, while nodes smaller than a pixel are averaged together to compute a pixel. The picture is stored in floating point format initially, then scaled and clamped to the range [0,255] in each channel. 4.3 Results Figures 7-12 were generated with this program. Figures 7, 8, and 9 show the importance of coordinating the light ray sampling pro- cess with the rex resolution. Sending too few light rays results in a noisy radiosity estimate from the rex, and too coarse a rex results in blocky appearance. When the rex buckets are approxi- mately screen pixel size and the light ray density deposits several photons per bucket (at least 10, s~y), the results are satisfac- tory. We estimate the radiosity using a function that is constant within each bucket; this simple estimator accounts for the blocki- ness of the images. If bilinear interpolation were used, as in most radiosity algorithms, we could trade off blockiness for blurriness. Figure 10 shows adaptive subdivision of a rex quadtree, split- ting more densely near shadow edges (the current splitting cri- teria cause unnecessary splitting near the border of the square). Its rex quadtree is shown in figure 11. Figure 12 shows off some of the effects that are simulated by this algorithm. 151
  • 8. SIGGRAPH '90, Dallas, August 6-10, 1990 .7~:~"Z :" : • I • ":J'g Lgm":+ .... z2q " .4:! Figure 7: Noisy appearance results when too few light rays are received in each rex bucket (too few light rays or too fine a rex). Scene consists of a diffuse sphere above a diffuse floor both illu- minated by an overhead light source. Figure 8: Blocky or blurry appearance results when rex buckets are much larger than a screen pixel (too coarse a rex). Figure 9: Proper balance of light sampling and rex sampling reduces both noise and blockiness. Figure 10: Rez with adaptation: the rex of the floor is initially a single bucket, but it splits adaptively near the edges of the square and near the shadow edge. Statistics for these images are listed below, including the number of light rays, the percentage of light rays striking an ob- ject, the resolution of the rex, the resolution of the final picture, the number of eye rays, and the CPU time. All images were com- puted on a MIPS R2000 processor. The lens image used about 20 megabytes of memory~ mostly :for the light qu~dtree. Ray trees were traced to a depth of 5. #LRAYS %HIT REX I EYE #ERAYS 87,400 10% 128~ I 256~ 246,000 87,400 10% 82 2562 139,000 822,000 68% 1282 2562 146,000 331,000 20% vbl 2562 139,000 1,080,000 61% 256~ 5122 797,000 TIME I FIG1.0 min. fig. 7 0.6 rain. fig. 8 3.5 rain. fig. 9 1.3 rain. fig. 10 6.4 rain. fig. 12 152
  • 9. ~ ComputerGraphics,Volume24, Number4, August1990 Figure 11: Rex quadtree in (u, v) space of previous figure's floor. Each leaf node's square is colored randomly. Note the subdivision near the shadow edge and the quadtree restriction. 5 Conclusions The bidirectional ray tracing algorithm outlined here appears to be an accurate, general approach for global illumination of scenes consisting of diffuse and pure specular surfaces. It is accurate be- cause it can account for all possible light paths; and it is general because it supports both the radiosity and ray tracing realms: shapes bosh planar and curved materials both diffuse and spec- ular, and lights both large and small. Distribution ray tracing can be used to simulate effects not directly supported by the algorithm. Adaptive radiosity textures (rexes) are a new data struc- ture that have several advantages over previous radiosity storage schemes. They can adaptively subdivide themselves to resolve sharp shadow edges to screen pixel size, thereby eliminating vis- ible artifacts of radiosity sampling. Their subdivision can be automatic, requiring no ad hoc user-selected parameters. The current implementation is young, however, and many problems remain. A terse fist follows: Good adaptive sampling of area light sources appears to require a 4-D data structure. Bet- ter methods are needed to determine the number of light rays. The redistribution problems of histograms caused us to send each light ray multiple times. To avoid this problem we could store all (or selected) photon locations using kernel estimators [Sil- verman86]. Excessive memory is currently devoted to the light quadtree, since one node is stored per light ray. Perhaps the quadtree could be subdivided in more-or-less scanline order, and the memory recycled (quadtree restriction appears to complicate this, however). Adaptive subdivision algorithms that compare the ray trees of neighboring rays do not mix easily with path tracing and distribution ray tracing, because the latter obscure coherence. Last but not least, the interdependence of light ray subdivision and rex subdivision is precarious. Figure 12: Light focusing and reflection from a lens and chrome ball. Scene is a glass lens formed by CSG intersection of two spheres, a chrome ball, and a diffuse floor~ illuminated by a light source off screen to the right. Note focusing of light through lens onto floor at center (an LSSD path), reflection of refracted light off ball onto floor (an LSS SD path involving both transmission and reflection), the reflection of light off lens onto floor forming a parabolic arc (an LSD path), and the reflection of the lens in the ball (a LSSDSSE path, in full). In spite of these challenges, we are hopeful. The approach of bidirectional ray tracing using adaptive radiosity textures ap- pears to contain the mechanisms needed to simulate global illu- mination in a general way. 6 Acknowledgements Thanks to Greg Ward for discussions about the global illumina- tion problem, to Steve Omohundro for pointing me to the density estimation literature, to Ken Turkowski and Apple Computer for financial support, and to NSF grant CDA-8722788 for "Mam- moth" time. 7 References [Appe168] Arthur Appel, "Some Techniques for Shading Machine Render- ings of Solids", AFIPS 1968 Spring Joint Computer Con].,col. 32, 1968, pp. 37-45. [Arvo86] James Afro, "Backward Ray Tracing", SIGGRAPH '86Develop- ments in Ray Tracingseminar notes,Aug. 1986. [Atherton?8] Peter R. Atherton, Kevin Weiler, Donald P. Greenberg, "Poly- gon Shadow Generation°, Computer Graphics(SIGGRAPH '78 Pro- ceedings), vol. 12, no. 3, Aug. 1978~pp. 275-281. [Baurn89] Daniel R. Baum, Holly E. Rushmeier, James M. Winget, "Im- proving lqadiosity Solutions Through the Use of Analytically Deter- mined Form Factors", Computer Graphics(SIGGRAPH '89 Proceed- ings), col. 23, no. 3, July 1989, pp. 325-334. [BlJnn76] James F. Blinn, Martin E. Newell, "Texture and Reflection in Computer Generated Images", CACM, col. 19, no. 10, Oct. 1976, pp. 842-547. 153
  • 10. @SIGGRAPH '90, Dallas, August 6-10, 1990 [Buckalew89] Chris Buckalew, Donald FusseU, "Illumination Networks: Fast Realistic Rendering with General Reflectance Functions", Computer Graphics (SIGGRAPH '89 Proceedings), vol. 23, no. 3, July 1989, pp. 89-98. [Cohengg] Michael F. Cohen, Donald P. Greenberg, "The Hemi-Cube: A Radiosity Solution for Complex Environments", Computer Graphics (SIGGRAPH '85 Proceedings), vol. 19, no. 3, July 1985, pp. 31-40. [Cohen86] Michael F. Cohen, Donald P. Greenberg, David S. ]rnmel, Philip J. Brock, "An Efficient Radiosity Approach for Realistic Image Syn- thesis", [EEE Computer Graphics and Applications, Mar. 1986, pp. 26-35. [CohenS8] Michael F. Cohen, Shenehang Eric Chen, John R. Wallace, Don- ald P. Greenberg, "A Progressive R.ellnement Approach to Fast R.~.- diosity Image Generation", Computer Graphics(SIGGRAPH '88 Pro- eeedings), vol. 22, no. 4, Aug. 1988, pp. 75-84. [Cook84] Robert L. Cook, Thomas Porter, Loren Carpenter, "Distributed Ray Tracing", Computer Graphics(SIGGRAPH '84 Proceedings), vol. 18, no. 3, July 1984, pp. 137-145. [Cook86] P~obert L. Cook, "Stocha~stie Sampling in Computer Graphics", ACM Transactions on Graphics, vol. 5, no. 1, Jan. 1986, pp. 51-72. [Dippe851 Mark A. Z. Dippe, Erling Henry Wold, "Antiallaslng Through Stochastic Sampling", Computer Graphics(SIGGRAPH '85 Proceed- ings), vol. 19, no. 3, July 1985, pp. 69-78. [Gora184] Cindy M. Goral, Kenneth E. Torrance, Donald P. Greenberg, Bennett Battaile, "Modeling the Interaction of Light Between Diffuse Surfaces", Computer Graphics(SIGGRAPH '84 Proceedings), vol. 18, no. 3, July 1984, pp. 213-222. [Hallg9] Roy Hall, Rlumination and Color in Computer Generatedlmagery, Springer Verlag, New York, 1989. [I-Iockbert84] Paul S. Heekbert, Pat Hanrahan, "Beam Tracing Polygonal Objects", Computer Graphics (SIGGRAPH '84 Proceedings), vol. 18, no. 3, July 1984, pp. 119-127. [Heckbert86] Paul S. Heckbezt, "Survey of Texture Mapping", 1EEE Com- puter Graphicsand Applications, vol. 6, no. 11, Nov. 1986, pp. 56-67. [ImmelS6~ David S. Immel, Michael F. Cohen, Donald P. Greenherg, "A Radiosity Method for Non-Diffuse Environments", Computer Graphics (SIGGRAPH '86 Proceedings), vol. 20, no. 4, Aug. 1986, pp. 133- 142. [Kajiya88] James T. Kajiya, "The Rendering Equation", Computer Graph- ics (SIGGRAPH '86 Proceedings), vol. 20, no. 4, Aug. 1986, pp. 143-150. [Lee85] Mark E. Lee, 1Lichard A. Redner, Samuel P. Uselton, "Statistically Optimized Sampling for Distributed Ray Tracing", Computer Graph- ics (SIGGRAPH '85 Proceedings), vol. 19, no. 3, July 1985, pp. 61-67. [Mitchell87] Don P. Mitchell, "Generating Antialiased Images at Low Sam- piing Densities", Computer Graphics (SIGGRAPH '87 Proceedings), vol. 21, us. 4, July 1987, pp. 65-72. [INishita85] Tomoyukilqishita, EihachiroNakamae, "Continuous Tone Rep- resentation of 3-D Objects Taking Account ofShadows and lute,reflec- tion", Computer Graphics (SIGGRAPH '85 Proceedings), voh 19, no. 3, July 1985, pp. 23-30. [Painter89] James Painter, Kenneth S]oan, "Antialiased Ray Tracing by Adaptive Progressive Refinement", Computer Graphics(SIGGRAPH '89 Pxoceedings), vol. 23, no. 3, July 1989, pp. 281-288. [Keeves87] William T. Reeves, David H. Salesin, Robert L. Cook, "Ren- dering Antialiascd Shadows with Depth Maps", Computer Graphics (SIGGRAPH '87 Proceedings), vol. 21, no. 4, July 1987, pp. 283-291. [Samet90] Hanan Samet, The Design and Analysis of Spatial Data Struc- tures, Reading, MA, Addison-Wesley, 1990. [Shaog8] Min-Zhi ShaD, Qun-Slieng Peng, You-Dong Liang, "A New Ra- diosity Approach by Procedural Refinements for Realistic Image Syn- thesis", Computer Graphics (SIGGRAPH '88 Proceedings), vol. 22, us. 4, Aug. 1988, pp. 93-101. [Siegel81] Robert Siegel, John R. Howell, Thermal Radiation Heat Trans- fer, Hemisphere Publishing Corp., Washington, DC, 1981. [SiUion89] Francois Sillion, Claude Puech, ~A General Two-Pass Method Integrating Specular and Diffuse ReflectionS, Computer Graphics(SIC- GRAPH '89 Proceedings), vol. 23, no. 3~July 1989~ pp. 335-344. [Silvermang6] B.W. Silverman, Density Estimation for Statistics and Data Analysis, Chapman and Hall, London, 1986. [Strnuasg8] Paul S. Strauss, BAGS: The Brotvn Animation GenerationSys- tern, PhD thesis, Tech. Report CS-88-2, Dept. of CS, Brown U, May 1988. [Von Herren87] Brian Von Herren, Alan H. Burr, "Accurate Triangula- tions of Deformed, Intersecting Surfaces", Computer Graphics (SIC- GRAPH '87 Proceedings), vol. 21, no. 4, July 1987, pp. 103-110. [WallaceS7] John R. Wallace, Michael F. Cohen, Donald P. Greenber8~ "A Two-Pass Solution to the Rendering Equation: A Synthesis of Ray Tracing and Radiosity Methods", Computer Graphics (SIGGRAPH '87 Proceedings), vol. 21, no. 4, July 1987, pp. 311-320. [Wallace89] John R. Wallace, Kells A. Elmquist, Eric A. Haines, "A Ray Tracing Algorithm for Progressive Radiosity", Computer Graphics (SIGGRAPH '89 Proceedings), vol. 23, no. 3, July 1989, pp. 315-324. [Ward88] Gregory J. Ward, Francis M. Rubinstein, Robert D. Clear, "A Ray Tracing Solution for Diffuse Interrefleetion", Computer Graphics (SIGGRAPH '88 Proceedings), vol. 22, no. 4, Aug. 1988, pp. 85-92. [Warnock69] John E. Warnoek, A Hidden Surface Algorithm for Computer Generated Halftone Pictures, TR 4-15, CS Dept, U. of Utah, June 1969. [Watt90] Mark Watt, "Light-Ware, interaction using Backward BeamTrae ing', Computer Graphics (SIGGRAPH '90 Proceedings), Aug. 1990. [Whlttedg0] Turner Whirred, "An Improved Illumination Model for Shaded Display"~ CACM, voh 23, no. 6, June 1980, pp. 343-349. [Wllllams78] Lance Williams, "Casting Curved Shadows on Curved Sur- faces", Computer Graphics (SIGGRAPH '78 ProeeedingS)r voL 12, no. 3, Aug. 1978, pp. 270-274. 154