Rapid, stable fluid dynamics for computer graphics

  • Authors:
  • Michael Kass;Gavin Miller

  • Affiliations:
  • Advanced Technology Group, Apple Computer, Inc., 20705 Valley Green Drive, Cupertino, CA;Advanced Technology Group, Apple Computer, Inc., 20705 Valley Green Drive, Cupertino, CA

  • Venue:
  • SIGGRAPH '90 Proceedings of the 17th annual conference on Computer graphics and interactive techniques
  • Year:
  • 1990

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a new method for animating water based on a simple, rapid and stable solution of a set of partial differential equations resulting from an approximation to the shallow water equations. The approximation gives rise to a version of the wave equation on a height-field where the wave velocity is proportional to the square root of the depth of the water. The resulting wave equation is then solved with an alternating-direction implicit method on a uniform finite-difference grid. The computational work required for an iteration consists mainly of solving a simple tridiagonal linear system for each row and column of the height field. A single iteration per frame suffices in most cases for convincing animation.Like previous computer-graphics models of wave motion, the new method can generate the effects of wave refraction with depth. Unlike previous models, it also handles wave reflections, net transport of water and boundary conditions with changing topology. As a consequence, the model is suitable for animating phenomena such as flowing rivers, raindrops hitting surfaces and waves in a fish tank as well as the classic phenomenon of waves lapping on a beach. The height-field representation prevents it from easily simulating phenomena such as breaking waves, except perhaps in combination with particle-based fluid models. The water is rendered using a form of caustic shading which simulates the refraction of illuminating rays at the water surface. A wetness map is also used to compute the wetting and drying of sand as the water passes over it.