We present a comprehensive methodology for realistically animating liq
uid phenomena. Our approach unifies existing computer graphics techniq
ues for simulating fluids and extends them by incorporating more compl
ex behavior. It is based on the Navier-Stokes equations which couple m
omentum and mass conservation to completely describe fluid motion. Our
starting point is an environment containing an arbitrary distribution
of fluid, and submerged or semisubmerged obstacles. Velocity and pres
sure are defined everywhere within this environment and updated using
a set of finite difference expressions. The resulting vector and scala
r fields are used to drive a height field equation representing the li
quid surface. The nature of the coupling between obstacles in the envi
ronment and free variables allows for the simulation of a wide range o
f effects that were not possible with previous computer graphics fluid
models. Wave effects such as reflection, refraction, and diffraction,
as well as rotational effects such as eddies, vorticity, and splashin
g are a natural consequence of solving the system. In addition, the La
grange equations of motion are used to place buoyant dynamic objects i
nto a scene and track the position of spray and foam during the animat
ion process. Typical disadvantages to dynamic simulations such as poor
scalability and lack of control are addressed by assuming that statio
nary obstacles align with grid cells during the finite difference disc
retization, and by appending terms to the Navier-Stokes equations to i
nclude forcing functions. Free surfaces in our system are represented
as either a collection of massless particles in 2D, or a height field
which is suitable for many of the water rendering algorithms presented
by researchers in recent years. (C) 1996 Academic Press, Inc.