siggraph-2009After lunch, I went back to Auditorium B to take in the “Splashing in Pipelines” Taslk.  There were four presentations:
  • Non-Reflective Boundary Condition For Incompressible Free-Surface Fluids
  • An Efficient Level Set Toolkit for Visual Effects
  • Water-Surface Animation for “Madagascar: Escape 2 Africa”
  • Underground Cave Sequence for “Land of the Lost”

The talks were far more technical than I had expected, but I took notes to share the knowledge with all of you.  Read the details after the break.

First up was Andreas Soderstrom to talk about non-reflective boundary conditions.  He opened showing a simple fluid simulation of a water droplet in a tiny body of water, and showing how the reflections created a squarish interference pattern in the water.  He showed modifications of the Navier-Stokes equations to include explicit dampening and implicit dampening parameters, both of which reduced the amplitude of the interference pattern but failed to remove it entirely.

He finally showed his proposed algorithm which he called “Wave absorbing boundaries” which damped the flux vectors, rather than the velocity.  The details involved a lot of frequency-space arithmetic and imaginary numbers, but the result eliminated the interference patterns almost entirely.  The penalty for this: a 1.7x slowdown due to the extra computation.  However, this isn’t as bad as it sounds because to eliminate the interference patterns using the traditional velocity dampening methods requires a grid so much larger that it actually runs slower.

His algorithms will be shared in an upcoming paper “A PML Based no-reflective boundary for free surface simulation”, currently under review.

Next up was Ken Museth with Digital Domain and Dreamworks, discussing a level-set toolkit for visual effect work.  In it he discussed a new level-set tool based on DB-Grid which added several new capabilities such as random insertion and deletion, and an improved memory footprint.  The results were impressive, and were used in the Pirates of the Caribbean 3 waterfall scene and in the statue shattering action sequences of the third Mummy movie.

Next was Jason Waltman and Ron Henderson from Dreamworks to talk about the water-surface animation techniques used in Madagascar: Escape 2 Africa.  If you haven’t seen the movie yet, the primary setting of the film is around an african watering hole, and one of the big scenes is a moonlight dance in the watering hole performed by a group of hippo’s.

For performance reasons, they decided against a typical 3D Navier-Stokes simulation approach and instead opted for a 2D method, since they had no significant splashes. Their approach uses two simulations: a nonlinear shallow water equation, and a linear wave equation.  The nonlinear equation used a high-resolution Reimann solver with a minmod flux limiter and output geometry, using obstacles represented as point-data as input.  The linear wave equations used a center finite difference for a completely image-based approach.  The result of these was that they could use a low-resolution mesh with the nonlinear equations to compute large effects on the water, with a high-resolution linear wave equation to compute the fine ripples.  All of this could be run in tens of milliseconds, making it highly interactive.

The last presentation was from David Horsley and Lucio Flores of Rhythm & Hues, talking about the “Mystery Cave” sequence of Land of the Lost.  This shot is near the beginning of the movie when Will Ferrel finally discovers the entrance to the Land of the Lost and is taken on a brief wild raft ride before plunging over a waterfall into the dimensional vortex.

To do this they needed a high-resolution, high-speed water flow simulation that was stable over the run.  The technique they used computed five separate levelsets with water surface, velocity, and gradients for each, all done with Houdini10.  The five level sets were combined into a single solid.  Then they advected particles along the surface to create foam, and birthed particles in areas of high curvature to create splash effects.  The resulting simulation required 5 dedicated machines (2.2hz Quad Cores with 8G Ram), and ran the 1500x96x300 simulation at approximately 15minutes per frame.

And that’s the Recap.  Anyone who was there, did I miss anything?