{ "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. 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

On this scene, a single Water Decal is used to do multiple things: • To mask part of the swell and agitation closer to the island using the "Affect Simulation Mask" checkbox • This same water simulation mask texture in also used in the Water Decal Shader Graph to mask the foam where the simulation is masked. • Lastly, a Current Map Texture is applied as well on the Water Surface to slightly change the direction of the current around the island using the "Affect Large Current" checkbox in the material.

Exclusion

• A Water Excluder with a specifically authored mesh is set on the boat to exclude water from rendering inside it.

Shores Waves

• There are 3 different Shore Wave Water Deformers. Each Water Deformer has a child gameobject. It’s used to trigger a Decal Projector when submerged underwater. To prevent unwanted effects, the trigger script ignores the general water agitation and only calculates if the dummy gets submerged due to a wave deformation. • The Decal Projector has a component 'FoamShore' controling the scale, opacity and position, effectively describing how far can the wave decals be seen after reaching the shore. • In addition, the Decal Projector Material is animated using a flipbook texture. • Moreover, each Decal has a child Deformer with the same animated texture for the foam to have "volume". This deformer is triggered at the same time and uses one shared material with a Material Property Block for all Water Deformers, eliminating the need for a Custom Render Texture. • Finally, a very large Decal Projector retrieves the foam texture of the Shore Wave Deformers using the GetFoamBuffer() function to further blend the foam on the shore.

Third Person Sailor

• The Sailor works only in Play Mode. • Use the direction arrows of your keyboard to move the sailor. • The gameObject Deformer Pool holds a list of deformers to use as children for deformations. • When the controller is moving, the component CharacterControllerSpawnDeformation enables Water Deformers continuously in the Deformer Pool child list just ahead of the character. These deformers are then animated and faded, making ripples. • The foam generator is also scaled by its parent transform based on the controller velocity to generate foam trail that disappears over time. This foam can also be visible on the sand since there's a decal reprojecting it on the shore. """, "samples": [] }