Go to: Attributes.

The Ocean texture can be used to simulate a range of water wave patterns, from small scale waves in a bathtub to large stormy sea swells. It is designed to be used as a displacement map. It is recommended to turn off feature based displacement on objects (assigned the shader) before applying as a displacment. This sets up a bump node in addition to the displacement, allowing one to keep the number of triangles low. The time parameter must be animated to see wave motion. This texture is procedurally defined internally using Perlin noise and sin waves that are driven by the time parameter.

Aside from the attributes listed here, Ocean inherits many other attributes from its parent node, Texture2d.

In the table below, important attributes are shown in bold in the description column.

This node is MP safe

Node nameParentsClassificationMFn typeCompatible function sets
oceantexture2dtexture/2d:drawdb/shader/texture/2d/oceankOceankBase
kNamedObject
kDependencyNode
kTexture2d
kOcean

Attributes (26)

colorMode, foamEmission, foamThreshold, numFrequencies, observerSpeed, outFoam, scale, time, waveDirSpread, waveHeight, waveHeight_FloatValue, waveHeight_Interp, waveHeight_Position, waveLengthMax, waveLengthMin, wavePeaking, wavePeaking_FloatValue, wavePeaking_Interp, wavePeaking_Position, waveTurbulence, waveTurbulence_FloatValue, waveTurbulence_Interp, waveTurbulence_Position, windU, windUV, windV

Long name (short name)TypeDefaultFlags
time (ti) float0.0outputinputconnectablestorablekeyable
Time is used to animate the Ocean texture. You can keyframe the Time attribute to control the rate and amount of change of the ocean texture in your scene. This value represents seconds for a water surface at the given scale value. Thus typing the expression "= time" into the edit cell will create approximately correct animation speed relative to the scale.
scale (sc) float10.0outputinputconnectablestorablekeyable
Scale controls the defined size in meters that corresponds to the texture space 0-1 in UV( for default texture placement settings ).
windUV (wi) float21.0, 0.0outputinputconnectablestorable
Wind UV controls the (average) direction that the waves will travel, simulating the effect of wind. This is expressed as U and V values, in the UV texture space. Note: animating this parameter will cause unnatural motion, and should be avoided.
windU (wiu) float0.0outputinputconnectablestorablekeyable
The U component of the wind direction
windV (wiv) float0.0outputinputconnectablestorablekeyable
The V component of the wind direction
observerSpeed (os) float0.0outputinputconnectablestorablekeyable
Observer Speed is useful when you don't want the waves to move transversely. It cancels out transverse wave motion by moving a simulated observer. This is similar to animating the uvOffset of the texture relative to the wind direction. When Observer Speed is 1.0 the primary waves will not appear to travel because the viewer is moving at the same speed as the waves. The secondary waves will still move relative to the primary ones.
waveDirSpread (wd) float0.2outputinputconnectablestorablekeyable
WaveDirSpread determines the variance in wave direction with respect to the wind direction. If it is zero, then all waves travel in the same direction. If it is one, then waves will travel in random directions. Inconsistency of the wind direction along with other effects like wave refraction tend to cause a natural variation in wave direction.
numFrequencies (nf) float3.0outputinputconnectablestorablekeyable
NumFrequencies controls the number of interpolated frequencies between waveLengthMin and WaveLengthMax Note: the higher this value, the longer this texture takes to compute. If this value is not an integer, then the number of created frequencies will be the rounded up value, but the amplitude for the extra frequency will be proportional to the remainder( ie .25 for 8.25 ) This allows this parameter to be smoothly animated.
waveLengthMin (wlm) float0.3outputinputconnectablestorablekeyable
WaveLengthMin controls the minimum length of waves in meters. This is either the upper or the lower wavelength bound.
waveLengthMax (wlx) float4.0outputinputconnectablestorablekeyable
WaveLengthMax controls the maximum length of waves in meters. This is either the upper or the lower wavelength bound.
waveHeight (wh) compoundn/aarrayoutputinputconnectablestorablekeyable
WaveHeight controls the size of waves relative to their wave length. If the value is 1.0, then the waves are half as tall as they are long. The left edge of the graph represents waves with the shortest wavelengths and the right edge represents waves with the longest wavelengths( as determined by WaveLengthMin and waveLengthMax) If the graph is a horizontal line, then all waves will exactly the same height proportional to their length.
waveHeight_Position (whp) float0.0outputinputconnectablestorablekeyable
Position of ramp value on normalized 0-1 scale
waveHeight_FloatValue (whfv) float0.0outputinputconnectablestorablekeyable
Ramp value at the sibling position
waveHeight_Interp (whi) enum0outputinputconnectablestorablekeyable
Ramp Interpolation controls the way the intermediate values are calculated. The values are:
    None: No interpolation is done; the different colors just show up as different bands in the final texture.

    Linear: The values are interpolated linearly in RGB color space.

    Smooth: The values are interpolated along a bell curve, so that each color on the ramp dominates the region around it, then blends quickly to the next color.

    Spline: The values are interpolated with a spline curve, taking neighboring indices into account for greater smoothness.

