Skip to content

Choosing a wave spectrum

DRW ships three wave spectrum models. Each represents a different sea state. Picking the right one is the single most impactful decision you’ll make about ocean look.

Phillips wave spectrum

The classic textbook spectrum: simple, fast, tunable. Pick Phillips when:

  • You’re prototyping and want a working ocean fast.
  • You want the most direct control over wave amplitude per cascade.
  • Your scene calls for stylised / non-realistic water.

Phillips is forgiving but doesn’t model “fully developed” or “growing” sea states with much physical fidelity. It’s the default in BP_DynamicRealWater for that reason.

Pierson-Moskowitz wave spectrum

A “fully developed sea” model: wind has been blowing long enough that wave energy has saturated. Looks smooth, regular, oceanic.

Pick PM when:

  • The scene is set in open ocean far from shore.
  • You want a “stable weather” look.
  • Long swells and a settled feel are the goal.

JONSWAP wave spectrum

The “growing sea” / “fetch-limited” model. Sharper energy peaks than PM, with more pronounced dominant waves.

Pick JONSWAP when:

  • You want stormy or coastal seas with definite character.
  • Storm fronts, weather transitions, dramatic cinematic shots.
  • The water is “doing something”: not at rest, not fully developed.

DRW runs four wave cascades simultaneously (short, medium, long, very-long wavelengths). Most spectrum properties are FVector4: one value per cascade. This is why you can have, say, a heavy long-wave swell with calm short-wave detail (or vice-versa).

The shipped wave presets in Plugins/DynamicRealWater/Content/Blueprints/WaterStates/Waves/ (DA_P_SmallWaves, DA_P_MediumWaves, DA_P_HighWaves) are good study material: each is built from the same spectrum but with different amplitude / damping per cascade.

SetOceanWaveData(WaveData, BlendDuration) blends from the current spectrum into a new one over time. Use this for storm rolls-in, day / night calm transitions, or dynamic weather.