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¶
- Master settings (already set): Use Material Attributes on, Shading Model Single Layer Water, Refraction Method Pixel Normal Offset.
- Make an instance, put it on a flat plane.
- 02 Waves: assign Waves Normal Map, set Waves Size.
- 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.