waveTurbulence (wtb) compoundn/aarrayoutputinputconnectablestorablekeyable
WaveTurbulence controls the amount of turbulence at different wave frequencies. For values of 1.0 the wave motion will be completely turbulent at the defined frequency. The left edge of the graph represents waves with the shortest wavelengths and the right edge represents waves with the longest wavelengths( as determined by WaveLengthMin and waveLengthMax) This is the most computationaly expensive attribute. Making it zero will speed up renders significantly, although it is important for simulations of stormy or windy water. The peaking parameter only affects the turbulent wave layer, so there will be no affect from the peaking parameter wherever this value is zero.
waveTurbulence_Position (wtbp) float0.0outputinputconnectablestorablekeyable
Position of ramp value on normalized 0-1 scale
waveTurbulence_FloatValue (wtbfv) float0.0outputinputconnectablestorablekeyable
Ramp value at the sibling position
waveTurbulence_Interp (wtbi) enum0outputinputconnectablestorablekeyable
Ramp Interpolation controls the way the intermediate values are calculated. The values are:
    None: No interpolation is done; the different colors just show up as different bands in the final texture.

    Linear: The values are interpolated linearly in RGB color space.

    Smooth: The values are interpolated along a bell curve, so that each color on the ramp dominates the region around it, then blends quickly to the next color.

    Spline: The values are interpolated with a spline curve, taking neighboring indices into account for greater smoothness.

wavePeaking (wp) compoundn/aarrayoutputinputconnectablestorablekeyable
WavePeaking controls the amount of crest formation for waves across the range of wave frequencies. This simulates a side to side sloshing of waves, as opposed to up-down motion. When this parameter is non-zero many more evaluations of the noise function are performed, and thus the computation speed will be affected. Also the waveTurbulence function must be non-zero for this parameter to have an effects, as it is only applied to the turbulent waves.
wavePeaking_Position (wpp) float0.0outputinputconnectablestorablekeyable
Position of ramp value on normalized 0-1 scale
wavePeaking_FloatValue (wpfv) float0.0outputinputconnectablestorablekeyable
Ramp value at the sibling position
wavePeaking_Interp (wpi) enum0outputinputconnectablestorablekeyable
Ramp Interpolation controls the way the intermediate values are calculated. The values are:
    None: No interpolation is done; the different colors just show up as different bands in the final texture.

    Linear: The values are interpolated linearly in RGB color space.

    Smooth: The values are interpolated along a bell curve, so that each color on the ramp dominates the region around it, then blends quickly to the next color.

    Spline: The values are interpolated with a spline curve, taking neighboring indices into account for greater smoothness.

foamEmission (fme) float0.0outputinputconnectablestorablekeyable
FoamEmission Controls density of foam generated above the foam threshold. The foam value is output to the outFoam attribute, which can be used to define opacity of a layered foam shader.
foamThreshold (fmt) float0.51outputinputconnectablestorablekeyable
FoamThreshold Controls the wave amplitude required to generate foam as well as how long the foam lasts.
colorMode (cmd) enum0outputinputconnectablestorable
Decide what to output to the color channel, the normalized waveheight, foam, or waveHeight in blue green with white foam.
outFoam (ofm) float0.0outputconnectable
Out Foam is the output foam density value computed by the texture. Use this value to control the density of a layered foam shader. If applied to transparency, the value should be first inverted.