Author a wave setup once as an asset with its own preview editor, reuse it across bodies and levels, and bake any wave system to textures for lower-end targets.
Two workflows sit on top of Oceanology Pro's wave-source architecture. Presets are content-browser assets that carry a fully configured wave source and can be applied to any body or referenced live by many. Bakers turn a live wave system into a looping flipbook atlas pair that plays back at a fixed cost, with the CPU physics regenerated from the baked recipe so buoyancy still matches what you see. Both existed in some form in NextGen; in Pro they were rebuilt onto the same wave-source interface every consumer already uses.
Presets
Two asset types ship: Water Waves Preset, which holds a Gerstner, Spectral Gerstner or FFT source, and Breaking Waves Preset, which holds a Breaking Waves source. Each has its own asset definition, factory, icon and details customization.
There are two ways to consume one. Assign it to the water body's preset slot and it is applied: the preset's configuration is copied into the body's own source, and subsequent tweaks stay local to that body.
Or point the body's wave source at a preset source wrapper. The wrapper forwards every query, including maximum wave height, wave height at a position, attenuation factor and the breaking configuration, straight through to the asset, so every body sharing that asset changes together.
Applying a preset is not a manual reload. It re-registers the wave-data delegate, refreshes the material instances, ensures the matching wave baker exists and re-activates the FFT pipeline in one step, then reports success or failure as an editor message.
Blueprint-pure lerp helpers exist per wave family: LerpGerstnerWavesPreset, LerpSpectralGerstnerWavesPreset, LerpFFTWavesPreset and LerpBreakingWavesPreset, plus struct-level equivalents. Continuous values interpolate; resolutions, seeds and system selectors take the target value.
Bakers
Wave Mode on the water body chooses Runtime, Baked or None. In Baked mode the body grows a wave baker matched to its source type automatically, and swaps it if you change the source. Three bakers ship: FFT Wave Baker, Gerstner Wave Baker and Spectral Gerstner Wave Baker. All three share one baking options struct and produce the same atlas format, so anything downstream that reads a baked patch reads all three identically.
A bake produces a pair of flipbook atlases, displacement and gradient/derivatives, laid out on an automatically computed columns by rows grid. Frame count snaps to 16, 32, 64, 128 or 256.
FFT bakes are seamless by construction: angular frequencies are quantized to multiples of two pi over the loop duration, so every wave completes an integer number of cycles inside the loop. Match Runtime Spectrum, on by default, copies resolution, patch length and foam settings from the live source so the bake matches what you tuned.
At runtime the material never filters the atlas directly. A compute pass resolves a four-frame Catmull-Rom interpolation once per texel into compact current-frame textures, so a baked body feeds the material the same two inputs as the runtime FFT path.
CPU physics follows the bake, not the runtime spectrum. The baked resolution, patch length and loop quantization are what generate the CPU spectrum, so buoyancy on a baked ocean matches its playback.
Save Textures exports both atlases to persistent Texture2D assets, with configurable mip generation settings and LOD bias on the gradient atlas and an optional save dialog for the destination.
A baked atlas can also be pointed at the project's shared Wave Detail Patch, the small tiling patch that shallow-water materials use for surface detail normals. It replays as a flipbook on its own clock with no simulation on the frame's critical path.
Versus Oceanology NextGen
Oceanology NextGen
Oceanology Pro
Preset shape
Auto-generated data assets holding a wave settings struct, loaded into a water actor by inclusion group
Assets that carry an instanced wave source, either applied once into a body or referenced live through a preset source wrapper
Offline baking
No wave bakers in the codebase
Three bakers sharing one options struct, one atlas format and one export path
Baked playback
Not applicable
Four-frame Catmull-Rom resolve into compact per-frame textures, identical material inputs to the runtime path
Baked physics
Not applicable
The CPU spectrum is regenerated from the baked recipe, so buoyancy matches the flipbook rather than the live spectrum
Baker types
FFT, Gerstner, Spectral Gerstner
Frames per bake
16, 32, 64, 128 or 256 (default 64, auto-snapped)
Frame resolution
256, 512, 1024 or 2048 (default 256)
Target loop duration
4 to 60 s (default 16)
Bake patch length
1024 to 131072 cm (default 16384)
Atlas formats
Displacement RGBA32F, gradient RGBA16F when HDR is enabled
Maximum atlas dimensions
16384 by 16384 pixels
Bake memory budget
About 1 GiB; larger requests are rejected with an explicit message
Default export path
/Game/Oceanology/BakedTextures
Bake-time foam
Decay rate 2.4, bias 0.3, gain 1.0
Gradient atlas export
Mip generation setting and LOD bias are configurable; displacement always uses LOD bias 0
This is one entry on the Galidar roadmap. For what already shipped in each release, see the Changelog.