15 August 2001
The Natural Animation
presentation was a collection of four papers on animating realistic-
looking materials, both in real time and offline. The papers spanned
three of the four physical states, including gas, liquid, and solid.
Plasma is open for next year.
Jos Stam of Alias|Wavefront presented work on the animation of smoke,
done in conjunction with Ronald Fedkiw and Henrik Wann Jensen of
Stanford. The goal of their work is to produce a system for simulation
of smoke that looks good and runs fast, and is applicable to both
real time and offline rendering. Additionally, they wanted to develop
a model that did not require a large amount of user control to generate
The authors chose a full physically-based fluid model as their high
level approach, in contrast to earlier work that used textured geometry.
Any sort of realistic fluid modeling is based on the Navier-Stokes equations.
Excepting surface tension, which does not apply to gases, Navier-Stokes
fully specifies fluid flow. Solving the full Navier-Stokes equations
is notoriously difficult and time-consuming, however, so the authors
chose to limit the problem by assuming an incompressible gas with
no viscosity. Additionally, the user may vary the smoke's density
and its temperature. Density controls the smoke's tendency to fall,
whereas temperature controls the smoke's tendency to rise. Solving
these simplified equations is fairly straightforward, but conventional
simulations run into difficulty with a phenomenon know as numerical
dissipation. Numerical dissipation is related to the finite resolution
of the simulation, and has the effect of smoothing out vortices
and other small, but highly visible details.
The solution that the authors proposed is to add the energy lost
to dissipation back into the simulation. The velocity vector field
of the smoke is examined, and areas of high vorticity, i.e. where
the smoke is swirling strongly, are isolated. The algorithm computes
the energy that would be lost to dissipation in these areas, and
then adds that energy back in after the simulation step is performed.
The result is a simulation with persistent vortices.
The demonstrations using this method were very impressive. Stam
first showed several demonstrations running in real time on a laptop
PC. In a two-dimensional demonstration, he moved a disc through
smoke streamlines, producing convincing turbulence. He even showed
a more limited demo of smoke running in real time on a Pocket PC.
Stam finished with higher resolution, three dimensional movies of
smoke billowing and flowing around a sphere.
Nick Foster of PDI/Dreamworks followed with a presentation on liquid
animation, done in collaboration with Ronald Fedkiw of Stanford.
The work was aimed at creating a flexible, three-dimensional liquid
simulation system for animation. The system has been proven in practice;
it was used to good effect in this summer's movie, "Shrek".
When simulating liquid, computer animators have access to a huge
literature of techniques from the computational fluid dynamics (CFD)
field. A straight translation of CFD research to animation will
give poor results, however, since CFD is concerned with physical
accuracy and not rendered appearance. Animators could care less
about physics, as long as the results look good. For the authors,
good looks mean the liquid has a good combination of "sloppy"
splashing effects and a realistic, smooth surface. To achieve good results,
the authors used the classic Navier-Stokes equations for incompressible
fluids, but made some physically unfounded assumptions when they
suited the end result.
When rendering fluids modeled by Navier-Stokes there are two natural
representations. The first is to model each cell of the simulation
as a particle. Particles are great for splashes and turbulence,
but do not give a perfectly smooth, calm surface. The second method
is to render an isosurface of the fluid density. An isosurface gives
an excellent smooth surface, but tends to smooth out detailed splashing
effects. The solution chosen by the authors is a hybrid of the two
approaches. The algorithm looks at the local curvature of the liquid's
surface to determine whether a particle, an isosurface, or a blended
combination of the two should be rendered.
The model also allows a user to arbitrarily set the velocity of
fluid particles and maintain realistic results. Rather than model
solid particles moving through the liquid and the accompanying friction
and physical effects, the authors simply treated the object as if
it were liquid. The velocities of the fluid particles that intersected
with the object were set and held to the velocity of the solid object.
The results speak for themselves, as anyone who has seen Shrek will
Gilles Debunne then presented a paper on real-time deformations
for simulation of elastic objects. The paper is a collaboration
of Debunne and Marie-Paule Cani of IMAGIS-GRAVIR, Mathieu Desbrun
of the University of Southern California, and Alan H. Barr of Caltech.
The research is targeted at producing realistic, dynamic deformations
for surgical simulations. Dynamic is this context means that the
object remembers its state and can continue to change shape and
oscillate after external prodding is stopped. Since the system is
targeted towards surgical simulation, it must support haptic devices
for interaction. A human can sense slow updates in a haptic device
all the way up to around 1000 updates per second, which puts stringent
limits on the performance of the deformation model.
The authors found that they could only model around 100 separate
points inside a solid before performance would degrade to unacceptable
levels. To maintain performance while getting an acceptable resolution
around the haptic device's position, the authors adopted a multiresolution
system for the deformable mesh. While the rendered mesh is maintained
at a high level of detail, the deformable mesh is greatly simplified.
When the haptic device deforms the mesh farther than can be acceptably
modeled by a coarse representation, the coarse representation is
replaced by a finer representation that can model the deformation.
A multiresolution solution sounds good on paper, but it runs into
several practical difficulties when applied to a dynamic setting.
The modes of oscillation of each resolution of mesh must match,
or else they cannot be combined effectively. The interface where
a coarse mesh gives way to a finer one must be bridged in a way
that allows forces to be transmitted between the meshes. The authors
solved the interface problem by overlapping the meshes. An overlapping
area between the meshes gives enough information to transmit forces
between the two. The multiresolution preserving vibration modes
were achieved with a combination of explicit finite element modeling
and a special dampening stage.
To demonstrate the algorithm Debunne poked and prodded a model of
a human liver, a gummy bear, and a fat man. Some popping was still
visible around the interface areas of the meshes, but that could
most likely be eliminating through morphing or some similar technique.
The last paper in the session was on work modeling
difficult conditions on rigid body collisions. Victor J. Milenkovic,
who authored the paper, along with Harald Schmidl, both of the University
of Miami, described one of the issues as the ping-pong paddle problem:
when you bounce a ball between a paddle and the table, as you bring
the paddle down to the table the ball begins to vibrate back and
forth very quickly. In a conventional rigid body simulation, several
collisions of this type can occur between time steps. Collisions
between time steps must be either ignored, giving poor simulation
results, or solved by breaking the time steps down further, giving
an inefficient algorithm. The goal of the authors' research is to
model many, crowded and bouncing rigid bodies, along the way, solving
the ping-pong problem.
The algorithm aims to model collisions in a plausible,
but not completely physically accurate way. To this end the algorithm
uses some heuristics in conjunction with its primary quadratic programming
solution. The algorithm can model non-convex bodies by decomposing
the bodies into several convex forms. By using a quadratic programming
solution, the algorithm can also correctly model objects that bounce
and break off from other pieces. These capabilities were shown off
by a demonstration of jacks falling into a box and of beads dropping
through an hourglass, bouncing around convincingly before settling
to the bottom.
SIGGRAPH 2001 Natural Animation page.