Local and Global Illumination
Local and Global Illumination
1 Introduction
The process of volume rendering maps a 3D scalar field into a 3D field of optical prop-
erties, usually color c and extinction coefficient τ , via so-called transfer functions, and
then approximates its visual appearance by integrating along viewing rays.
Max provided a comprehensive survey of optical models for direct volume render-
ing in 1995 [1], and the survey has been extensively referenced in the volume rendering
literature. Since then, there have been some new developments in the context of opti-
cal and illumination models for volume rendering, such as spectral volume rendering,
shadow algorithms and refraction rendering. The authors believe that it is beneficial to
re-visit this topic and bring these new developments into the perspective. On one hand,
this survey is written as an update of [1], so it does not repeat the details of many tech-
nical aspects that were presented in [1]. On the other hand, it is also intended to be a
self-contained work, so some fundamentals have been included.
In Sections 2, 3 and 4, we will examine the volume rendering integral, and local and
global illumination models used in volume rendering, respectively. In these sections, the
discussions on lights and colors are wavelength-independent, and the optical models
presented were often applied directly to RGB-based implementations in practice. In
Section 5, we review the developments on spectral volume rendering, in which optical
models were implemented in a wavelength-dependent manner.
2 The Volume Rendering Integral
2.1 Basic Optical Model
The simplest physical model is that of a collection of small non-reflecting opaque parti-
cles, glowing with color c, which are the only light sources in the scene. The extinction
coefficient τ represents the differential probability of a viewing ray hitting a particle,
so that the probability of the ray hitting a particle along an infinitesimal length ds is τ
ds. Max [1] gives a derivation of τ = π r 2 N in terms of the radius r and number density
N of the particles. In particular, τ is proportional to N. For particles of constant radius
and material, τ is then also proportional to the mass density ρ of the particles, so that
τ = ρκ , where κ depends on the material.
The transparency T (s) represents the probability that the viewing ray travels a dis-
tance s away from the viewpoint without hitting any particles. Since the events “not
hitting between distances 0 and s” and “not hitting between distances s and s + ds” are
independent, their probabilities multiply, so
T (s + ds) = T (s) 1 − τ (s)ds .
Thus
dT = T (s + ds) − T (s) = −T (s)τ (s)ds
so
dT /T = −τ (s)ds.
Using the initial condition T (0) = 1,
Z s
ln(T (s)) = − τ (u) du,
0
and Zs
T (s) = exp − τ (u) du . (1)
0
By the same independent event argument, the probability of not hitting a particle
between distances 0 and s, and then hitting one between distances s and s + ds, is
T (s)τ (s)ds. In this case, the color will be c(s), the color of the particles at position
s. The values of τ and c at a given 3D position are usually specified by transfer func-
tions of the scalar variable being visualized. The ray may pass through the complete
volume, and hit an opaque background at distance D with probability T (D), in which
case it will have the background color B (which may depend on the point hit). The ex-
pected color E for the ray is gotten by averaging the colors for all these hitting events,
weighted by their probabilities:
Z D
E= T (s)τ (s)c(s) ds + T (D)B. (2)
0
(For another derivation of this, see [1].) The product τ (s)c(s) can be thought of as a
spatially varying color C(s) which already has the effects of the particle density factored
in. In the compositing literature, C is called a “premultiplied” color, and c is called
a “non-premultiplied” color. In volume rendering it is also common for the transfer
function to specify a premultiplied color, in which case
Z D
E= T (s)C(s) ds + T (D)B. (3)
0
0
T (s)τ (s)c(s) ds ∼
= ∑ T (si )τ (si )c(si )∆ s,
i=0
where si is a sample in the ith segment. If si = i∆ s is at the left hand end of the ith
segment,
Zs
i
T (si ) = exp − τ (u) du
0
i Z sj
= ∏ exp − τ (u) du .
j=1 s j−1
E = 0.
T = 1.
for i = 0 to n-1 do
E = E + T*tau[i]c[i]
T = T*exp(-tau[i]*DeltaS)
E = E + T*B
Early ray termination stops this computation when T becomes zero, or small enough
so that further terms have negligible effect. A similar iteration can be written for back
to front accumulation of the contributions, which does not need the temporary variable
T , but cannot do early ray termination.
A further approximation is to estimate exp(x) by the first two terms in its Taylor
series:
exp(x) = 1 + x + x2/2 + · · ·
so that
exp(−τ (s)∆ s) ∼
= 1 − τ (s)∆ s. (4)
This approximation is only good when the product τ (s)∆ s is small; otherwise it may
cause visible artifacts. If it is made, the steps in the above iteration can be achieved in
simple compositing hardware. The data volume is sliced by a series of equally-spaced
planes into textured polygons that can be scan converted and composited in hardware.
On a regular cubic or rectilinear grid, the data at si can be interpolated from the
eight surrounding grid values using 3D texture mapping hardware. If only 2D texture
mapping is available, the slices can be taken along a set of parallel coordinate planes
in the grid, passing through the aligned data samples. It is more accurate to interpolate
the scalar data and then apply the transfer functions for color and opacity, rather than
sample the color and opacity at the grid and then interpolate them. This is easily done
in hardware using dependent textures.
The following Iteration B can then compute the radiance along the ray with floating
point accuracy:
E = 0.
T = 1.
for i = 0 to n-1 do
F = exp(-tau[i]*DeltaS[i])
E = E + T*c[i]*(1. - F)
T = T*F
E = E + T*B
Even for the discrete sampling in the previous section, Iteration B will be more ac-
curate than the Iteration A derived from the Riemann sum, if τ ∆ s is large, so that T
varies significantly between samples.
Shirley and Tuchman [4] divided the projection of a tetrahedron by its projected
edges into triangles in software, and used polygon rendering and compositing to ren-
der them in hardware. Wylie et al. [5] have now done all steps in hardware, except the
global visibility sorting required to determine the compositing order. The same princi-
ples apply to a mesh of arbitrary convex polyhedral cells, as shown by Williams et al.
[6], which also presents a visibility sort based on a method proposed by Martin Newell.
This visibility sorting remains a bottleneck, and in fact is not always possible, be-
cause there may be a cycle of tetrahedra, each overlapping the next. Visibility sorting
has its own extensive literature, which is beyond the scope of this survey.
So far we have assumed that the optical properties are constant within each cell. An-
other case which can be handled analytically is when they vary linearly along each ray.
For example, this is the case if the scalar function is linearly interpolated from its values
at the four vertices of a tetrahedron, and the transfer functions mapping it to τ and c or
C are also linear. In such cases, applying a symbolic integration package to the integral
in Equation (2) produces a rather complicated analytic expression, first presented by
Williams and Max [7]. As shown in [6], this method also applies to piecewise linear
transfer functions, by dividing the tetrahedra into sub-polyhedra in which the transfer
function is linear. That paper also improves the numerical stability of the software eval-
uation. Moreland and Angel [8] have used a GPU to evaluate this analytic expression
in hardware, by precomputing part of it into texture tables.
If the volume data is determined at grid points, the discrete sampling methods in Section
2.2 are appropriate, but if the data comes from a finite element grid, integration along
the ray segments in each grid cell may be more accurate and efficient. However, only the
constant case in Section 2.3 and the linear case in Section 2.4 admit analytic solutions.
The transfer function may not be linear or even piecewise linear. Also, the interpolated
scalar value along a ray may not be linear. For example, for trilinear interpolation on
hexahedral elements, the scalar function is a cubic polynomial along general rays. In
addition, higher order finite elements may be used in the physical simulation for better
convergence.
A further problem with finite elements is that they may be deformed, that is, the
mapping from a standard element shape like a cube or regular tetrahedron into the phys-
ical simulation space may be non-linear. Often, the same higher order polynomials used
to define the scalar function on the standard element are also used to map the standard
element into physical space. Thus, an inverse map is needed before the scalar function
can even be evaluated at a point on the ray. In fact, a ray can intersect a deformed ele-
ment in more than one segment. Wiley et al. [9] show how to determine these segments
for the case of deformed quadratic tetrahedra, and approximate the inverse mapping
along them by polynomial splines.
Once the ray segments are known, there are several ways that the integral can be
approximated. In [9], the equally spaced sampling method of Section 2.2 was used.
But for smoothly varying transfer functions, Gaussian integration [10] can give greater
accuracy for the same number of sample points, by approximating the integral as an un-
equally weighted sum of the integrand at n unequally spaced sample points. The sample
locations and sample weights are chosen to give the exact integral for polynomials of
the maximum degree, 2n − 1, allowed by the 2n degrees of freedom in these positions
and weights. So if the integrand is well approximated by such polynomials, Gaussian in-
tegration will give a good approximation. But this is not always the case, especially for
non-smooth transfer functions that are selected to emphasize certain contour surfaces
of the scalar function. For this application, discussed in more detail in the next section,
it may be more appropriate to find the exact intersection of the ray with any contour
surface within the volume element. Williams et al. [6] used the quadratic formula to
intersect rays with contour surfaces within undeformed tetrahedra with quadratically
varying scalar functions. Kirby and Nelson [11] estimate the scaler function along the
inverse-mapped ray within a higher order deformed element by a high degree polyno-
mial, and then use a general root finding procedure to find its first root along the ray.
Another possibility is to precompute and store the integrals. For a linear variation
of the scalar function along a ray segment and arbitrary transfer functions, the integral
along the segment depends only on the segment length, and the scalar values at its two
endpoints. Röttger et al. [12] propose storing the integrals in a 3D texture, indexed by
these three variables. Weiler et al. [3] used this in their hardware ray tracing, and pro-
posed an efficient incremental method of doing the precomputation. For the hardware
implementation by plane slicing given at the end of Section 2.2, the ray segment length
is constant in an orthogonal view, and approximately constant in a perspective view,
so only a 2D texture is required for the precomputed integrals. A good reference on
hardware implementation of the methods in this and the next two sections is [13].
3 Local Illumination
The volume rendering integrals given in Equations (2) and (3) represent a typical optical
model which is referred to as the absorption plus emission model [1] and is perhaps the
most widely-used optical model in volume visualization. The non-premultiplied color
c(s) can simply be a function of emission property at a sample point s by considering the
volume as a light-emitting medium. Another approach is to involve one or more light
sources in the computation of c(s). In both cases, the illumination at s depends not only
the optical properties sampled at s and the intensity of each light source, but also indirect
light reflected towards s from other part of the medium (i.e., scattering) as well as the
absorptivity of the medium that determines how much light can eventually arrived at s
(i.e., shadows). Such an illumination model is referred to as global illumination, which
will be discussed in detail in Section 4.
To avoid costly computation with a global illumination model, it is common to adopt
a local illumination model where c(s) is estimated based only on the optical properties
sampled at s and the intensity of each light source. This allows us to rewrite Equation
(2) as:
Z D k
E= T (s)τ (s) cg (s) + ∑ cr (s, Li ) ds + T (D)B,
0 i=1
where cg (s) is the sampled intensity of self-glowing at s, and cr (s, Li ) defines the light
reflected due to light source Li (i = 1, . . . , k). In many applications, a local illumination
model is normally adequate for rendering a single isosurface within a volume. When
handling multiple isosurfaces, or amorphous regions, one needs to aware the limitation
of such a model and the potential perceptual discrepancy due to the omission of shadows
and indirect lighting.
Given a light source L, one can estimate cr at s locally by using one of the empirical or
physically-based illumination models designed for surface geometry, such as the Phong,
Phong-Blinn, and Cook-Torrance models [14]. When such a model is used in volume
rendering, it is assumed that each sampling position, s, is associated with a surface or
microfacet. This assumption allows us to compute the surface normal at s, which is
required by almost all surface-based illumination models.
In volume models, surface geometry is normally not explicitly defined, and in many
situations, models do not even assume the existence of a surface. Hence, the computa-
tion of surface normals is usually substituted by that of gradient vectors. While for some
parametric or procedurally-defined volume models, it is possible to derive gradient vec-
tors analytically, in most applications, especially where discrete volumetric models are
used, gradient vectors are estimated, for example, using the finite differences method
for rectangular grids [15], and 4D linear regression for both regular and irregular grids
[16]. The commonly used central differences method is a reduced form of finite differ-
ences based on the first two terms of the Taylor series. There are many other gradient
estimation methods, including schemes that involve more or fewer neighboring sam-
ples (e.g., [17, 18]), and schemes where the discrete volume models are first convolved
using a high-order interpolation function, and gradients are computed as the first deriva-
tive of the interpolation function (e.g., [19, 20]). Möller et al. compared a few normal
estimation schemes in the context of volume visualization [21].
Usually the local illumination models are only applied at or near a presumed surface
within the volume, so a surface presence indicator is used to weight (i.e. multiply)
the computed local illumination. Levoy [22] describes two methods of computing this
surface weight, using formulas involving the scalar value and its gradient magnitude,
and Kindleman and Durkin [23] give a method which uses a 2D texture table indexed
by these two quantities. Kraus [24] points out that if the task is to determine only if a
contour surfaces is intersected by a ray segment, this can be indicated by a 2D texture
table indexed by the two scalar values at the endpoints of the segment. Alternatively,
ray tracing can be used to locate points exactly on an isosurface, as described in Section
2.5, and the local illumination can be applied only at these points.
3.2 Measured and Precomputed BRDFs
The light reflected from a point on a surface can be described by a bi-directional re-
flection distribution function (BRDF). Hence, it is feasible to obtain a BRDF in sam-
pled form by either measurement or computer simulation [25]. The measurements of
a BRDF are usually made using a goniophotometer in a large number of directions,
in terms of polar and azimuth angles, uniformly distributed on a hemisphere about a
source [26]. In computer graphics, it is also common to precompute discrete samples of
a BRDF on a hemisphere surrounding a surface element (e.g., [27, 28]).
Given n sampling points on a hemisphere, and n possible incident directions of
light, a BRDF can be represented by an n × n matrix. Given an arbitrary incident light
vector, and an arbitrary viewing vector, one can determine the local illuminance along
the viewing vector by performing two look-up operations and interpolating up to 16
samples.
One major advantage of using measured or pre-computed BRDFs is that the com-
putation of c(s) in Equation (2) or C(s) in Equation (3) no longer needs to rely on an
illumination model that can easily be defined and computed. One can use measured data
to compensate for the lack of an appropriate model that accounts for a range of physi-
cal attributes, or use precomputed data for a complicated and computationally intensive
model (e.g., an anisotropic model as in [27]).
Similar to a BRDF, the light transmitted at a point on a surface can be described
by a bi-directional transmittance distribution function (BTDF). Hanrahan and Krueger
[29] considered both BRDF and BTDF in a multi-layered surface model, which can be
viewed as a simplified volume model. Baranoski and Rokne [30] applied this approach
to the modeling of foliar scattering. Wang et al. [31] obtained their BRDFs and BTDFs
by fitting parametric models to measured reflectance and transmittance data.
Many local illumination methods developed for surface rendering have been, or can
be, used in conjunction with the volume rendering integral. These include Blinn and
Newell’s environment map [34], Arvo’s illumination map [35], Heckbert’s radiosity
texture [36]. However, the application of these methods in volume rendering has so far
been largely limited to the rendering of a single iso-surface [37].
The discrete sampling process described in Section 2.2 facilitates a scattering event
at each sample. In such a process, refraction can be realized as a local illumination fea-
ture by altering the ray path. Rodgman and Chen examined several sampling methods
for rendering refraction in conjunction with the volume rendering integral [38], and em-
ployed nonlinear diffusion filters to improve the quality of refraction rendering. Li and
Mueller studied the use of different interpolation filters in a surface-based approach to
rendering refraction [39, 40].
In many visualization applications, it is appropriate, and often desirable, to use
non-photorealistic lighting to enhance the perception of synthesized visualizations. Re-
cently, Stewart employed local occuluders and uniform diffuse illumination to render
pseudo-shadows in depressions and crevices [41]. Lee et al. used globally inconsistent
lighting to enhance perception of shapes [42]. Lum et al. applied transfer functions to
incoming light to provide better perception of material thickness and boundaries [43].
4 Global Illumination
If the particles in the optical model scatter as well as emit light, the mathematical situa-
tion is more complicated than in section 2. For a complete solution, we must determine
I(x, ω ), the radiance (light intensity) flowing through every 3D point x in the volume,
in every direction ω on the unit sphere, taking into account the effects of multiple scat-
tering.
The probability that light hitting a particle scatters instead of being absorbed is
called the albedo a. The scattering depends on the direction of the incoming and scat-
tering rays according to the phase function r(ω , ω 0 ).
Let the source function g(x, ω ) represent the light emitted or inscattered into direc-
tion ω by a particle at position x. Integrating the scattered incoming light over all in-
coming directions ω 0 in the unit sphere Ω , taking into account the effects of the albedo
and the phase function, and finally adding on the glow cg (x), we get
Z
g(x, ω ) = a(x)r(ω , ω 0 )I(x, ω 0 ) d ω 0 + cg (x). (5)
Ω
In practice, a usually does not depend on x, and the phase function r(ω , ω 0 ) depends
only on the scattering angle between the unit direction vectors ω and ω 0 .
In order to write the multiple scattering version of Equation (2), giving an expres-
sion for I(x, ω ), we substitute g(x, ω ) for c(s). We evaluate the optical properties at
points x(s) = x − ω s, since the integral in (2) is along a “viewing ray” in the direction
opposite to the light flow. Thus we have
Z D
I(x, ω ) = T (s)τ (x(s))g(x(s), ω ) ds + T (D)B. (6)
0
This equation is difficult to solve, since g(x(s), ω ) depends via Equation (5) on
I(x, ω 0 ) at all the points x(s) on the viewing ray and in all directions ω 0 in the unit
sphere, so that all the I(x, ω ) must be solved for simultaneously. Surveys of techniques
for the solution are given in Pérez et al. [44] and Max [1].
Kajiya and von Herzen [45] did this in a first pass through the volume, essentially
computing I(x, ω 0 ) by the part of Iteration A involving only T . Bahrens and Rattering
[46] give an accurate and efficient method for this shadow pre-computation on gridded
data, using texture mapping hardware, by moving a sampling plane perpendicular to ω 0
in discrete steps along the light flow direction. This shadow computation can be done
in the same pass as the volume rendering if the sampling plane instead bisects the angle
between the viewing and illumination rays, as in [47].
For non-homogeneous materials, there are several methods not covered in the survey of
Perez et al. [44]. Jensen and Christiansen [53] extend photon mapping to participating
media. They do a Monte Carlo simulation of photon transport from the light sources,
which can take into account spatially varying optical properties and general phase func-
tions. They record each scattering event in a spatial data structure called a photon map.
In a final gather pass from the viewpoint, they collect the scattering events relevant to
a viewing ray, to account for the inscattered photons. Of course, this can be slow, since
many photons are required for accurate convergence.
Kniss et al. [54] have generalized the single pass shadow algorithms given at the
end of Section 4.2 to multiple forward scattering, by gathering the accumulated light
from several sampled directions in the previous sampling plane. Zhang et al. [55] have
added backward scattering from the next couple of sampling planes.
This is more often written in the form of a depth correction formula for opacity, α (λ , δ ),
as:
δ
α (λ , δ ) = 1 − T (λ , δ ) = 1 − 1 − α (λ , ∆ ) ∆ .
For a homogeneous medium, the Lambert-Bouguer law, which was derived from ex-
perimentation, is consistent with Equation (1), which was derived independently based
on the notion of absorbing particles. Comparing with the early discussion in Section 2.1,
the Lambert-Bouguer law is a special case of Equation (1), while transparency T (s) in
Equation (1) can be considered as an approximated extension of the Lambert-Bouguer
law by removing the homogeneity condition and assuming the same refractive index for
materials with different τ (s).
The basic optical model proposed by Bouguer and Lambert, and a wavelength-
dependent version of Equation (1) form the basis of the two spectral volume rendering
integrals in 5.2 and 5.3.
Bergner et al. [57, 58] developed a spectral volume rendering integral, partially based on
the multiple scattering model described in Section 4.1. In order to facilitate ray casting
with local illumination, they simplified the multiple scattering model by removing all
the global illumination elements in the model. This includes (i) assigning volumetric
shadow ratio to constant 1 for all voxels and directions, (ii) considering only irradiance
and radiance with the same direction as the viewing ray, and (iii) approximating the
radiance at each point by the reflectance of the local materials.
In particular, Bergner et al. successfully factored the light source out in the compu-
tation of their volume rendering integral. This enables interactive data integration using
different light sources during post illumination.
Let L(λ ) be a light source of a single wavelength, and Ii (x, ω , λ ) be the irradiance
at a sampling position x reached from a light ray of direction ω . Ii is computed as:
where D is the distance between x and the point d where the light ray first enters the
volume. I˜i (x, ω , λ ) indicates the proportion of L(λ ) that has arrived at x from d, which
is:
Z D
I˜i (x, ω , λ ) = I˜i (x − Dω , ω , λ ) · T (x, ω , λ , D) + I˜r (x − sω , ω , λ ) · T (x, ω , λ , s) ds,
0
where I˜i (x − Dω , ω , λ ) is the irradiance at d, T (x, ω , λ , s) is the spectral version of the
extinction function in Equation (1), i.e.,
Zs
T (x, ω , λ , s) = exp − τ (x − t ω , λ )dt ,
0
and I˜r (x − sω , ω , λ ) indicates the scattered radiance from the external illumination. Be-
cause of the abovementioned simplification, the term I˜r (x − sω , ω , λ ) is computed with
a local illumination model based on the Phong model.
In the illumination phase, the flux of the light is propagated through the volume using
discrete ray casting. At each sampling position x, the incident light Ii is related to the
transmitted light It (which subsequently becomes the incident light at the next sample)
simply as:
Ii (x + ∆ x, λ ) = It (x, λ ) = Ii · 1 − ∆ x · τ (x, λ ) .
In the radiation phase, the flux of radiance is accumulated also using back-to-front
ray casting. At each sampling position x, the radiance Ir is related to the irradiance Ib
arriving from the previous sample, and the local emission Ie as:
Ib (x + ∆ x, λ ) = Ir (x, λ ) = Ie (x, λ ) + Ib(x, λ ) · 1 − ∆ x · τ (x, λ ) .
Note that as mentioned in conjunction with Equation (4), the term 1 − ∆ x · τ (x, λ ) used
in both phases is only an approximation.
One particular interesting aspect of the work by Noordmans et al. is the design of its
emission function, which is split into two parts, namely elastic scattering and inelastic
scattering. The former features scattering in a chromatic medium, with each material
m is associated with a specific spectral band, facilitating a spectral transfer function.
The latter enables materials to absorb the incident light at one wavelength and re-emit
the energy at another, facilitating a simulation of fluorescence and phosphorescence
materials.
On the other hand, the passage of the reflected flux, Ir (λ ), in the opposite direction, is
also subject to similar changes, that is:
Note that when S(λ ) = 0, the incident flux, on integrating, follows the Lambert-Bouguer
law discussed in 5.1. Also note that without the back-scattering, we would have K(λ ) +
S(λ ) = τ (λ ), where τ (λ ) is the extinction coefficient in the Lambert-Bouguer law. As
placement of the colorant layer and its elementary layers are normally drawn in a hori-
zontal manner, the incident and reflected fluxes are commonly referred to as downward
and upward fluxes respectively.
Dividing both sides of Equations (7) and (8) by dx, we have two simultaneous dif-
ferential equations. The solution to the equations leads to several useful formulae. Con-
sider a single homogeneous layer of thickness X. Let R(λ ) and T (λ ) be the reflectance
and transmittance of the layer respectively. We have:
sinh(b(λ )S(λ )X)
R(λ ) = (9)
a(λ ) sinh(b(λ )S(λ )X) + b(λ ) cosh(b(λ )S(λ )X)
b(λ )
T (λ ) = , (10)
a(λ ) sinh(b(λ )S(λ )X) + b(λ ) cosh(b(λ )S(λ )X)
where q
S(λ ) + K(λ )
a(λ ) = , b(λ ) = a(λ )2 − 1.
S(λ )
Here a(λ ) is essentially a spectral version of the albedo defined in 4.1, but only the
probability of hitting back-scatters is considered. The reflectance of an opaque medium
can thereby be computed by making X → ∞ in Equation (9), resulting in:
2 1
K(λ ) K(λ ) K(λ ) 2
R∞ (λ ) = 1 + − +2 .
S(λ ) S(λ ) S(λ )
Kubelka later extended the Kubelka-Munk theory to inhomogeneous layers [62]. Given
the reflectance and transmittance of two different layers, R1 , T1 , R2 and T2 , considering
an infinite process of interaction between the two layers. A light flux passes the first
layer with the portion T1 , and then the second layer T1 T2 . Meanwhile, a portion of
T1 R2 T1 will be reflected from the second layer and pass though the first layer again.
Continuing this process leads to two infinite series:
R1 , T1 R2 T1 , T1 R2 R1 R2 T1 , ...
T1 T2 , T1 R2 R1 T2 , T1 R2 R1 R2 R1 T2 , ...
The infinite process of interaction can be considered as one-dimensional radiosity [63]
— a limited form of global illumination. The sums of the two series give the composit-
ing reflectance and transmittance as:
T1 (λ )2 R2 (λ )
R(λ ) = R1 (λ ) +
1 − R1(λ )R2 (λ )
T1 (λ )T2 (λ )
T (λ ) = .
1 − R1(λ )R2 (λ )
A discrete spectral volume rendering integral can thus be formulated based on this
multi-layer model. Using the ray-casting method, one can approximate the intersection
volume between each ray and a volume object as a series of homogeneous layers with
a thickness equal to the sampling distance.
The work by Abdul-Rahman and Chen [59] highlighted some relative merits of the
Kubelka-Munk theory over the Lambert-Bouguer law, especially in terms of its built-
in distance attenuation, and its capability of determining the opacity and transparency
optically according to the absorption and scattering properties. They have also exper-
imented with captured optical properties of some real world materials, and the design
for spectral transfer function for post-illumination.
7 Acknowledgments
This work was performed under the auspices of the U. S. Department of Energy by
the University of California, Lawrence Livermore National Laboratory under contract
number W-7405-ENG-48. It was also partly funded by a UK-EPSRC grant with refer-
ence GR/S44198. The authors wish to thank Dr. Martin Kraus, Universität Stuttgart, for
his comments and suggestions in the early stage of preparing this survey.
References
1. Max, N.: Optical models for direct volume rendering. IEEE Transactions on Visualization
and Computer Graphics 1(2) (1995) 99–108
2. Garrity, M.P.: Ray tracing irregular volume data. ACM SIGGRAPH Computer Graphics
24(5) (1990) 35–40
3. Weiler, M., Kraus, M., Merts, M., , Ertl, T.: Hardware-based ray casting for tetrahedral
meshes. In: Proc. IEEE Visualization. (2003) 333–340
4. Shirley, P., Tuchman, A.: A polygonal approximation to direct scalar volume rendering.
ACM SIGGRAPH Computer Graphics 24(5) (1990) 63–70
5. Wylie, B., Moreland, K., Fisk, L.A., Crossno, P.: Tetrahedral projection using vertex shaders.
In: Proceedings, ACM SIGGRAPH Workshop on Volume Visualization. (2002) 7–12
6. Williams, P., Max, N., Stein, C.: A high accuracy renderer for unstructured data. IEEE
Transactions on Visualization and Computer Graphics 4(1) (1998) 37–54
7. Williams, P., Max, N.: A volume density optical model. In: Proceedings, ACM SIGGRAPH
Workshop on Volume Visualization. (1992) 61–68
8. Moreland, K., Angel, E.: A fast high accuracy volume renderer for unstructured data. In:
Proceedings of the IEEE/SIGGRAPH Symposium on Volume Visualization. (2004) 9–16
9. Wiley, D., Childs, H., Hamann, B., Joy, K.: Ray casting curved-quadratic elements. In: Proc.
Eurographics/IEEE TCVG Data Visualization. (2003) 201–209
10. Press, W., Teukolosky, S., Vettering, W., Flannery, B.: Numerical Recipes in C++. Cam-
bridge University Press (2002)
11. Kirby, R.M., Nelson, B.: Ray-tracing polymorphic multi-domain spectral/hp elements for
isosurface rendering. IEEE Transcations on Visualization and Computer Graphics 12(1)
(2006)
12. Röttger, S., Kraus, M., Ertl, T.: Hardware-accelerated volume and isosurfaces rendering
based on cell projection. In: Proc. IEEE Visualization. (2000) 109–116
13. Engel, K., Hadwiger, M., Kniss, J., Rezk-Salama, C., Weiskopf, D.: Real-Time Volume
Graphics. A. K. Peters (2006)
14. Foley, J.D., van Dam, A., Feiner, S.K., Hughes, J.F.: Computer Graphics: Principles and
Practice. 2nd edn. Addison-Wesley (1990)
15. Meyer, T.H., Eriksson, M., Maggio, R.C.: Gradient estimation from irregularly spaced data
sets. Mathematical Geology 33(6) (2001) 693–717
16. Neumann, L., Csébfalvi, B., König, A., Gröller, E.: Gradient estimation in volume data using
4D linear regression. Computer Graphics Forum 19(3) (2000) C351–C357
17. Pommert, A., Tiede, U., Wiebecke, G., Hohne, K.H.: Surface shading in tomographic volume
visualization. In: Proc. 1st Conference on Visualization in Biomedical Computing. Volume 1.
(1990) 19–26
18. Zucker, S.W., Hummel, R.A.: A three-dimensional edge operator. IEEE Transactions on
Pattern Analysis and Machine Intelligence 3(3) (1981) 324–331
19. Bentum, M.J., Lichtenbelt, B.B.A., Malzbender, T.: Frequency analysis of gradient estima-
tors in volume rendering. IEEE Transactions on Visualization and Computer Graphics 2(3)
(1996) 242–254
20. Park, S.K., Schowengerdt, R.A.: Image reconstruction by parametric cubic convolution.
Computer Vision, Graphics and Image Processing 23 (1983) 258–272
21. Möller, T., Machiraju, R., Mueller, K., Yagel, R.: A comparison of normal estimation
schemes. In: Proc. IEEE Visualization ’97, Phoenix, AZ (1997) 19–26
22. Levoy, M.: Volume rendering: display of surfaces from volume data. IEEE Computer Graph-
ics and Applications 8(3) (1988) 29–37
23. Kindleman, G., Durkin, J.: Semi-automatic generation of transfer functions for direct volume
rendering. In: Proceedings, IEEE/ACM Symposium on Volume Visualization. (1998) 79–86
24. Kraus, M.: Scale-invariant volume rendering. In: Proceedings, IEEE Visualization. (2005)
295–302
25. Greenberg, D.P., Arvo, J., Lafortune, E., Torrance, K.E., Ferwerda, J.A., Walter, B., Trum-
bore, B., Shieley, P., Pattanaik, S., Foo, S.: A framework for realistic image synthesis. In:
Proc. ACM SIGGRAPH Annual Conference Series. (1997) 477–494
26. Hunter, R.S., Harold, R.W.: The Measurement of Appearance. 2nd edn. John Wiley & Sons
(1987)
27. Kajiya, J.T.: Anisotropic reflection models. ACM SIGGRAPH Computer Graphics 19(3)
(1985) 15–21
28. Becker, B.G., Max, N.L.: Smooth transitions between bump rendering algorithms. ACM
SIGGRAPH Computer Graphics 27(3) (1993) 193–190
29. Hanrahan, P., Krueger, W.: Reflection from layered surfaces due to subsurface scattering. In:
Proceedings of ACM SIGGRAPH Annual Conference. (1993) 165–174
30. Baranoski, G.V.G., Rokne, J.G.: An algorithmic reflectance and transmittance model for
plant tissue. Computer Graphics Forum 16(3) (1997) 141–150
31. Wang, L., Wang, W., Dorsey, J., Yang, X., Guo, B., Shum, H.Y.: Real-time rendering of plant
leaves. ACM Transactions on Graphics (SIGGRAPH ’2005) 24(3) (2005) 712–719
32. Blinn, J.: Light reflection functions for simulation of clouds and dusty surfaces. Computer
Graphics 16(3) (1982) 21–29
33. Henyey, G.L., Greenstein, J.L.: Diffuse radiation in the galaxy. Astrophysical Journal 88
(1940) 70–73
34. Blinn, J.F., Newell, M.E.: Texture and reflection in computer generated images. Communi-
cations of the ACM 19(10) (1976) 542–547
35. Arvo, J.: Backward ray tracing. In: SIGGRAPH ’86 Developments in Ray Tracing, Seminar
Notes. (1986)
36. Heckbert, P.S.: Adaptive radiosity textures for bidirectional ray tracing. Computer Graphics
(SIGGRAPH ’90) 24(4) (1990) 145–154
37. Kniss, J., Rezk-Salama, C., Engel, K., Hadwiger, M.: High-quality volume graphics on
consumer PC hardware. In: SIGGRAPH ’2002 Course. (2002)
38. Rodgman, D., Chen, M.: Refraction in discrete raytracing. In Mueller, K., Kaufman, A.,
eds.: Proc. Volume Graphics 2001, Springer (2001) 3–17
39. Li, S., Mueller, K.: Spline-based gradient filters for high-quality refraction computation in
discrete datasets. In: Proc. EuroVis, Eurographics (2005) 215–222
40. Li, S., Mueller, K.: Accelerated, high-quality refraction computations for volume graphics.
In: Proc. Volume Graphics, Eurographics (2005) 73–81
41. Stewart, A.J.: Vicinity shading for enhanced perception of volumetric data. In: Proc. IEEE
Visualization. (2003) 355–362
42. Lee, C.H., Hao, X., Varshney, A.: Light collages: Lighting design for effective visualization.
In: Proc. IEEE Visualization. (2004) 281–288
43. Lum, E.B., Ma, K.L.: Lighting transfer functions using gradient aligned sampling. In: Proc.
IEEE Visualization. (2004) 289–296
44. Pérez, F., Pueyo, X., Sillion, F.: Global illumination techniques for the simulation of partici-
pating media. In Dorsey, J., Slusallek, P., eds.: Rendering Techniques ’97, Vienna, Springer
(1997) 309–320
45. Kajiya, J.T., von Herzen, B.P.: Ray tracing volume densities. ACM SIGGRAPH Computer
Graphics 18(3) (1984) 165–174
46. Behrens, U., Ratering, R.: Adding shadows to a texture-based volume renderer. In: Proceed-
ings ACM SIGGRAPH Symposium on Volume Visualization. (1998) 39–46
47. Kniss, J., Kindlmann, G., Hansen, C.: Multidimensional transfer functions for interactive
volume rendering. IEEE Transactions on Visualization and Computer Graphics 8(3) (2002)
270–285
48. Stam, J.: Multiple scattering as a diffusion process. In Hanrahan, P., Purgathofer, W., eds.:
Proc. Eurographics Workshop on Rendering Techniques, Springer (1995) 41–50
49. Ishimaru, A.: Wave Propagation and Scattering in Random Media, Volume I: Single Scatter-
ing and Transport Theory. Academic Press, New York (1978)
50. Jensen, H.W., Marschner, S.R., Levoy, M., Hanrahan, P.: A practical model for subsurface
light transport. In: Proceedings of ACM SIGGRAPH Annual Conference. (2001) 511–518
51. Jensen, H.W., Buhler, J.: A rapid hierarchical rendering technique for translucent materials.
ACM Transactions on Graphics (SIGGRAPH ’2002) 21(3) (2002) 721–728
52. Dachsbacher, C., Stamminger, M.: Translucent shadow maps. In: Rendering Techniques
2003, Eurographics (2003) 197–201
53. Jensen, H.W., Christensen, P.H.: Efficient simulation of light transport in scenes with partici-
pating media using photon maps. In: Proceedings of ACM SIGGRAPH Annual Conference.
(1998) 311–320
54. Kniss, J., Premoze, S., Hansen, C., Ebert, D.: Interactive translucent volume rendering and
procedural modeling. In: Proceedings, IEEE Visualization, Washington, DC, USA, IEEE
Computer Society (2002) 109–116
55. Zhang, C., Xue, D., Crawfis, R.: Light propagation for mixed polygonal and volumetric data.
In: Proceedings, Computer Graphics International, IEEE (2005) 249–256
56. Wyszecki, G., Stiles, W.S.: Color Science: Concepts and Methods, Quantitative Data and
Formulae. John Wiley & Sons (1982)
57. Bergner, S., Möller, T., Drew, M.S., Finlayson, G.D.: Internative spectral volume rendering.
In: Proc. IEEE Visualization. (2002) 101–108
58. Bergner, S., Möller, T., Tory, M., Drew, M.: A practical approach to spectral volume render-
ing. IEEE Transactions on Visualization and Computer Graphics 11(2) (2005) 207–216
59. Abdul-Rahman, A., Chen, M.: Spectral volume rendering based on the Kubelka-Munk the-
ory. Computer Graphics Forum 24(3) (2005)
60. Kubelka, P., Munk, F.: Ein Beitrag zur Optik der Farbanstriche. Zeitschrift für Technische
Physik 12 (1931) 593–601
61. Schuster, A.: Radiation through a foggy atmosphere. Journal of Astrophysics 21 (1905)
1–22
62. Kubelka, P.: New contributions to the optics of intensely light-scattering materials, Part II.
nonhomogeneous layers. Journal of the Optical Society of America 44 (1954) 330 – 355
63. Dorsey, J., Hanrahan, P.: Modeling and rendering of metallic patinas. In: Proc. 23rd Annual
ACM SIGGRAPH Conference. (1996) 387–396