Underwater Caustics and Floating Cloth Simulations in Autodesk Maya

by CulpClassics in Design > Digital Graphics

69 Views, 0 Favorites, 0 Comments

Underwater Caustics and Floating Cloth Simulations in Autodesk Maya

Caustic.gif
Screenshot 2026-01-01 215504.png

Underwater caustics are notoriously difficult to do in computer graphics (CG). Those dancing lights that one might see at the bottom of a swimming pool or on the ocean floor are difficult, slow and computationally heavy to render. But underwater scenes feel empty without them so......

It's best to fake underwater caustics and In an effort for not one more CG artist needlessly be afraid of underwater shots I created a small scene in Maya showing off this easy trick and combined it with a neat simulation of a cloth to hint at a little story. Soon, you'll want to set all of your CG scenes underwater simply because of how easy it is to make mesmerizing caustics.


In this Instructable, I will go over the trick to faking caustics and the basics of nCloth simulations in Maya. This guide assumes you have basic knowledge of Maya and is great if you are looking to add caustics to your underwater scenes or if you are looking to learn a bit about nCloth simulations.

Supplies

Software:

Autodesk Maya: I chose to use Maya with the Arnold renderer but the broad strokes for creating a similar scene will apply to other 3D software or rendering engines.

Davinci Resolve (optional): used to adjust colors and composite particles over the scene.


Maya along with the Arnold renderer is free for students and can be found here

Davinci Resolve has a robust free version and can be found here


Digital Assets:

We will need to find or create:

  1. Caustic Animation Sequence
  2. Physically Based Rendering (PBR) Materials
  3. Dust particles (optional)

Gobos (the Trick to Caustics)

Preface/History

The trick to faking caustics is remarkably simple. We simply block a spotlight using what is called a "gobo", which cast's the desired pattern onto our scene's floor. Which avoids the costly calculations of water refraction.

Gobo is not just some random CG term in fact it comes from theater stage lighting where a thin metal disk would be put into a spotlight to cast interesting shapes onto a stage.

As someone who is coming from the live-action film world I find it really helps to think of things like you were on a film set when approaching CG renders (if you are going for realism). That is why I find this trick so cool, it mimics our techniques in real life. Except in real life our gobos aren't animated which is key to making those mesmerizing underwater patterns.

Making Gobo Spotlights in Maya

Caust_0001.png
CausticsViewport.png



Finding a Caustic Gobo

You will first need a caustic image sequence (a video stored as individual frames), you can use this one I made or feel free to find or create your own using a caustics generator.

Make sure to keep the image sequence in its own folder (and not saved in OneDrive) for things to work properly. We will be using the black and white data to determine which parts of the spotlight are blocked.

Once you have your caustic image sequence we are ready to hop into Maya.


Steps to Create the Caustic Effect Spotlight:

  1. Create a spotlight
  2. Navigate to the spotlights attribute editor
  3. Adjust exposure using the Arnold dropdown. Since we are rendering in Arnold it is critical you make changes to exposure under the Arnold dropdown.
  4. Under the Arnold dropdown add a "Gobo" Light Filter
  5. In the attribute editor navigate to the created "aiGobo1"
  6. Click on the checkered box next to "Slide Map" under Gobo Attributes
  7. In the popup "Create Render Node" click "File"
  8. Under the created files "File Attributes" navigate to the directory that contains your caustic image sequence and select the first frame
  9. Make sure to enable the checkbox "Use Image Sequence" to import the animation.
  10. You now have a caustic making spotlight! Make sure to turn on render view to see it's effects


NOTE: If you ever get lost at any point in this process remember that the attribute editor will show all the attributes associated with your object and you can likely pick up the steps from there or make changes to your light later in the process.

Cloth Simulation

ClothSim.gif
nCloth.png

Next we want to make our nCloth simulation.

This I also find best to think about as if it were real I find I have better results if I start with a mesh that isn't perfectly flat to begin with (like a real cloth) I use soft select (key-bind: "B") to deform my cloth's vertices before it even starts.

I find physics simulations so satisfying and I love to see my finished cloth simulation gently float down.


Steps:

  1. Create a plane (in this case I want mine to be a rectangle to look like a flag)
  2. Subdivide it a few times so it has geometry to deform with
  3. Create nCloth from your plane mesh (this function is easiest to find on the the FX shelf)
  4. Depending on what look you are going for the presets can be helpful, in my case I chose the silk preset
  5. You may notice in your outliner there is a new object called "nucleus" this controls the system wide attributes of your nCloth simulation in your scene. For my underwater scene I decided to lower the gravity to make it look like it was slowly floating down underwater and I played with a bit of ambient wind pushing it up. I also added noise into the wind to make it more realistically unpredictable.
  6. If you want more control over the air being blown I would recommend adding an "air" object which can found in the hotbox menu (by holding space) and looking under "Fields/Solvers". I used these to have a bit more control over how my cloth floated down to the sea floor.
  7. When you are happy with how it looks I would recommend you bake it to keyframes, I found this is a good way to avoid trouble. (the referenced video isn't mine but does a great job explaining how to bake)

Play With It!

HaveFun.png
TrackignShot.gif

Now is time for the most fun part!


Playing Around with it!

Finish making your scene by adding materials or objects and then start playing around with it. Have fun!

I wanted my simple little scene to sort of evoke the idea of the end of piracy (hence the sinking pirate flag) so I played around with shots until a found a few that helped tell that story.

I am particularly proud of the tracking shot as the flag falls, the way the camera overshoots the landing a bit makes the impact feel particularly final. I wanted it to feel as if a camera operator was a bit slow following it. I think it really makes the shot feel really alive!

Put simply play around with your scene and think of the story you want to tell. It's virtual action figures- how fun!


For those wondering I used these free materials: sand, cloth, pirate image


Rendering and Polish

DavinciResolve.png
Rendering.png

Rendering it and Final Post Effects

Before I rendered I decided to add a volume effect to give the scene "God rays" and match the underwater look more. This is easily added by going into the Arnold render settings and under environment adding a "aiAtmosphereVolume" and playing around with the values.


After rendering, I tuned the colors in Davinci Resolve and I also figured that some atmospheric underwater particles would really sell the look so I added some as an overlay.

While post processing is listed as optional I beg you do not skip this step! An artist gains such great control to pull out particular colors or want to add effects like the dust particles in post that it can really pull your renders together.

Victory/Show Off!

The End of Piracy (Caustics and nCloth in Maya final showcase)

I hope you enjoyed this guide and I hope I have equipped at least one CG artist out there to conquer their fear of caustics. Now go make and make that awesome underwater scene you've been dreaming of!


Thanks for reading!