Skip to content

Water material

MM_KurinWater_01a: Single Layer Water for ponds, lakes, rivers, pools, flooded areas and caves. Put it on a flat plane at the water height; colour and depth come from the ground below.

Setup

  1. Master settings (already set): Use Material Attributes on, Shading Model Single Layer Water, Refraction Method Pixel Normal Offset.
  2. Make an instance, put it on a flat plane.
  3. 02 Waves: assign Waves Normal Map, set Waves Size.
  4. 01 Water: Water Tint = colour at Water Tint Depth (cm). Bigger depth = clearer water.

Base groups

Group Key parameters Tip
01 Water Water Tint, Water Tint Depth, Water Scattering Start with the tint, then depth
02 Waves Waves Size / Speed / Intensity, Use Swell?, Wind Direction, Waves Stretch Swell = big slow waves on top. Stretch 1.5–3 = river streaks
03 Surface Roughness, Shore Blend Distance, Surface Edge Fade Shore Blend Distance softens the edge at the bank
Refraction Use Refraction? (on), Refraction 1 = none, 1.2 default, 1.33 real water

Add-ons

Each add-on has its own switch; off = no cost.

Add-on Switch / key parameters What it gives Cost
Foam Use Foam?, Foam Map, Foam Distance Foam in shallow water, or painted with vertex color B +1
Duckweed / Leaves Use Duckweed? / Use Leaves?, Tiling, Tint Floating plants, painted with vertex color R / G +3 each
Caustics Use Caustics?, Scale, Intensity Light patterns on the bottom +3
Shore Waves Use Shore Waves?, Distance, Speed Rings running away from rocks and banks 2 DF queries
Rain Ripples Use Ripples?, Strength Rain rings, follow Weather Rain +1
Flow Map Use Flow Map?, Flow Speed, Flow Map Cheap? Rivers: waves, foam and film follow a painted flow +6 (cheap +3)
Wind Gusts Use Wind Gusts?, Gusts Intensity, Size, Amount Random gust patches of fine ripples on calm water +2
Surface Film Use Surface Film?, Film Tint, Film Amount Oil, scum, pollen, toxic water +2
Cave Reflection Use Cave Reflection?, Cave Reflection Cubemap Reflection for caves and tunnels where Lumen shows nothing +1

Mask channels: every mask texture has a ... Channel (R / G / B / A) selector, so several masks can share one texture.

Tips per add-on

  • Shore Waves: by default uses Distance Fields (Project Settings > Generate Mesh Distance Fields). For beaches tick Shore Waves From Depth? (Depth Scale ≈ 5 gentle, 1–2 steep). Check with Shore Waves Debug?.
  • Flow Map: paint R / G = flow along U / V (0.5 = still), import as Normalmap. Flow Speed 20–50 slow river, 80–150 stream.
  • Wind Gusts: Gusts Intensity fades the whole effect (animate it for gusts that come and go). Small pool: lower Gusts Size (600–800). Gusts Debug? shows where the gusts are.
  • Surface Film: oil (0.12, 0.10, 0.04), pollen (0.6, 0.5, 0.1), toxic (0.2, 0.35, 0.05). Film Calm flattens ripples under oil.
  • Cave Reflection: capture a Scene Capture Cube, right click the render target > Create Static Texture, put it in the cubemap slot. Intensity 0.05–0.3 for dark caves.
  • Global wind: Use Global Wind? ties waves to MPC_KurinWind (same wind as foliage). Animate only Wind Strength at runtime.
  • Ground at the shore: turn on Weather Shore on the ground material with the same water level for a matching wet band.

Performance

A pond (waves, swell, foam, refraction) is about 4 texture lookups, a river with flow, foam, gusts and caustics about 12. On Material Quality Low flow, gusts, refraction and caustics switch off automatically. Exact numbers: run Tools/KurinMeasureWater.py.