Reviewed for: Gaia Version 2.2.3

Gaia comes with a water system that can simulate oceans and lakes including underwater effects. The water can be customized regarding color, transparency, wave normals, etc. to your liking.
Collections of water settings can be saved as "Water Profiles" which allows you to quickly change between different water setups and also to transfer these water settings between scenes.

In addition to look nice in your scene, the water or sea level does also play an important role in spawning, since you can define spawn rules that are relative to the sea level. In this way you can e.g. spawn a sand texture near the sea level to create a beach, and if you decide to increase the sea level later in development, your texturing will follow accordingly when you respawn the textures so that your beach will still be in the correct height on the terrain.

When Gaia does set up water in your scene from the Gaia Manager Runtime tab, it will create a "Gaia Water" object below "Gaia Runtime" in your scene. The Gaia Water object serves as a container for the water surface, and underwater post processing objects, but also contains a lot of settings to adjust the water in the scene to your liking.


When selecting the Gaia Water object, you can find all water settings for your scene in the Inspector:


The first setting is the "Water System Mode" that has 3 settings:

  • Gaia is the default mode where the water in the scene is controlled by Gaia. This mode offers a lot of additional options in multiple panels which are explained in the following sections.  
  • 3rd Party is a mode Gaia will not create water, but will allow you to reference another Game Object that controls the water instead. This just serves as a shortcut to jump quickly to this object in question via the "Edit" button.

  • None - Gaia will not use water


When in "Gaia" Mode, the next setting you will see is the currently active Water Profile - the Water Profile is a collection of settings for the water shader that make up the look of the water of your scene. By switching between the water profiles you can quickly change the look of the water in your scene, and you can create your own profiles as well.


The actual settings like water color and smoothness etc. for this profile are found in the Water Profile Settings Panel.

Water Profile Settings


The Water Profile Settings contain the settings that will impact the water shader directly and thus the look of the water in your scene. Upon first opening this panel, you will most likely notice that all the settings are locked initially:


This is because the settings displayed in this panel are related to the Water Profile selected above, and you will have one of Gaia's default profiles selected which are not editable. You can click the "Create New Profile" or the small "+" Button to create a copy from the current profile which you then can edit as you see fit. You can always return to the default profiles to make another editable copy, so there is no risk in exploring all the water settings.

If you need help with what the individual settings for the water shader do, you can click the question mark button in the top right corner of the panel to activate the inline help.



Global Settings


The Global Settings panel contains global water settings that do not have immediately to do with the water shader itself.



Enable GPU InstancingToggles GPU Instancing on the Water Material in the scene.
Infinite ModeWhen enabled, the water mesh will follow the player around, so that there is the illusion of an infinite ocean around the player. The water effects like waves etc. are calculated in world space, so the player normally would not notice that the water plane is following the camera.

If you need the water plane to stay in place, you can deactivate this option. If you need a large ocean still, note that you can exchange the mesh on the water surface object with any other mesh of your liking, e.g. you can exchange it with a simple, very large plane.
Water PrefabThe Prefab that is spawned for the water surface in the scene when creating water.
Transition FX PrefabA Prefab that is spawned above the water surface to create a transition effect from over- to underwater.


Reflection Settings


The water surface can reflect the surrounding scene which adds to the believability of the water effect. Calculating Reflections costs performance, but there are various reflection systems that help you to fine tune the reflection behaviour to find the best "looks vs. performance" trade-off for your scene.



The reflection image on the water surface is calculated by a hidden camera in the scene, so a lot of the following options have to do with how this reflection image is being generated.



Enable ReflectionsToggles the Water Reflections on and off altogether.
Auto RefreshPer default, the camera reflections will only update when the camera is moving to preserve performance. This is enough for most cases as usually the camera is usually moving almost always if the user can freely control the camera.

However if you are using a fixed camera, or you notice issues e.g. with moving objects not being updated frequently enough in the reflections, you can set up additional options here for automatically refreshing the reflection image.
Auto Update ModeChoose between 3 different modes for automatically updating the camera:

Interval - Camera will be updated at a fixed Interval
Scene Conditions- Camera will be updated if certain aspects of the scene such as lighting change.

When selecting "Interval" you can enter a Refresh Rate in seconds. If you uncheck the box for Ignore Scene Conditions, Gaia will additionally check for the Scene Conditions when in Interval mode - so you would get both updates at the fixed interval, but also when scene conditions change.
Allow MSAAAllows Multi-Sample Anti-Aliasing on the Reflection Camera.
Enable HDRToggles HDR Rendering on the Reflection Camera
Disable Pixel LightsDisables per-pixel Lights on the Reflection Camera
Enable Height FeatureAllows you to disable reflections as soon as the player reaches a certain height in the scene - when the player is higher up and therefore further away from the water surface, usually rendering reflections is not a priority anymore.
Enable Custom DistanceAllows you to either set a certain culling distance for the reflection calculations - OR- set a distance per rendering layer ("Enable Multi Layer Distance")  at which the reflection is not calculated anymore.

The latter is very attractive if you set up your assets according to their size on different layers, as this allows you to cull small objects like stones very early, while big objects like houses are displayed at a higher distance in the reflection image.
Reflection ResolutionResolution / Quality of the Reflection image. The resolution is directly proportional to the performance impact.
Clip Plane OffsetCreates a vertical offset for the reflection image
Reflected LayersLayers that are incorporated in the reflection image. Turn off anything in here that does not need to be displayed in the reflection to save performance.



Underwater Settings


This panel holds settings related to the underwater FX (Visual effects to give the impression the camera is inside a body of water)

Please Note: Not all of these settings work across each rendering pipeline (yet). We will further refine these underwater effects in future updates of Gaia.




Use CausticsEnables Caustics (The light refractions of the "moving" water surface)


This effect is realized as an animated cookie texture on the directional light in the scene that is activated as soon as the camera goes under the water surface.

Main Caustic LightThe main directional light of the scene which the caustics cookie texture is applied to.
Caustic Frames per SecondAnimation Speed for the Caustics Effect
Caustics Size(Tiling) Size of the Caustics Effect
Underwater Particles PrefabThe Prefab that is used to play back the underwater Particle FX
Underwater Horizon PrefabA set of underwater "walls" that move with the player to prevent visual issues with fog in the distance.
Enable Underwater EffectsToggles the underwater effects altogether.
Enable Underwater Post FXToggles the underwater post processing effects.
Enable Underwater FogToggles the underwater "fog" that is used to simulate the reduced vision range when being under water.
Enable Underwater ParticlesToggles the floaty underwater particles.



Mesh Quality Settings


Per default Gaia will create a water mesh for you. In this panel you can control the size, shape and quality of this mesh.


Please Note: The mesh quality is only relevant for the waves of the water shader. If you do not intend to have larger waves you can keep the quality low, or even replace the generated mesh with a flat plane to save performance.



Water Mesh QualityPreset values for the water mesh quality. The "Custom" setting allows you to set your own values.
Mesh TypeCircle or Square mesh shape.
Custom Mesh QualityA value that controls the amount of vertices used in the mesh generation. Higher value = more vertices / polygons
Water SizeSize of the mesh in meters..
Poly Count GeneratedRead-only value for the number of generated polygons - just a pointer how "heavy" the generated mesh is with the given settings.



Save And Load



The Save And Load Panel allows you to save the Water Profiles found above into a file. This file can be loaded back up again with the "Load From File" button. You can use this to back up the Water Profiles that you have created so far, or to transfer Water Profiles between scenes or projects.