Dynamic Simulation Zone Settings
I recommend reading the description of how the simulation works to better understand its strengths, weaknesses, and possible use cases
Zone Types
A zone designed for stationary simulations such as rivers, lakes, or local flow areas.
At startup, it captures the current scene depth within the zone and uses it to compute water-surface intersections
The water flow dynamically adapts to the captured terrain and obstacles — allowing rivers to wrap around geometry
You can change water sources or modify the flow path, and the simulation will react accordingly
Optionally, you can use "pre-caching" feature to bake the current simulation state (including scene depth and flow) This skips the filling phase and starts the simulation from the cached state
When cached, the saved data texture is always used — even if terrain or static objects change after restarting Note: Only static data (such as terrain and static geometry) is cached. Dynamic interactions (like water sources, forces, drains, or obstacles) remain fully functional and will still be applied during runtime.
🛠 For procedural or runtime-generated worlds, you can manually reinitialize the zone using: zone.ForceUpdateZone();

Can move or follow objects (e.g. player-triggered simulations)
Does not cache depth, so it won’t interact with terrain or static objects
Still supports interaction with moving dynamic objects (like water sources, forces, drains, or obstacles)

Works only with cached zones (using start cache -> stop cache)
Caches the full state including depth intersection and flow
Completely ignores any zone or flow changes after baking → Unlike Static Zone, the flow is frozen and will not respond to changes in water sources, terrain, or obstacles
Ideal for static rivers, foam-covered waterfalls, or any areas where flow doesn’t need to change
No CPU/GPU cost for simulation after bake ⚠️ Foam and splash particles still render and consume GPU resources

Simulation Settings
Intersection Layer Mask – defines which scene layers are used when capturing depth and geometry for water zones. Only objects on these layers will affect water flow, intersections, and foam generation

Simulation Resolution Per Meter – Controls how many pixels are used per meter of the simulation zone. Higher values give better visual quality, but also reduce wave speed and increase performance cost. The simulation updates at 60 FPS, processing one pixel per frame. So if you use 2 pixels per meter, the wave moves at about 0.5 meters per second. If you use 3 pixels per meter, the wave will move slower — only 0.33 meters per second. Lower values make waves move faster and improve performance, but reduce detail.

Flow Speed Multiplier – adjusts the speed of the flow map, not the physical simulation. Works like faster scrolling of flow textures and also speeds up foam and splash particles

Evaporation Rate - controls how quickly water disappears inside a simulation zone. Higher values make water dry out faster, lower values let it persist longer

Receive Water Flow From Other Zones - when enabled, the current simulation zone can receive water flow data from neighboring zones. This allows water to naturally pass between zones — for example, when connecting rivers or linking multiple dynamic areas. With this option enabled, water tends to accumulate less near zone borders, gradually “leaking” toward adjacent zones. This helps prevent overflow or unnatural buildup at intersection areas, making cross-zone blending appear more stable and physically consistent.
Technical note: Internally, the zone samples neighbor height data along intersection borders and applies a small relaxation factor to equalize water levels over time. Because of this relaxation, only part of the water level difference is transferred each frame, so the flow between zones is intentionally smoothed and never fully synchronized — avoiding sudden jumps or oscillations.

Texture Foam Settings
Enables or disables foam rendering in the zone. When enabled, foam is drawn as a scrolling texture (using flowmap or advection flow)
Foam Type — Flow Map Foam is cheaper and just follows the static flow texture, good for performance but less realistic. Advected Foam is carried by the actual simulation creating dynamic swirling and stretching around obstacles, but costs more performance

Foam Texture Type — chooses the texture set used for foam patterns (tile set / noise variant).

Foam Texture Contrast — increases/decreases contrast of the foam pattern (higher = crisper, lower = softer).

Foam Texture Scale Multiplier — scales foam texture tiling on the surface.

