{ "introduction": """Welcome to the Water System Samples. The WaterSystem allows you to add water to your scenes. Multiple surface types are available, this scene showcases the Ocean preset and how it can be used to seamlessly transition from a river to a larger body type like an ocean. To make sure the project is set up properly, use the HDRP Asset Settings Helper buttons at the top of this component, otherwise some features might not be visible. The project uses the Mask and Current Water Decal workflow. Make sure it is enabled in the Graphics settings first.

Water Decal

• The Water Simulation Decal uses two different maps to prevent ocean swell from occuring along the river and making foam at the begining of the river. • The Water Current Decal uses two different current maps to guide ripples and swell/agitation along the river, making ripples move from the river to the ocean and the swell coming from the ocean.

Waterfall

• A Material Deformer is used to control the water elevation during the fall. This method is recommended over using a custom geometry, as it allows the use of the Underwater effect. • To recreate the falling water effect, we used a Decal Projector. It affects transparents and the motion is derived from a Custom Render Texture.

Foam

• To add foam along the river bank, we subtract the pixel depth of what’s below the water (usually the bottom of the river) from the pixel depth of the water surface. If the difference is really small, foam is added.

Caustics

• To render the caustics on the ice wall we use a CausticsProjector. Simulation changes are updated in real time with the help of the GetCausticsBuffer() function in the Water Surface script. • Caustics on the bottom of the river are enabled on the Water surface itself. However they are not affected by the Current maps.

Ice Chunks

• Each ice chunk sticks to the Water Surface and follows the direction of the current using the FloatingIceberg script. • A disk Foam Generator is set as a child of each ice chunk to create a foam trail.""", "samples": [] }