Skip to main content
← Roadmap
🏞️ RiverologyPlanned3.0.0

New landscape deformation

Riverology 3 changes how rivers carve terrain, with the intent of working on more than the engine-native landscape that Riverology 2 requires.


The hardest constraint in Riverology 2 is not visual, it is structural: a river can only carve an engine-native Landscape actor. If your terrain is a static mesh, a heightfield you generate yourself, a voxel system, or anything else that is not a Landscape, the carving step has nothing to talk to and you are back to sculpting riverbeds by hand. Riverology 3 changes the deformation method, and the intent is that rivers stop being tied to that one terrain type.

How Riverology 2 does it

The deformation settings live in a struct on the river actor that holds a direct pointer to a Landscape actor. Turning on Apply Landscape Spline and pressing the Editor Apply Spline button walks the spline and pushes height changes into that Landscape, optionally painting a layer along the riverbed. Deform Width controls the cross-section, where negative values cut a valley and positive values raise a levee, and Deform Falloff controls how far the change blends back into untouched terrain. Raise Heights and Lower Heights act as safety switches so you can carve without raising, or raise without cutting. Paint layer lookup goes through the Landscape's own layer info, and the writes target a named Landscape edit layer, which is what keeps the operation reversible.

  • Apply Landscape Spline, the master toggle, off by default.
  • Landscape, a direct reference to one Landscape actor.
  • Raise Heights and Lower Heights, both on by default.
  • Deform Width, default -200, where negative cuts a channel.
  • Deform Falloff, default 1000, the blend distance back to original height.
  • Paint Layer Name and Edit Layer to Paint On.
  • Refresh Grass Foliage, a one-shot that flushes the grass cache after a carve.

Why that is the wall

Every hook in that path is typed to the engine Landscape: the actor reference, the layer info lookup, the edit layer target. Nothing degrades gracefully for other terrain — it simply does not run. It is also strictly an editor-time operation driven by a button press, which is workable for a Landscape with edit layers and has nowhere to go for terrain built at runtime.

What Riverology 3 is expected to change

The core Riverology 3 inherits already separates the two jobs Riverology 2 fuses together. Reading the ground is handled by a water terrain component that can be attached to any actor with primitive components, which then renders into the water info texture as terrain and can supply its own world-space triangles without depending on collision being enabled. Landscapes are still auto-included by default, but they are no longer the only thing that can be terrain. Writing to the ground is handled by a brush pipeline with blend modes, falloff modes and a stack of effects, evaluated on the GPU through jump-flood distance field, falloff, weightmap and composite passes. Splitting read from write is what makes broader terrain compatibility possible at all.

Being precise about where this stands: in the core as it exists today, the write side still installs itself as a brush inside a Landscape edit layer. That is exactly the part Riverology 3 sets out to change, and it is the part that has not shipped. Expect broader terrain support; do not plan a project around a specific terrain system until you can test it on the release build.

Terrain handling

BeforeOceanology Pro
Terrain the river can carveOne engine-native Landscape actor, referenced directlyIntended to reach beyond the engine-native landscape; not yet shipped
Terrain the water can readOnly the landscape it was told aboutAny actor carrying a water terrain component, with landscapes auto-included
When deformation runsEditor only, on an Editor Apply Spline button pressBrush pipeline evaluated on the GPU as part of the water zone rebuild
Shape controlsDeform Width and Deform FalloffBlend mode, falloff mode, edge and Z offsets, plus curve, blur, curl noise, displacement, smooth blending and terracing effects
PaintingOne paint layer name on one edit layerWeightmap passes inside the brush pipeline

Deformation controls and their current values

Deform Width, default-200 (negative cuts a channel, positive raises a levee)
Deform Falloff, default1000
Raise Heights and Lower Heights, defaultBoth enabled
Apply Landscape Spline, defaultDisabled
Core brush blend modesAlpha Blend, Min (lower only), Max (raise only), Additive
Core brush falloff modesAngle or Width, each with edge offset and Z offset
Core brush effectsBlur (radius 2), curl noise, elevation curve channel (ramp width 512), displacement, smooth blending, terracing (spacing 256)
Landscapes as terrain in a water zoneAuto-included by default

This is one entry on the Galidar roadmap. For what already shipped in each release, see the Changelog.