Foam Strength – sets the threshold for foam generation. Shallow (River) Foam raises or lowers the chance of foam appearing in rivers and near shore, while Ocean Foam does the same for the open ocean (starting roughly ~5 meters from the coast). Higher values = more foam appears at lower flow speeds. Note: The foam near the shoreline (where ocean waves break against terrain) is also controlled by river settings.

Foam fade – controls how fast foam fades away. Shallow (River) affects rivers and shorelines, Ocean controls the open ocean (about 5m from the coast). Higher values = foam vanishes quicker, lower values = foam lingers longer

Foam Alpha — global opacity of foam (multiplier applied to all foam).

Foam Particles
Renders small foam particles in zones. Adds detail and realism, but high particle counts can be performance-heavy, especially when many are visible at once
Defines the maximum number of foam particles stored in the GPU buffer. Even if few particles are visible, the entire buffer is allocated in memory which still consumes VRAM and adds a small processing overhead. Use lower values if you don’t need dense foam detail to save performance and memory

Limits how far foam particles are rendered from the camera. Increasing the distance makes foam visible farther away but costs more performance; lowering it reduces load by culling distant particles

Controls the size of foam particles. Larger particles appear softer and more blurred but increase overdraw and reduce performance; smaller particles look sharper and cost less to render

Controls the transparency of foam particles

Controls how many foam particles are spawned per second. Higher values create denser, more detailed foam trails/splashes, but also increase GPU load; lower values reduce density and improve performance

Enables subtle emissive glow on particles to simulate bioluminescent phytoplankton (useful at night or for stylized scenes).

Splash Particles
Enables rendering of splash particles in zones. Particles can be performance-heavy, especially in large numbers near the camera, causing pixel overdraw. Use with caution
Defines the maximum number of splash particles stored in the GPU buffer. Even if few particles are visible, the entire buffer is allocated in memory, which still consumes VRAM and adds a small processing overhead. Use lower values if you don’t need dense foam detail to save performance and memory.

Limits how far foam particles are rendered from the camera. Increasing the distance makes foam visible farther away but costs more performance; lowering it reduces load by culling distant particles.

Controls the size of splash particles and is the most performance-critical parameter. Larger or more numerous particles greatly increase overdraw and reduce FPS; smaller, fewer particles render much faster.

Controls the transparency of splashes particles.

Controls how many foam particles are spawned per second. Higher values create denser, more detailed foam trails/splashes, but also increase GPU load; lower values reduce density and improve performance
Quality mode for receiving real-time shadows on splash particles. Higher quality improves lighting consistency but increases cost (especially with many lights).
Shadow mode: controls how particles receive shadows from lights:
Disabled – disables shadow reception completely.
Directional Low Quality – receives shadows only from directional lights, calculated per-vertex (fast, but may flicker).
Directional High Quality – receives shadows only from directional lights, calculated per-pixel (slower but more stable).
All Shadows Low Quality – receives shadows from all lights, per-vertex.
All Shadows High Quality – receives shadows from all lights, per-pixel (most expensive option).
Controls if and how splash particles cast real-time shadows. Casting shadows is expensive and should be enabled only when visually essential (cinematic shots, strong key lights).
Cast shadow mode: controls whether particles cast shadows into the scene:
Disabled – no shadow casting.
Low Quality – casts shadows from a reduced number of particles (e.g. 3x fewer), improving performance.
High Quality – casts shadows from all visible particles. Highest visual quality but very expensive (especially with cascaded shadows).
Cache Control
These buttons control the simulation pre-baking process:
Start Cache – Starts the simulation in a 20x accelerated mode. While active, you can move water sources, objects, and tweak parameters in real time to quickly see how the river or flow will behave. This is useful for fine-tuning without waiting for the simulation to run at normal speed.
Stop & Save – Stops the accelerated simulation and saves the current state (object intersections, water data, etc.) into textures. On the next play or bake, the simulation will resume from this saved state instead of starting from scratch.
Note: After saving, changes to terrain or static objects will not affect the simulation unless you re-bake again using Start Cache.
Clear Cache – Deletes the saved simulation and intersection data so you can start fresh.
Last updated