Fluid Caustic Volume Shader Setup for Maya 2014

Fluid Caustic Volume Shader Setup for Maya 2014

david allen, updated over 11 years ago 59,361 views Rating:
(4 ratings)
Page 1 of 8

1. Overview

This tutorial walks through the process of creating caustic effects in Autodesk Maya 2014 x64, using advanced shader techniques. It will be most useful to artists who already know some Maya basics: modeling, assigning materials, using the Channel Box, Attribute Editor (CTRL + A), Hypershade Window (Window > Hypershade: Hierarchy), and performing rendering operations (Render Current Frame, Batch Render, IPR, etc.)

Two key shaders we will be using for caustic effects:

  1. “parti_volume”—this will be attached both to the shape that defines the volume for all caustic effect calculations, as well as the camera that will see them for rendering

  2. “parti_volume_photon”—defines which surfaces will dissipate volume caustic photons into the calculation volume when struck by reflected and refracted caustic photons

Basic process for caustics effects: cast virtual photons from a light into a volume with (a) “parti_volume” shader assigned to it to define the photon boundary for the effect. Photons cast from that light will be refracted or reflected by (b) semi-transparent surfaces that have raytrace refractions enabled (which in this case is also deformed with an ocean shader for the water look), casting refractive and reflective caustics onto scene geometry. That same semi-transparent surface can also dissipate volume caustic photons if it also has (c) a mental ray “parti_volume_photon” shader attached. (NOTE: If you would like a light to cast volume caustics into the area above the water [i.e: for dust/light fog in the environment], you would have to put another plane directly in front of the light source to generate these photons). Caustic photons are then caught by (d) a "potonBoundary" geometry (a cube primitive with inside-out normals works fine) which has a reference to the "parti_volume" shader, then rendered by the mental ray renderer though (e) a camera that also has a reference to the same “parti_volume” shader.


Final render — video

To give credit where credit is due, the main motivation for this tutorial was the realization that volume shaders are not very well documented anywhere, and it was a real struggle to find tutorials online. I found the process so frustrating that I wanted to try and make it easier for the next poor sap that wants to make caustic effects. As a result, I cobbled this tutorial together using various others I found online, then did some rigorous testing, pulling apart different elements until I pared the process down to its core fundamentals. Tutorials I drew data from include:

NOTE: caustics do not combine easily with 3D Fluid simulations using the Mental Ray renderer. One possible work-around is to render out each effect separately and composite in post-processing. Check out a Creative Crash post on this issue  to see if anyone else has found other work-arounds.

Comments

  • david allen · 2014-05-14
    This is my first tutorial on CC, and look forward to hearing everyone's feedback!
  • david allen · 2014-05-20
    The setup file has been approved! Please use the link in the tutorial from now on — http://www.creativecrash.com/maya/downloads/scene-files/c/causticsautodesk2014x64_02-0-0_scenesetup-ma  (I'll be removing the file from gDrive soon). Thanks!
  • david allen · 2014-05-29
    Wow. 1,345 views already. Has anyone had the chance to try it yet? Would love to hear your thoughts.
  • tomkinsart · 2015-02-05
    Dude wow! That was so awesome thanks so much!!! So clear. Only thing that got me was on page 6 the scattering took me a while to realise that number was a light/darkness value. Thanks again!
  • david allen · 2015-02-05
    My pleasure! I added some comments on pp. 6–7 which should explain that better to the next person who reads it. Thanks for the feedback!
  • FINALCUT123 · 2015-03-05
    goood vey good
  • david allen · 2016-06-05
    My pleasure… and sorry for the slow response. I've been busy.
Sign in