good approximation to media rendering equations
that can allow fast computation.
(Max, 1994) and (Nishita et al., 1987) worked on
an analytic solution for rendering atmospheric scat-
tering, one of the most studied applications by re-
cent works. Later, (Stam and Fiume, 1993) applied
Nishita’s model to render turbulent wind fields. More
recently, (Biri, 2006) presented an analytic reformu-
lation of the single scattering effect of a point light
source.
Using particles to model heterogeneous participat-
ing media appears much natural, and has also already
been intensively used (Stam, 1999; Fedkiw et al.,
2001).
(Zhou et al., 2007), propose an hybrid approach
to handle single scattering in an heterogeneous par-
ticipating medium, combining particles (i.e. gaus-
sians) and spherical harmonics. Despite good perfor-
mances, since all lighting computation depend on the
observer’s point of view, the whole pipeline has to be
processed at each frame. Moreover, it seems not con-
venient to implement and not easy to integrate in an
existing pipeline.
Approaches where the medium is discretized over
a 3D grid of voxels start with (Kajiya and Von Herzen,
1984). The scattering media is modeled as a set of
voxels of varying density. As a first step, the radiance
arriving at each voxel from each light source is com-
puted ; then, the main scattering integral is evaluated
iteratively between the viewer and the farthest voxel
intersected by a ray-tracing. Our method is inspired
from this two-step scheme.
(Kniss et al., 2003) present a technique to illu-
minate volumetric data based on half angle slicing
(Wilson et al., 1994), handling both a direct and an
approximated indirect lighting, but only for a single
light source situated outside the medium.
(Magnor et al., 2005) introduce a method to vi-
sualize reflection nebulae in interactive time. The
method uses a three-step algorithm similar to our
method, but where the medium’s density is kept un-
changed, due to the need for lighting precomputa-
tions.
Recently, (Kaplanyan, 2009) introduces the con-
cept of Light Propagation Volumes, to scatter indirect
lighting. After generating reflective shadow maps and
obtaining a set of virtual point lights on reflective sur-
faces, direct lighting is injected in a radiance volume,
which is a simple volumetric grid. In a third step,
using graphics hardware, indirect lighting is propa-
gated from cell-to-cell by iteratively solving differen-
tial schemes inside the volumetric grid.
Although focusing only on indirect lighting on
surfaces, this approach by propagation within a vol-
umetric grid is fast, allow more flexibility and could
as well be adapted in the case of direct incoming ra-
diance within a scattering media.
3 THEORETICAL BACKGROUND
3.1 Modeling the Participating Media
using a Radial Function Basis
Because our participating media is not static and can
evolve over time, the modeling step must be as simple
as possible for the user.
Like (Zhou et al., 2007), we choose to model our
heterogeneous participating media as a sum of radial
basis functions (RBF).
To define the medium’s appearance, the user just
provides a list of radial particles, which can differ in
both amplitude and scale. The particle’s density will
then be evaluated and injected into a 3D grid.
As the radial function itself, we simply chose the
gaussian function, defined on R
d
:
β(x) = ce
−a
2
kx−bk
2
(1)
where a ∈ R is its amplitude, b ∈ R
d
its center and
c ∈ R its scale.
To evaluate a function defined in a radial function
basis, we must sum all basis functions that overlay at
the given coordinates.
f(x) =
N
∑
i=0
β
i
(x) ⇐
⇒ f(x) =
N
∑
i=0
c
i
e
−a
2
i
kx−b
i
k
2
(2)
where i is the index of the RBF, and N is the total
number of RBFs in the basis.
3.2 Our Illumination Model
The appearance of a participating medium is linked
to airlight (Arvo, 1993). When light is emitted from a
point light source S, then goes through a participating
medium which an extinction function f (see figure 2),
the light L
S
(O) received by the observer at position O,
who looks in the direction of point P is given by:
L
S
(O) =
Z
P
O
f(X)k(α(X))
I
S
kS− Xk
2
e
−T(O,X)−T(X,S)
dX
(3)
where k(α) is the scattering phase function, I
S
the in-
tensity of light S, and T(A, B) is the optical depth of
the medium between points A and B:
T(A, B) =
Z
B
A
K
t
(t)dt (4)
GRAPP 2011 - International Conference on Computer Graphics Theory and Applications
114