When creating a surface submerged in sea water,
Theoretically, it’s the Volume Absorption or ‘Fog‘ of the water shader that should do cause the surface to disappear under water.
But in many cases that doesn’t work well because we don’t actually model enough extended surface under the water for it to completely disappear without seeing the surfaces geometric edges that spoil the result.
One of the oldest tricks in the book is to use a Gradient Ramp map in the surface’s Opacity channel to make it gradually disappear before the geometry ends.
This can be done in most 3d software and render engines, I’m demonstrating it here using 3ds max and V-Ray:
I decided to do some test renders for an underwater swimming pool scene with 3ds max and V-Ray,
And happily found out that my initial geeky academic approach to the subject was actually outdated and unnecessary. > look down at the bottom for the correct sample renders.
In this example there is a VRaySun & VRaySky for the daylight render setup and a Caustics calculation to create the light lensing effects on the under water surfaces.
The wrong way:
Having ancient habits in the subject,
I first flipped the water\air surface’s normals so they’ll point down into the water (towards the camera), And set the water material’s IOR to 0.75 ( 1 / 1.333 ) so instead of being an “air to water” material, it will become a “water to air” material.
This produced a non realistic result.
Viewed from underwater, the air surface should have a very dominant mirror reflection at most angles.
The Correct Way:
It seems that in V-Ray nothing special should be setup in terms of the water material.
You don’t have to create a special water-to-air material like I thought at first.
Its a regular water material, and the water surface is facing upwards like it should,
And when the camera is underwater it renders the water surface correctly as an air surface from withing the water.
The pool water material setup:
Note that Affect Shadows is turned off so the surface will generate caustics and not fake transparent shadows, and that Reflect on back side is turned on to produce more detailed reflections.
This produced the following result in which the reflection/refraction look correct but the water is still too simple:
Improved wave deformation for the water surface, added detail using a Noise bump in the water material and a sense of depth with Volumetric Fog:
Finally remembered to activate Reflect on back side at the water material to add more realistic reflection detail, some basic contrast in the V-Ray VFB,
And a shark because I couldn’t help it…. 😀
An account of the drastic measures that need to be taken in order to ‘persuade’ Arnold for Maya to render refractive caustics.
In the refractive object’s shape attributes,
Under ‘Arnold’, ‘Opaque’ must remain checked.
* This is unintuitive but when refractive caustics are calculated there is no need for transparent shadows. the caustics pattern is in fact the light refracting through the object.
The refractive object’s aiStandardSurface shader must have it’s Transmission layer active.
For a colored refractive object, Transmission Weight should be 1.0,
A color should be selected, and the density of the color should be controlled with the Depth attribute (higher values make the color less dens).
In the shader’s advance attributes, check ‘Caustics’.
In the shader’s Specular layer, set the IOR to match your material.
* The default of 1.52 is the IOR for glass, and water would be IOR 1.33 for example.
For refractive caustics to be rendered, the light source must be an Arnold Mesh Light,
And in its shape attributes, under Light Attributes‘Light Visible’ must be checked.
In many cases, in order for the caustics pattern’s intensity to be correct,
The ‘Indirect Clamp Value’ must be raised in Render Settings > Arnold Renderer, under Clamping.
In some cases the Transmission value under Ray Depth in Render Settings > Arnold Renderer must be increased for the caustics to render properly.
* Light simulation must be able refract through all the relevant surfaces.
To increase the caustics render quality, the number of Diffuse samples must be raised in Render Settings > Arnold Renderer.
* This may be unintuitive, but the caustics pattern is actually part of the Diffuse rendering of the surface upon which the caustics are appearing.