Rasagar/Library/PackageCache/com.unity.render-pipelines.high-definition/Samples~/WaterSamples/Scenes/Scene Resources/IslandSampleDescription.json
2024-08-26 23:07:20 +03:00

40 lines
3.7 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"introduction":
"""Welcome to the Water System Samples.
The <a href="https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest/index.html?subfolder=/manual/water.html">WaterSystem</a> allows you to add water to your scenes.
Multiple surface types are available, this scene showcases the Ocean preset.
<i>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.</i>
The project uses the Mask and Current Water Decal workflow. Make sure it is enabled in the Graphics settings first.
<h1>Water Decal</h1>
On this scene, a single <link="Water Decal">Water Decal</link> 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 <link="Island_WaterDecal.shadergraph">Shader Graph</link> 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 <link="Island_WaterDecal.mat">material</link>.
<h1>Exclusion</h1>
A <link="Water Excluder">Water Excluder</link> with a specifically authored mesh is set on the boat to exclude water from rendering inside it.
<h1>Shores Waves</h1>
There are 3 different <link="Water Wave Deformer Middle">Shore Wave Water Deformers</link>. Each Water Deformer has a <link="DecalTriggerDummy">child gameobject</link>. Its used to trigger a <link="ShoreFoam">Decal Projector</link> 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 <link="Water Texture Deformer">Deformer</link> with the same animated texture for the foam to have "volume". This deformer is triggered at the same time and uses one shared <link="Shader Graphs_Custom Foam Flipbook">material</link> with a <a href="https://docs.unity3d.com/ScriptReference/MaterialPropertyBlock.html">Material Property Block</a> for all Water Deformers, eliminating the need for a Custom Render Texture.
Finally, a very large <link="Decal Projector Wave Foam">Decal Projector</link> retrieves the foam texture of the Shore Wave Deformers using the <code>GetFoamBuffer()</code> function to further blend the foam on the shore.
<h1>Third Person Sailor</h1>
The <link="Sailor">Sailor</link> works only in <b>Play Mode</b>.
Use the direction arrows of your keyboard to move the sailor.
The gameObject <link="DeformerPool">Deformer Pool</link> holds a list of deformers to use as children for deformations.
When the controller is moving, the component <b>CharacterControllerSpawnDeformation</b> enables <b>Water Deformers</b> continuously in the <link="DeformerPool">Deformer Pool</link> child list just ahead of the character. These deformers are then animated and faded, making ripples.
The <link="Sailor Foam Generator">foam generator</link> 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 <link="Decal Projector Wave Foam">decal</link> reprojecting it on the shore.
""",
"samples": []
}