Introduction

This shader is for water areas such as Sea, Lakes, Ponds and Rivers etc.

Moving water effect is achieved by two scrolling normal maps, with a noise map which masks them out and also scrolls.

By default it uses screen space reflections to help improve specular reflections and a depth map in the alpha channel to simulate water behaving differently at different depths. It can work as a transparent material which allows light from terrain underneath or an opaque material which does not and has some colour information baked into the albedo.

Note that screenspace reflection surfaces are calculated at load time. If you assign the IBL Water shader using the material editor you will not get SSR reflections until you reload the environment.

The depth map is used to control the shore, shallow and deep areas which set the normal intensity, "seabed" visibility and water clarity which effects the roughness of the water reflections. Additionally the depth information can be remapped to opacity output via the Opacity Effects options.

If you don't want to use a depth map, the whole surface can be configured with a single static set of parameters with optional transparency.

SSR reflection intensity can be configured to be a static amount and to take into consideration distance and how clear the water is.

The background mapper used in the SSR reflections must be defined in the mapper definition. You can find out more about this on the Reflection Mappers page.

Beneath are the technical definitions.

Shader Name 

L2IBLWATER

Configuration

Please note UV_A, UV_B, UV_C or UV_D refers to as specified in the gTexture slot in 3ds Max. There is a full explanation of this here.

Albedo Map

Albedo colour map with an optional alpha channel which can be used for opacity or depth of the water.

Noise Map

Two channel Noise Map, where red channel masks out normal map A and green channel masks out normal map B.

Normal Maps

General Configuration

Parameters

Base_Material

The Base Material parameter section allows the setting of static values when the map for one of the following is disabled in the Shader Configuration.

UV_Scale

This dialogue allows the scaling of the selected UV for any maps present.

UV_Scroll

This dialogue allows the adjustment of how fast these maps scroll. This is available for Noise and Normal maps.

Material_Adjust

This section allows the adjustment of final output of the material. 

WaterParams

This section is only available when not using a depth map.

Shore/Shallow/Deep

This section is only available when using a depth map. There are three points in the depth map that you can configure, and they allow the water shader to transition from shore to deep sea with different strength of effects. By default a value of 0 in the depth map is for the shore, a value of 1 (or 255) is for the deepest part of the water simulated.

SSR

When SSR is enabled we can configure to fade out SSR reflections based on how clear the water is or the distance to that point.

Opacity

When opacity effects are enabled we can configure based on the depth map the opacity.

UvDistanceParams

When Distance Blend is enabled, we can use this to use different UVW in the distance in order to break up tiling when far away. This is applied to the normal maps and the noise map.

Textures

NameTypeDefault File TypesDescription
albedoMapSRGB (Alpha linear)alb or albaAlbedo colour map with an optional alpha channel which can be used for opacity or depth of the water.
noiseMapLinearmxTwo channel Noise Map, where red channel masks out normal map A and green channel masks out normal map B.
normalMapALinearnm


normalMapBLinearnm