click here to go to my homepage

Shannon Thomas Greenwood - Better with Bubbles!

We published a paper based on my thesis work! click here for the paper in pdf form(6.2 Mb) 

S. Greenwood, D. House. Better with Bubbles: Enhancing the Visual Realism of Simulated Fluid, Proceedings of ACM SIGGRAPH/Eurographics Symposium on Computer Animation 2004

click here to go to a site that has links to ACM SIGGRAPH/Eurographics Symposium on Computer Animation 2004 papers on the web

All of the simulation and rendering is coded by me in C++.

you can view the above movie with this link(6 Mb)

you can view the above movie with this link(6 Mb)

also you can the same movie without bubbles if you click here (6 Mb)


Click on this link to view a copy of my thesis: The Incorporation of Bubbles into a Computer Graphics Fluid Simulation(pdf 1.5 Mb). It has more details than the above paper.


Summary:

1. I implemented the fluid simulation described [1]. This uses a stable solution to the navier stokes equations for fluid velocities. The fluid surface is represented by a level set with marker particles on both sides of the fluid surface.

2. Marker particles that are too far escaped from the outside to the inside are used to create bubbles.

3. I extended foam the simulation methods described in [2] to handle fluid situations in simulation and rendering

Primary References:

1. ENRIGHT, D., MARSCHNER, S. and FEDKIW, R. 2002. Animation and Rendering of Complex Water Surfaces. In Proceedings of ACM SIGGRAPH 2002, 736-734. (pdf can be found a Ron Fedkiw's website)


2. KÜCK, H. VOGELGSANG, C., and GREINER, G. 2002. Simulation and Rendering of Liquid Foams. In Proceedings of Graphics Interface 2002, 81-88. (free pdf can be found at Graphics Interface 2002 website)


Misc. images:

click an image to view higher resolution image... and yeah, I know I didn't implement aliasing from specular reflections.
Arbitrary spherical objects are rendered to appear as contiguous foam. Simulated fresnel reflections on one bubbles and then two bubbles.
Ambient term used when three bubbles overlap.
For small clusters, and ambient term is unrealistic, so another method was devised.

Hierarchy of surfaces: water(left), bubble(top), glass(right)

Fluid sphere(left), bubble(middle), fluid cube containing bubble(right)


Debugging:
· For rapid prototyping of parameters (for 3d sim. seen in 1), I used 2D tests.
· I used OpenGL to visualize marker particles, fluid velocities, and the level set’s signed distance function for debugging purposes.

normal cell types velocities particles level set

Click here or on an image to see higher resolution images

click here for a movie showing different visualization modes (note that red velocities look strange because of video compression artifacts)

this movie uses the divx codec


Particle - Level Set Testing:

I tested my level set by simply moving a 2 dimensional disk with a uniform velocity.

no reinitialization, no particle correction with reinitialization, no particle correction no reinitialization, with particle correction with reinitialization and particle correction

click on each images to see a movie of what happens in each case... each movie uses the divx codec and is about 3 Mb. The signed distance function is only maintained locally to the surface in this test.

Without reinitialization and particle correction the level set gets so damaged that it is no longer effected by the velocities. With only reinitialization, the level set loses volume until the entire disk disappears. With only particles, the particles keep the level set in roughly the correct shape, but it is not smooth... or a signed distance function. With both corrective measures, the disk moves correctly across the screen.