Graphics Reference
In-Depth Information
grid of plausible velocities. Note that the velocity vectors are sampled at
the grid points, all components together—this is not a staggered MAC
grid. Trilinear interpolation can be used between grid points for particle
advection.
To animate this velocity field in time, the simplest technique (proposed
by Rasmussen et al. [Rasmussen et al. 03]) is just to construct two such
velocity fields and then cross-fade back and forth between them. The key
observation is that while on its own this method of animation falls short of
plausibility (and for that matter, the periodicity of the field is objectionable
too), this only is added on top of an already detailed simulation. The
extra detail is just needed to break up the smooth interpolation between
simulation grid points, not to behave perfectly.
9.3.2 Noise
While Fourier synthesis has many advantages—it's fairly ecient and has a
nice theoretical background—it has a few problems too, chief among them
being the problem of how to control it in space. If you want the turbulence
to be stronger in one region than another, or to properly handle a solid
wall somewhere in the flow, simultaneously meeting the divergence-free
constraint becomes dicult.
An alternative is to forget about Fourier transforms and instead directly
construct divergence-free velocity fields from building blocks such as Perlin
noise. We get the divergence-free condition by exploiting vector calculus
identities. For example, the divergence of the curl of a vector field is always
zero:
ψ ) = 0
ψ
∇·
(
∇×
for all vector fields
and the cross-product of two gradients is always divergence free as well:
∇·
φ
×∇
ψ ) = 0
for all scalar fields φ and ψ.
(
Kniss and Hart [Kniss and Hart 04] and Bridson et al. [Bridson et al. 07]
used the first of these formulas, with ψ a vector-valued noise function, and
DeWolf [DeWolf 05] used the second with φ and possibly ψ scalar noise
functions (see also von Funck et al. [von Funck et al. 06] for an application
of this identity in geometric modeling).
To get full turbulence, several octaves of noise can be added in either
formula, with an appropriate power-law scaling of magnitudes. For ex-
ample, using the first formula, curl-noise , we might take for the vector
Search WWH ::




Custom Search