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.
The three spectra
Section titled “The three spectra”Phillips
Section titled “Phillips”
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 (PM)
Section titled “Pierson-Moskowitz (PM)”
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
Section titled “JONSWAP”
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.
Authoring per-cascade values
Section titled “Authoring per-cascade values”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.
Switching at runtime
Section titled “Switching at runtime”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.