The main script for the water system.
Attach this to an object to create water. This script initializes the various data types and systems and moves/scales the water based on the viewpoint. It also hosts a number of global settings that can be tweaked here.
Properties¶
General¶
Camera |
The camera which drives the water data. Setting this is optional. Defaults to the main camera. |
Time Provider |
Optional provider for time. Can be used to hard-code time for automation, or provide server time. Defaults to local Unity time. |
Environment¶
Wind Zone |
Uses a provided WindZone as the source of global wind. It must be directional. Wind speed units are presumed to be in m/s. |
Override Wind Zone Wind Speed |
Whether to override the given wind zone’s wind speed. |
Wind Speed |
Base wind speed in km/h. Controls wave conditions. Can be overridden on Shape* components. |
Override Wind Zone Wind Direction |
Whether to override the given wind zone’s wind direction. |
Wind Direction |
Base wind direction in degrees. Controls wave conditions. Can be overridden on Shape* components. |
Override Wind Zone Wind Turbulence |
Whether to override the given wind zone’s wind turbulence. |
Wind Turbulence |
Base wind turbulence. Controls wave conditions. Can be overridden on ShapeFFT components. |
Override Gravity |
Provide your own gravity value instead of Physics.gravity. |
Gravity |
Gravity for all wave calculations. |
Gravity Multiplier |
Multiplier for physics gravity. |
Primary Light |
The primary light that affects the water. Setting this is optional. This should be a directional light. Defaults to RenderSettings.sun. |
Rendering¶
Injection Point |
When in the render pipeline the water is rendered. Default is the old behavior which is controlled by Unity. Before Transparency has advantages like being compatible with soft particles, refractive shaders, and possibly third-party atmospheric fog. |
Default |
Renders in the default pass. For the water surface, this will be determined by the material (opaque or transparent). This pass is controlled by Unity, and is not compatible with certain features like soft particles. For the water volume, this will be after transparency. |
Before Transparent |
Renders before the transparent pass. This has advantages like being compatible with soft particles, refractive shaders, and possibly third-party fog. |
Color Texture |
Whether to write the water surface color to the color/opaque texture. This is likely only beneficial if the water injection point is before transparency, and there are shaders which need it (like refraction). |
Depth Texture |
Whether to write the water surface depth to the depth texture. The water surface writes to the depth buffer, but Unity does not copy it to the depth texture for post-processing effects like Depth of Field (or refraction). This will copy the depth buffer to the depth texture. If the water injection point is in the transparent pass, be wary that it will include all transparent objects that write to depth. Furthermore, other third parties may already be doing this, and we do not check whether it is necessary to copy or not. This feature has a considerable overhead if using the built-in render pipeline, as it requires rendering the surface depth another time. |
Motion Vectors |
Whether to enable motion vector support. |
Override Render HDR |
Whether to override the automatic detection of frame buffer HDR rendering (BIRP only). Rendering using HDR formats is optional, but there is no way for us to determine if HDR rendering is enabled in the Graphics Settings. We make an educated based on which platform is the target. If you see rendering issues, try disabling this. This has nothing to do with having an HDR monitor. |
Render HDR |
Force HDR format usage (BIRP only). If enabled, we assume the frame buffer is an HDR format, otherwise an LDR format. |
Surface¶
The water surface renderer.
Enabled |
Whether the underwater effect is enabled. Allocates/releases resources if state has changed. |
Layer |
The water chunk renderers will have this layer. |
Mesh |
The meshing solution for the water surface. |
Chunks |
Chunks implemented as a clip-map. |
Quad |
A single quad. Optimal for demanding platforms like mobile. Displacement will only contribute to normals. |
Custom |
Custom geometry only. Use Mesh Renderers with Custom Mesh enabled on the surface material. Do note that the other mesh types also support custom geometry, but the difference is that this type only supports custom geometry. |
Chunk Template |
Template for water chunks as a prefab. The only requirements are that the prefab must contain a MeshRenderer at the root and not a MeshFilter or WaterChunkRenderer. MR values will be overwritten where necessary and the prefabs are linked in edit mode. |
Support Custom Renderers |
Whether to support using the surface material with other renderers. Also requires enabling Custom Mesh on the material. |
Material |
Material to use for the water surface. |
Volume Material |
Underwater will copy from this material if set. Useful for overriding properties for the underwater effect. To see what properties can be overridden, see the disabled properties on the underwater material. This does not affect the surface. |
Cast Shadows |
Have the water surface cast shadows for albedo (both foam and custom). |
Culling¶
Time Slice Bounds Update Frame Count |
How many frames to distribute the chunk bounds calculation. The chunk bounds are calculated per frame to ensure culling is correct when using inputs that affect displacement. Some performance can be saved by distributing the load over several frames. The higher the frames, the longer it will take - lowest being instant. |
Advanced¶
Camera Exclusions |
Rules to exclude cameras from surface rendering. These are exclusion rules, so for all cameras, select Nothing. These rules are applied on top of the Layer rules. |
Nothing |
No exclusion rules applied. |
Hidden |
Exclude hidden cameras. Does not affect reflection cameras, as they are typically always hidden. Use the Reflection flag for them. |
Reflection |
Exclude reflection cameras. |
Non Main Camera |
Exclude cameras not tagged as MainCamera. |
Everything |
Apply all exclusion rules. |
Surface Self Intersection Fix Mode |
How to handle self-intersections of the water surface. They can be caused by choppy waves which can cause a flipped underwater effect. When not using the portals/volumes, this fix is only applied when within 2 meters of the water surface. Automatic will disable the fix if portals/volumes are used which is the recommend setting. |
Off |
Uses VFACE/IsFrontFace. |
Force Below Water |
Force entire water surface to render as below water. |
Force Above Water |
Force entire water surface to render as above water. |
On |
Force entire water surface to render as above or below water if beyond a distance from surface, otherwise use mask/facing. |
Automatic |
Force entire water surface to render as above or below water if beyond a distance from surface (except in special circumstances like Portals). |
Allow Render Queue Sorting |
Whether to allow sorting using the render queue. If you need to change the minor part of the render queue (eg +100), then enable this option. As a side effect, it will also disable the front-to-back rendering optimization for Crest. This option does not affect changing the major part of the render queue (eg AlphaTest, Transparent), as that is always allowed. Render queue sorting is required for some third-party integrations. |
Level of Detail¶
Scale |
The scale the water can be (infinity for no maximum). Water is scaled horizontally with viewer height, to keep the meshing suitable for elevated viewpoints. This sets the minimum and maximum the water will be scaled. Low minimum values give lots of detail, but will limit the horizontal extents of the water detail. Increasing the minimum value can be a great performance saving for mobile as it will reduce draw calls. |
Drop Detail Height Based On Waves |
Drops the height for maximum water detail based on waves. This means if there are big waves, max detail level is reached at a lower height, which can help visual range when there are very large waves and camera is at sea level. |
Levels |
Number of levels of details (chunks, scales etc) to generate. The horizontal range of the water surface doubles for each added LOD, while GPU processing time increases linearly. The higher the number, the further out detail will be. Furthermore, the higher the count, the more larger wavelengths can be filtering in queries. |
Resolution |
The resolution of the various water LOD data. This includes mesh density, displacement textures, foam data, dynamic wave simulation, etc. Sets the ‘detail’ present in the water - larger values give more detail at increased run-time expense. This value can be overridden per LOD in their respective settings except for Animated Waves which is tied to this value. |
Geometry Down Sample Factor |
How much of the water shape gets tessellated by geometry. For example, if set to four, every geometry quad will span 4x4 LOD data texels. a value of 2 will generate one vert per 2x2 LOD data texels. A value of 1 means a vert is generated for every LOD data texel. Larger values give lower fidelity surface shape with higher performance. |
Extents Size Multiplier |
Applied to the extents’ far vertices to make them larger. Increase if the extents do not reach the horizon or you see the underwater effect at the horizon. |
Center of Detail¶
Multiple Viewpoints |
Whether to support multiple center-of-detail (per camera). |
Viewpoint |
The viewpoint which drives the water detail - the center of the LOD system. Setting this is optional. Defaults to the camera. |
Camera Exclusions |
Rules to exclude cameras from being a center-of-detail. These are exclusion rules, so for all cameras, select Nothing. |
Nothing |
No exclusion rules applied. |
Hidden |
Exclude hidden cameras. Does not affect reflection cameras, as they are typically always hidden. Use the Reflection flag for them. |
Reflection |
Exclude reflection cameras. |
Non Main Camera |
Exclude cameras not tagged as MainCamera. |
Everything |
Apply all exclusion rules. |
Data Background Mode |
The background rendering mode when a camera does not render. When switching between multiple cameras, simulations will not progress for cameras which do not render for that frame. This setting tells the system when it should continue to progress the simulations. |
Always |
Always progress simulations in the background when camera does not render. |
Inactive |
Progress simulations in the background when camera is inactive (ie !isActiveAndEnabled). |
Disabled |
Progress simulations in the background when camera is disabled (ie !enabled). |
Never |
Never progress simulations in the background. |
Displacement Correction |
Keep the center of detail from drifting from the viewpoint. Large horizontal displacement can displace the center of detail. This uses queries to keep the center of detail aligned. |
Sample Terrain Height For Scale |
Also checks terrain height when determining the scale. The scale is changed based on the viewer’s height above the water surface. This can be a problem with varied water level, as the viewer may not be directly over the higher water level leading to a height difference, and thus incorrect scale. |
Force Scale Change Smoothing |
Forces smoothing for scale changes. When water level varies, smoothing scale change can prevent pops when the viewer’s height above water sharply changes. Smoothing is disabled when terrain sampling is enabled or the water level simulation is disabled. |
Teleport Threshold |
The distance threshold for when the viewer has considered to have teleported. This is used to prevent popping, and for prewarming simulations. Threshold is in Unity units. |
Simulations¶
Animated Waves¶
All waves (including Dynamic Waves) are written to this simulation.
Related: Animated Waves
Enabled |
Whether the simulation is enabled. |
Resolution |
The resolution of the simulation data. Set higher for sharper results at the cost of higher memory usage. |
Texture Format Mode |
Chooses a texture format based on a preset value. |
Manual |
Uses the Texture Format property. |
Performance |
Chooses a texture format for performance. |
Precision |
Chooses a texture format for precision. This format can reduce artifacts. |
Texture Format |
The render texture format used for this simulation data. It will be overridden if the format is incompatible with the platform. |
Query Source |
Where to obtain water data on CPU for physics / gameplay. |
None |
No query source. |
GPU |
Uses AsyncGPUReadback to retrieve data from GPU to CPU. This is the most optimal approach. |
CPU |
Computes data entirely on the CPU. |
Maximum Query Count |
Maximum number of queries that can be performed when using GPU queries. |
Collision Layers |
Collision layers to enable. Some layers will have overhead with CPU, GPU and memory. |
Nothing |
No extra layers (ie single layer). |
Dynamic Waves |
Separate layer for dynamic waves. Dynamic waves are normally combined together for efficiency. By enabling this layer, dynamic waves are combined and added in a separate pass. |
Displacement |
Extra displacement layer for visual displacement. |
Everything |
All layers. |
Baked Wave Data |
|
Wave Sampling |
The wave sampling method to determine quality and performance. |
Automatic |
Automatically chooses the other options as needed (512+ resolution needs precision). |
Performance |
Reduces samples by copying waves from higher LODs to lower LODs. Best for resolutions lower than 512. |
Precision |
Samples directly from the wave buffers to preserve wave quality. Needed for higher resolutions (512+). Higher LOD counts can also benefit with this enabled. |
Wave Resolution Multiplier |
Shifts wavelengths to maintain quality for higher resolutions. Set this to 2 to improve wave quality. In some cases like flowing rivers, this can make a substantial difference to visual stability. We recommend doubling the Resolution on the WaterRenderer component to preserve detail after making this change. |
Attenuation In Shallows |
How much waves are dampened in shallow water. |
Shallows Maximum Depth |
Any water deeper than this will receive full wave strength. The lower the value, the less effective the depth cache will be at attenuating very large waves. Set to the maximum value (1,000) to disable. |
Water Depth¶
Water depth information used for shallow water, shoreline foam, wave attenuation, among others.
Related: Shorelines & Shallows
Enabled |
Whether the simulation is enabled. |
Override Resolution |
Whether to override the resolution. If not enabled, then the simulation will use the resolution defined on the Water Renderer. |
Resolution |
The resolution of the simulation data. Set higher for sharper results at the cost of higher memory usage. |
Texture Format Mode |
Chooses a texture format based on a preset value. |
Manual |
Uses the Texture Format property. |
Performance |
Chooses a texture format for performance. |
Precision |
Chooses a texture format for precision. This format can reduce artifacts. |
Texture Format |
The render texture format used for this simulation data. It will be overridden if the format is incompatible with the platform. |
Blur |
Blurs the output. Enable if blurring is desired or intolerable artifacts are present. The blur is optimized to only run on inner LODs and at lower scales. |
Blur Iterations |
Number of blur iterations. Blur iterations are optimized to only run maximum iterations on the inner LODs. |
Query Source |
Where to obtain water data on CPU for physics / gameplay. |
None |
No query source. |
GPU |
Uses AsyncGPUReadback to retrieve data from GPU to CPU. This is the most optimal approach. |
Maximum Query Count |
Maximum number of queries that can be performed when using GPU queries. |
Include Terrain Height |
Whether to include the terrain height automatically. This will not include terrain details, nor will it produce a signed-distance field. There may also be a slight deviation due to differences in height data and terrain mesh. In these cases, please use the DepthProbe. |
Enable Signed Distance Fields |
Support signed distance field data generated from the depth probes. Requires a two component texture format. |
Water Level¶
Varying water level to support water bodies at different heights and rivers to run down slopes.
Related: Water Level
Enabled |
Whether the simulation is enabled. |
Override Resolution |
Whether to override the resolution. If not enabled, then the simulation will use the resolution defined on the Water Renderer. |
Resolution |
The resolution of the simulation data. Set higher for sharper results at the cost of higher memory usage. |
Texture Format Mode |
Chooses a texture format based on a preset value. |
Manual |
Uses the Texture Format property. |
Performance |
Chooses a texture format for performance. |
Precision |
Chooses a texture format for precision. This format can reduce artifacts. |
Automatic |
Chooses a texture format based on another. For example, Dynamic Waves will match precision of Animated Waves. |
Texture Format |
The render texture format used for this simulation data. It will be overridden if the format is incompatible with the platform. |
Blur |
Blurs the output. Enable if blurring is desired or intolerable artifacts are present. The blur is optimized to only run on inner LODs and at lower scales. |
Blur Iterations |
Number of blur iterations. Blur iterations are optimized to only run maximum iterations on the inner LODs. |
Foam¶
Simulation of foam created in choppy water and dissipating over time.
Related: Foam, Foam Settings
Enabled |
Whether the simulation is enabled. |
Override Resolution |
Whether to override the resolution. If not enabled, then the simulation will use the resolution defined on the Water Renderer. |
Resolution |
The resolution of the simulation data. Set higher for sharper results at the cost of higher memory usage. |
Texture Format Mode |
Chooses a texture format based on a preset value. |
Manual |
Uses the Texture Format property. |
Performance |
Chooses a texture format for performance. |
Precision |
Chooses a texture format for precision. This format can reduce artifacts. |
Texture Format |
The render texture format used for this simulation data. It will be overridden if the format is incompatible with the platform. |
Blur |
Blurs the output. Enable if blurring is desired or intolerable artifacts are present. The blur is optimized to only run on inner LODs and at lower scales. |
Blur Iterations |
Number of blur iterations. Blur iterations are optimized to only run maximum iterations on the inner LODs. |
Simulation Frequency |
Frequency to run the simulation, in updates per second. Lower frequencies are more efficient but may lead to visible jitter or slowness. |
Prewarm |
Prewarms the simulation on load and teleports. Results are only an approximation. |
Settings |
Settings for fine tuning this simulation. |
Dynamic Waves¶
Dynamic waves generated from interactions with objects such as boats.
Related: Dynamic Waves, Dynamic Waves Settings
Enabled |
Whether the simulation is enabled. |
Override Resolution |
Whether to override the resolution. If not enabled, then the simulation will use the resolution defined on the Water Renderer. |
Resolution |
The resolution of the simulation data. Set higher for sharper results at the cost of higher memory usage. |
Texture Format Mode |
Chooses a texture format based on a preset value. |
Manual |
Uses the Texture Format property. |
Performance |
Chooses a texture format for performance. |
Precision |
Chooses a texture format for precision. This format can reduce artifacts. |
Automatic |
Chooses a texture format based on another. For example, Dynamic Waves will match precision of Animated Waves. |
Texture Format |
The render texture format used for this simulation data. It will be overridden if the format is incompatible with the platform. |
Simulation Frequency |
Frequency to run the simulation, in updates per second. Lower frequencies are more efficient but may lead to visible jitter or slowness. |
Attenuation In Shallows |
How much waves are dampened in shallow water. |
Settings |
Settings for fine tuning this simulation. |
Flow¶
Horizontal motion of water body, akin to water currents.
Related: Flow
Enabled |
Whether the simulation is enabled. |
Override Resolution |
Whether to override the resolution. If not enabled, then the simulation will use the resolution defined on the Water Renderer. |
Resolution |
The resolution of the simulation data. Set higher for sharper results at the cost of higher memory usage. |
Texture Format Mode |
Chooses a texture format based on a preset value. |
Manual |
Uses the Texture Format property. |
Performance |
Chooses a texture format for performance. |
Precision |
Chooses a texture format for precision. This format can reduce artifacts. |
Texture Format |
The render texture format used for this simulation data. It will be overridden if the format is incompatible with the platform. |
Blur |
Blurs the output. Enable if blurring is desired or intolerable artifacts are present. The blur is optimized to only run on inner LODs and at lower scales. |
Blur Iterations |
Number of blur iterations. Blur iterations are optimized to only run maximum iterations on the inner LODs. |
Query Source |
Where to obtain water data on CPU for physics / gameplay. |
None |
No query source. |
GPU |
Uses AsyncGPUReadback to retrieve data from GPU to CPU. This is the most optimal approach. |
Maximum Query Count |
Maximum number of queries that can be performed when using GPU queries. |
Shadows¶
Shadow information used for lighting water.
Related: Shadows
Enabled |
Whether the simulation is enabled. |
Override Resolution |
Whether to override the resolution. If not enabled, then the simulation will use the resolution defined on the Water Renderer. |
Resolution |
The resolution of the simulation data. Set higher for sharper results at the cost of higher memory usage. |
Texture Format Mode |
Chooses a texture format based on a preset value. |
Manual |
Uses the Texture Format property. |
Performance |
Chooses a texture format for performance. |
Precision |
Chooses a texture format for precision. This format can reduce artifacts. |
Texture Format |
The render texture format used for this simulation data. It will be overridden if the format is incompatible with the platform. |
Blur |
Blurs the output. Enable if blurring is desired or intolerable artifacts are present. The blur is optimized to only run on inner LODs and at lower scales. |
Blur Iterations |
Number of blur iterations. Blur iterations are optimized to only run maximum iterations on the inner LODs. |
Simulation Frequency |
Frequency to run the simulation, in updates per second. Lower frequencies are more efficient but may lead to visible jitter or slowness. |
Dynamic Soft Shadows |
Whether to vary soft shadow jitter by scattering/absorption density. |
Soft Jitter Extinction Factor |
Factor control for dynamic soft jitter. |
Jitter Diameter Soft |
Jitter diameter for soft shadows, controls softness of this shadowing component. |
Current Frame Weight Soft |
Current frame weight for accumulation over frames for soft shadows. Roughly means ‘responsiveness’ for soft shadows. |
Jitter Diameter Hard |
Jitter diameter for hard shadows, controls softness of this shadowing component. |
Current Frame Weight Hard |
Current frame weight for accumulation over frames for hard shadows. Roughly means ‘responsiveness’ for hard shadows. |
Allow Null Light |
Whether to disable the null light warning, use this if you assign it dynamically and expect it to be null at points |
Allow No Shadows |
Whether to disable the no shadows warning. Use this if you toggle the shadows on the primary light dynamically. |
Absorption¶
Absorption information - gives color to water.
Related: Color
Enabled |
Whether the simulation is enabled. |
Override Resolution |
Whether to override the resolution. If not enabled, then the simulation will use the resolution defined on the Water Renderer. |
Resolution |
The resolution of the simulation data. Set higher for sharper results at the cost of higher memory usage. |
Texture Format Mode |
Chooses a texture format based on a preset value. |
Manual |
Uses the Texture Format property. |
Performance |
Chooses a texture format for performance. |
Precision |
Chooses a texture format for precision. This format can reduce artifacts. |
Texture Format |
The render texture format used for this simulation data. It will be overridden if the format is incompatible with the platform. |
Blur |
Blurs the output. Enable if blurring is desired or intolerable artifacts are present. The blur is optimized to only run on inner LODs and at lower scales. |
Blur Iterations |
Number of blur iterations. Blur iterations are optimized to only run maximum iterations on the inner LODs. |
Shoreline Color Source |
Source of the shoreline color. |
None |
No depth color. |
Depth |
Depth color based on water depth. |
Distance |
Depth color based on shoreline distance. |
Shoreline Color |
Color of the shoreline color. |
Shoreline Color Maximum Distance |
The maximum distance of the shoreline color. If using Depth, then it is maximum depth. |
Shoreline Color Falloff |
Shoreline color falloff value. |
Scattering¶
Scattering information - gives color to water.
Related: Color
Enabled |
Whether the simulation is enabled. |
Override Resolution |
Whether to override the resolution. If not enabled, then the simulation will use the resolution defined on the Water Renderer. |
Resolution |
The resolution of the simulation data. Set higher for sharper results at the cost of higher memory usage. |
Texture Format Mode |
Chooses a texture format based on a preset value. |
Manual |
Uses the Texture Format property. |
Performance |
Chooses a texture format for performance. |
Precision |
Chooses a texture format for precision. This format can reduce artifacts. |
Texture Format |
The render texture format used for this simulation data. It will be overridden if the format is incompatible with the platform. |
Blur |
Blurs the output. Enable if blurring is desired or intolerable artifacts are present. The blur is optimized to only run on inner LODs and at lower scales. |
Blur Iterations |
Number of blur iterations. Blur iterations are optimized to only run maximum iterations on the inner LODs. |
Shoreline Color Source |
Source of the shoreline color. |
None |
No depth color. |
Depth |
Depth color based on water depth. |
Distance |
Depth color based on shoreline distance. |
Shoreline Color |
Color of the shoreline color. |
Shoreline Color Maximum Distance |
The maximum distance of the shoreline color. If using Depth, then it is maximum depth. |
Shoreline Color Falloff |
Shoreline color falloff value. |
Surface Clipping¶
Clip surface information for clipping the water surface.
Related: Water Exclusion
Enabled |
Whether the simulation is enabled. |
Override Resolution |
Whether to override the resolution. If not enabled, then the simulation will use the resolution defined on the Water Renderer. |
Resolution |
The resolution of the simulation data. Set higher for sharper results at the cost of higher memory usage. |
Texture Format Mode |
Chooses a texture format based on a preset value. |
Manual |
Uses the Texture Format property. |
Performance |
Chooses a texture format for performance. |
Precision |
Chooses a texture format for precision. This format can reduce artifacts. |
Texture Format |
The render texture format used for this simulation data. It will be overridden if the format is incompatible with the platform. |
Blur |
Blurs the output. Enable if blurring is desired or intolerable artifacts are present. The blur is optimized to only run on inner LODs and at lower scales. |
Blur Iterations |
Number of blur iterations. Blur iterations are optimized to only run maximum iterations on the inner LODs. |
Default Clipping State |
The default clipping behavior. Whether to clip nothing by default (and clip inputs remove patches of surface), or to clip everything by default (and clip inputs add patches of surface). |
Nothing Clipped |
By default, nothing is clipped. Use clip inputs to remove water. |
Everything Clipped |
By default, everything is clipped. Use clip inputs to add water. |
Albedo / Decals¶
Albedo - a color layer composited onto the water surface.
Related: Albedo
Enabled |
Whether the simulation is enabled. |
Override Resolution |
Whether to override the resolution. If not enabled, then the simulation will use the resolution defined on the Water Renderer. |
Resolution |
The resolution of the simulation data. Set higher for sharper results at the cost of higher memory usage. |
Texture Format Mode |
Chooses a texture format based on a preset value. |
Manual |
Uses the Texture Format property. |
Performance |
Chooses a texture format for performance. |
Texture Format |
The render texture format used for this simulation data. It will be overridden if the format is incompatible with the platform. |
Blur |
Blurs the output. Enable if blurring is desired or intolerable artifacts are present. The blur is optimized to only run on inner LODs and at lower scales. |
Blur Iterations |
Number of blur iterations. Blur iterations are optimized to only run maximum iterations on the inner LODs. |
Reflections¶
The reflection renderer.
Related: Reflections
Enable |
Whether planar reflections are enabled. Allocates/releases resources if state has changed. |
Capture¶
Mode |
What side of the water surface to render planar reflections for. |
Both |
Both sides. Most expensive. |
Above |
Above only. Typical for planar reflections. |
Below |
Below only. For total internal reflections. |
Layers |
The layers to rendering into reflections. |
Resolution |
Resolution of the reflection texture. |
Overscan |
Overscan amount to capture off-screen content. Renders the reflections at a larger viewport size to capture off-screen content when the surface reflects off-screen. This avoids a category of artifacts - especially when looking down. This can be expensive, as the value is a multiplier to the capture size. |
Sky |
Whether to render the sky or fallback to default reflections. Not rendering the sky can prevent other custom shaders (like tree leaves) from being in the final output. Enable for best compatibility. |
Disable Pixel Lights |
Disables pixel lights (BIRP only). |
Disable Shadows |
Disables shadows. |
HDR |
Whether to allow HDR. |
Stencil |
Whether to allow stencil operations. |
Quality Settings Override |
Overrides global quality settings. |
Culling¶
Clip Plane Offset |
The near clip plane clips any geometry before it, removing it from reflections. Can be used to reduce reflection leaks and support varied water level. |
Far Clip Plane |
Anything beyond the far clip plane is not rendered. |
Disable Occlusion Culling |
Disables occlusion culling. |
Refresh Rate¶
Refresh Per Frames |
Refresh reflection every x frames (one is every frame) |
Frame Refresh Offset |
Oblique Matrix¶
Enable |
An oblique matrix will clip anything below the surface for free. Disable if you have problems with certain effects. Disabling can cause other artifacts like objects below the surface to appear in reflections. |
Non Oblique Near Surface |
Planar reflections using an oblique frustum for better performance. This can cause depth issues for TIRs, especially near the surface. |
Non Oblique Near Surface Threshold |
If within this distance from the surface, disable the oblique matrix. |
Advanced¶
Render Only Single Camera |
Whether to render to the viewer camera only. When disabled, reflections will render for all cameras rendering the water layer, which currently this prevents Refresh Rate from working. Enabling will unlock the Refresh Rate heading. |
Renderer Index |
Renderer index for the reflection camera. |
Underwater¶
The underwater renderer.
Related: Underwater
Enabled |
Whether the underwater effect is enabled. Allocates/releases resources if state has changed. |
Layer |
Any camera or probe with this layer in its culling mask will render underwater. |
Material |
The underwater material. The water surface material is copied into this material. |
Environmental Lighting¶
Enable |
Provides out-scattering based on the camera’s underwater depth. It scales down environmental lighting (sun, reflections, ambient etc) with the underwater depth. This works with vanilla lighting, but uncommon or custom lighting will require a custom solution (use this for reference) |
Weight |
How much this effect applies. Values less than 1 attenuate light less underwater. Value of 1 is physically based. |
Volume |
This profile will be weighed in the deeper underwater the camera goes. |
Advanced¶
Camera Exclusions |
Rules to exclude cameras from rendering underwater. These are exclusion rules, so for all cameras, select Nothing. These rules are applied on top of the Layer rules. |
Nothing |
No exclusion rules applied. |
Hidden |
Exclude hidden cameras. Does not affect reflection cameras, as they are typically always hidden. Use the Reflection flag for them. |
Reflection |
Exclude reflection cameras. |
Non Main Camera |
Exclude cameras not tagged as MainCamera. |
Everything |
Apply all exclusion rules. |
Copy Water Material Parameters Each Frame |
Copying parameters each frame ensures underwater appearance stays consistent with the water surface. Has a small overhead so should be disabled if not needed. |
Enable Chunk Culling |
Whether to enable culling of water chunks when below water. |
Cull Limit |
Proportion of visibility below which the water surface will be culled when underwater. The larger the number, the closer to the camera the water tiles will be culled. |
Meniscus¶
The meniscus module.
Enabled |
Whether the meniscus is enabled. |
Layer |
Any camera with this layer in its culling mask will render the meniscus. |
Material |
The meniscus material. |
Advanced¶
Camera Exclusions |
Rules to exclude cameras from rendering the meniscus. These are exclusion rules, so for all cameras, select Nothing. These rules are applied on top of the Layer rules. |
Nothing |
No exclusion rules applied. |
Hidden |
Exclude hidden cameras. Does not affect reflection cameras, as they are typically always hidden. Use the Reflection flag for them. |
Reflection |
Exclude reflection cameras. |
Non Main Camera |
Exclude cameras not tagged as MainCamera. |
Everything |
Apply all exclusion rules. |
Portals¶
The portal renderer.
Related: Portals & Volumes
Enabled |
Whether portal rendering is enabled. |
Mode |
Rendering mode of the portal (and water surface). See the manual for more details. |
Portal |
A portal to infinite water, rendered from front faces of geometry. |
Volume |
A volume of water rendered which only works when the viewer is outside the volume. It uses both front faces and back faces. It is more efficient than VolumeFlyThrough. |
Volume Fly Through |
A volume of water rendered which also works with the viewer inside the volume. It uses both front faces and back faces. It also requires the stencil buffer and is less efficient than Volume. |
Tunnel |
Removes the water surface and underwater effect for caves etc. The walls most be covered by geometry (eg cave) for this to look correct. |
Geometry |
Mesh (Mesh Filter) to use to render the portal. It will use the Mesh Filter’s transform. |
Invert |
Use the back-faces of the mesh. Useful for portholes on watercraft or tunneling through water. |
Maximum Resolution |
The maximum resolution of the portal effect. Resolution is derived from the texel size and the size of the largest dimension of the bounds of the geometry. |
Texel Size |
The texel size of the portal effect. This is the primary quality control, where lower is higher quality. |
Overrides¶
Default Excludes |
What aspects of water should be excluded by default. Excludes aspects of water globally. Local Overrides will need to be used to add the water. |
Nothing |
Affects nothing. |
Surface |
Affects the water surface. |
Volume |
Affects the water volume. |
Physics |
Affects water physics (anything that calls HasWater). |
Everything |
Affects everything. |
Edit Mode¶
Show Water Proxy Plane |
|
Follow Scene Camera |
Move water with Scene view camera if Scene window is focused. |
Editor Multiple Viewpoints |
Each scene view will have its own viewpoint. |
Height Queries |
Whether height queries are enabled in edit mode. Queries force enable “Always Refresh” scene view option. |