This operator simulates marine water of variable depth and visibility.
The operator does not contain any intrinsic bump mapping. Instead, it is meant to partner well with the Waves displacement operator, which provides a solution for a mix of rolling waves and choppy water.
The most important parameter is Water Depth (
determines the color of the water: lighter where the water is shallow,
and darker where the water is deep. Ideally, you will create a float
Point attribute called
waterdepth using the AttribCreate SOP in the
Geometry module, and will assign it to the geometry representing the
water surface. This will allow you to vary the depth of the water at
each point on the surface.
The Weed inputs (
weedamount) add more realism
to the water and can be used to simulate anything from algae to coral
reefs and underwater rocks. The weed pattern will always be confined to
the mid-depth layers – never too close to the beach or too far into the
This operator does an internal computation of reflectivity using a faux
Frenel method that gives you more control over the behavior. To add a
reflective material, such as Cloud Environment, to the water surface,
multiply the color output of that environment by the Reflectivity Amount
reflect) output of this operator, then add the result to the Color
color) output of this operator to obtain the final color.
If the Position (
P) input and the Normal (
N) input are not connected,
the global variables by the same names will be used instead. Typically
you will use Rest Position or UV Space Change as inputs for
will not touch
N unless you want to apply additional displacement to
the water surface using an operator such as Waves, although, even then,
we recommend that you use Waves as a separate displacement shader
instead of a bump map. If you do need to access the global variables
directly, they are available from the Global Variables operator.