Caustics: Dropping the Cow into A Pool of Water
Caustics: Dropping the Cow into A Pool of Water

by Jim Tierney, Digital Anarchy, Palo Alto, Ca, USA
©2001 Jim Tierney. All Rights Reserved. Used at by kind permission of the author.

Article Focus:
In this tutorial, Jim Tierney creates the effect of an object dropping into water, using the Caustics and WaveWorld filters in Adobe After Effects.

First: Download the project files here: Mac Windows

To start off with, we'll import the pool_bottom.psd file. This will act as the bottom of the pool of water, that we'll be dropping our object into. In this case it looks like a bunch of pool tiles, but the bottom could be rocks or sand or whatever. Caustics can use any image you can import into AE as a source for the 'pool bottom', it doesn't have to be a Photoshop file.

Now we'll use WaveWorld to create the source for the water surface. This is what acts as a displacement map and causes the watery distortions.

Create a new comp.

Create a new solid

Apply WaveWorld to the solid.

You'll notice that by default we're in 3D Wireframe mode. You can use this to see how the height map that WaveWorld generates will affect the water surface. Feel free to play with this on your own, but we won't be looking at it in this tutorial.

So, first off, change 'View' to Height Map. This changes the rendering mode to produce a grayscale image we'll use as the source for the water surface.

At first, you won't see anything... but move forward in the timeline and you'll see waves eminate from the center. The Waves are controlled by the producer points, in this case Producer Point 1. Open up the section on Producer Point 1.

Move the Time Marker to 01:00, so we can see some waves.

Since the object we'll be dropping into the water is longer than it is wide, we want to make the waves somewhat oblong. This can be accomplished by changing the height to .15. The wave is now stretched along the Y axis.

An object dropped into water doesn't continuously create splashes. It hits the water surface, creates a splash, then sinks, and that's the end of it. Unless it floats, of course, but that's not what we're doing here.

So we need a way to stop the creation of ripples.

The Amplitude controls the height of the ripples. By keyframing this to zero, we can effectively turn the ripples off, after the first few have been created.

Move to frame 18, 00:18, and set a keyframe for Amplitude. The default value of .500 is fine. Move forward to 00:20, and set Amplitude to zero, this sets another keyframe.

If you now move forward in the timeline, you can see that this creates a few waves that sputter out around the 3 second mark.

So far so good. Move the Time Marker back to frame 20.

You'll notice that our waves look a little pixelated. It looks kind of 'blocky', like jpeg artifacts or something.

Since WaveWorld actually generates a 3D mesh for the surface, it matter how many polygons make up the surface (you can see this if you play around with the Wireframe Preview rendering mode). To bump up the resolution of the grid, twirl the Simulation arrow down, and set Grid Resolution to something like 100 or 150.

You'll notice the blocky artifacts go away and we're left with nice smooth grayscale waves.

The way everything should look, one second out.

Pre-comp this as 'WaveWorld map' and we're ready to get rolling with Caustics.