ocean spectrum
This node generates physically accurate, procedural ocean waves based on ocean wave spectrum models using inverse Fourier transformation. It produces realistic wave motion by simulating how energy is distributed across different wave frequencies and directions - replicating the behavior of natural ocean surfaces.
There are no limits to the number of spectrum nodes you can connect to a single Ocean Simulation, allowing artists to layer and combine multiple spectra for maximum control and detail. This enables you to craft everything from calm shorelines and wind-driven choppiness to stormy seas—all within a single, unified simulation.
Additionally, multiple spectra can be blended using a Perlin noise mask, providing smooth spatial variation across the ocean surface. This allows for localized differences in wave behavior, such as combining long ocean swells with areas of smaller wind ripples—perfect for adding natural irregularities or creating stylized transitions between wave patterns.
Whether you`re aiming for large-scale cinematic shots or stylized water motion, the Ocean Spectrum node gives you the freedom, realism, and control to shape your ocean directly inside the 3ds max exactly as you envision it.
[Inputs]
#Ocean - Choose Ocean Sim from the list, or connect to the input pin.
Grid
Resolution - Defines the resolution of the spectrum grid in terms of wave frequency detail. This value is internally treated as a power of two:
- A value of 9 results in a 512 × 512 grid
- A value of 10 results in a 1024 × 1024 grid
Higher resolution allows for a broader frequency range and produces finer details and more dynamic wave motion.
Size - Controls the real-world size that the spectrum grid is mapped to. For example:
- If Resolution is set to 10 (1024) and Size is also 1024, the result is a 1:1 ratio, where each grid cell corresponds to 1 unit.
- If Size is 1024 and Resolution is 7 (128), the spectrum will tile across the surface 8 times.
Height - Adjusts the vertical scale of the spectrum`s wave displacement. Use this to control how tall or flat the waves appear without affecting their frequency or speed.
Center - Defines the origin point (position) of the spectrum. Changing any of the X, Y, or Z components will shift the entire wave pattern accordingly, allowing you to reposition the ocean surface over time.
Gravity - Controls the gravitational acceleration used in the wave simulation. This affects wave propagation speed and shape. Real-world gravity is around 9.81, but you can adjust this for artistic control.
Seed - Sets the random number seed used to generate the spectrum`s initial wave patterns. Changing the seed produces different wave shapes while keeping all other parameters the same.
Shape
Spectrum Type - Choose the wave model used to generate the ocean surface. Each model is based on different physical assumptions:.
- Phillips - A classic model for simulating fully developed, wind-driven ocean waves. Best suited for open ocean conditions with long-range waves.
- TMA - An enhanced model that introduces additional real-world parameters like fetch and depth, offering more flexibility and control in shaping wave behavior.
Random Type - Controls how randomness is introduced into the spectrum.
- Uniform - Applies uniform random numbers to all frequencies.
- Gauss - Uses a Gaussian (bell curve) distribution, resulting in more natural and varied wave patterns.
Wind Speed - Defines the intensity of the wind that drives wave generation. Higher values will produce larger, slower, and more powerful low-frequency waves - typical of stormy ocean conditions.
Directionality - (Phillips) Affects how aligned the waves are with the wind direction. Higher values suppress waves traveling at angles away from the wind, creating more directional and focused wave motion..
Fetch /km - (TMA) Determines the distance (in kilometers) over which the wind has been blowing. Larger values produce longer, more developed waves with greater energy..
Swell - (TMA) Controls how sharply the waves are aligned with the primary wind direction. Higher swell values increase directional focus and reduce cross-wave interference.
Depth - Specifies the water depth. Shallow depths limit low-frequency waves and alter wave dispersion, making the spectrum suitable for near-shore environments or shallow seas.
Choppy - Adjusts the sharpness of wave crests. Higher values exaggerate the curvature, producing more dramatic, jagged waves. However, very high values may introduce mesh distortions or visual artifacts.
Clamp Low Frequencies - Enables removal of long, slow waves (low frequencies).
Low Resolution - Frequencies below this threshold are discarded.
Clamp High Frequencies - Enables removal of short, fast waves (high frequencies).
High Resolution - Frequencies above this threshold are discarded.
Motion
Wind Direction - Specifies the angle of the wind in degrees.
- A value of 0° means waves will propagate along the +X axis.
- A value of 90° means propagation along the +Y axis.
Propagation Speed - Controls how fast waves travel in the wind direction. Higher values create more dynamic movement, while lower values result in slower, calmer wave propagation.
Reflected - Determines the presence of reflected waves traveling in the opposite direction of the wind:
- A value of 0.0 suppresses all backward wave motion (ideal for large open seas).
- A value of 1.0 allows waves to move equally in both directions, which is useful for simulating enclosed bodies of water like pools, tanks, or shorelines where reflections are expected.
Loopable - Enable this option to generate seamlessly loopable wave animations, ideal for game assets, cinematics, or tileable ocean textures.
Period - Defines the loop duration in frames. After this period, the wave pattern will repeat. Choose a value that matches your desired animation length for smooth looping playback.
Tile Variation
Use Variation - Enables random variation across the tiled ocean surface. Even with high resolution, wave patterns can appear repetitive when covering large areas. Enabling this option introduces randomness that eliminates obvious tiling artifacts and improves realism.
Rotation - Applies a random rotational offset (in degrees) to each tile. For highly directional waves, keep this value low to preserve flow direction. Use higher values if you want a more chaotic or turbulent wave field.
Height % - Applies random variation to wave height, expressed as a percentage of the base height. This helps avoid uniformly tall or flat waves across tiles and adds natural variability to the ocean surface.
Seed - Sets the random number seed used to generate tile variations. Change this value to produce a different variation pattern without affecting other simulation parameters.
|
|
|
|
|
Tile Variation disabled |
Tile Variation enabled, Height 0% |
Tile Variation enabled, Height 30% |
Height Mask
Use Noise - Enables a noise-based mask to modulate wave height. This is useful for masking fine, high-frequency spectrum in scenes where local wind effects create small surface disturbances over larger, smoother waves.
Size X - Noise size along the X axis.
Size Y - Noise size along the Y axis.
Center - Defines the origin point of the noise in world space. Adjusting this can reposition or animate the noise across the ocean surface.
Levels - Specifies the number of octaves or layers of detail in the Perlin noise. Higher values increase complexity and realism but may impact performance slightly.
Direction - Noise rotation in degrees.
Propagation Speed - Determines how fast the noise pattern moves along its directional axis, simulating localized wave motion or surface drift.
Phase speed - Controls the rate at which the noise pattern evolves over time. Higher values create more rapidly changing waveforms.
Low Threshold - Values below low threshold will be set to Output Min value.
High Threshold - Values above high threshold will be set to Output Max.
Output Min - Resulting value will be between Output Min and Output Max values.
Output Max - Resulting value will be between Output Min and Output Max values.
|
|
|
|
|
Noise Mask disabled |
Noise Mask enabled |
Two spectra blended with the Noise Mask. |
Display
Height Mask - Displays Height Mask.
Size - Mask display area size.
Subdivisions - Defines the display resolution.
Position - Defines the display area position.