Houdini 20.5 Oceans and water surfaces

Ocean spectra

Spectrum wave types for ocean surfaces.

On this page

Overview

Houdini’s Ocean Spectrum is a fast way to create highly-realistic and highly-customizable ocean waves. In Houdini 19.5, a new spectrum type was introduced, giving you more flexibility and possibilities.

The following chapters give you a short overview how to work with the most important spectrum parameters, and how they influence the wave pattern.

Basic setup

A basic ocean surface requires three nodes. This setup can also seen as the basis for other simulations, for example guided SOP FLIP fluid oceans. More advanced setups, like the creation of large oceans with whitewater, are available through Houdini’s Ocean shelf tools.

  1. On obj level, create a Geometry node and dive into it.

  2. There, create a Grid node. The grid acts as the ocean surface.

  3. Adjust the Size parameter, e.g. to 10,10.

  4. The Rows and Columns parameters define the ocean’s resolution. Higher values reveal more details. Start with something between 300 for both values.

  5. Add an Ocean Spectrum node.

  6. Set Resolution Exponent to 10 to increase the spectrum’s quality and create more small waves. Together with the Grid’s Rows and Columns you can control the ocean’s final look.

  7. Add an Ocean Evaluate node.

  8. Connect the Grid to the first input, and the Ocean Spectrum to the second input.

  9. If the waves are too high, open the Ocean Spectrum’s Amplitude tab and dial down the Scale parameter.

Spectrum types

The Ocean Spectrum node provides two Spectrum Type options: TMA and Phillips. The new TMA spectrum, added in Houdini 19.5, creates plausible and realistic results for a wide range of wind speeds and ocean depths. Two new parameters, Swell and Fetch (km), let you blend between choppy seas near the coast and typical open ocean waves. The second option represents the traditional spectrum waves, introduced in Houdini 12.5.

Note

The TMA (Texel-Marsen-Arlose) spectrum type is also known as Encino waves. (Black)Encino is just the nickname of Christopher Horvath, who did the first implementation of this spectrum type for computer graphics. The Philipps spectrum’s implementation is widely known as Tessendorf waves.

Note

You can also set up two separate Ocean Spectrum nodes with TMA and Philipps, and combine them with a Merge node.

TMA: Fetch (km)

The Fetch (km) parameter describes the distance that wind travels over open water without a significant change of direction.

The parameter influences wave height as well as chopiness. The smaller the value, the smaller and choppier the waves. Near the coast, the waves show the typical appearance of shallow water. At greater distances, the waves become more directional, but amount and frequency of the smaller waves decrease. Wave height mainly depends on the Speed parameter. If you want to maintain Speed, but need flatter waves, you can also decrease Amplitude ▸ Scale.

Moderate Speed and large Fetch (km) values let you create the wave signature of an open ocean at moderate wind speeds.

The video below shows an ocean surface with default Wind settings and a Fetch (km) parameter, decreasing from 300 to 1. Over time, the waves' frequency and choppiness increases, while wave height decreases.

TMA: Swell

Swell controls the waves' direction and ranges from -1 to 1. With this parameter you're able to simulate weather events, for example a choppy sea near the coast or swells from distant storms. Negative values create more waves, opposing the wind direction. Positive values enhance directionality and create a prevailed traveling direction. A value of 1 aligns most of the waves. The higher the Swell value, the stronger the influence of the Direction parameter.

The video below shows an ocean surface with default Wind settings and an increasing Swell parameter (-1 to 1). Over time, the number of traversing waves increases and the waves start to travel in the adjusted Direction.

Philipps: Directional Bias

With Tessendorf waves, the ocean’s look is strongly influenced by the Directional Bias parameter. With small values or 0, the waves are less aligned with the wind: waves will come form different directions and create the typical pattern with small and waves and sharp crests.

The Speed parameter is also responsible for the final look. With low settings like 2 and a Directional Bias of 0.5, for example, you get the typical pattern of ocean waves on a sunny day with a gentle breeze.

This video shows Tessendorf waves with Directional Bias ranging from 0 to 3 and a Direction of 90. The other parameter values are defaults.

Philipps: Directional Movement

On the first look, the difference between Directional Bias and Directional Movement is not immediately clear. Directional Movement controls the amount of waves that travel in the direction of wind. With small values, more and more waves start to move in opposite direction. The effect of higher values like 3, can only be seen, if Directional Bias is greater than 0.

In the video below, Directional Bias is 1 and Directional Movement ranges from 0 to 3, Direction is set to 90.

Tutorial

Oceans and water surfaces

Shallow water solver

Oceans

Ripple solver