Quality Settings

All global water parameters are located in Unity Project Settings: Edit → Project Settings → Graphics → KWS Water Settings

Water quality is directly linked to Unity Quality Levels (Very Low … Ultra). This means that when you switch the quality level in Unity, the water system automatically switches to the corresponding settings


Reflection

Reflections in KWS are additive. Screen Space Reflection is rendered first, and where it cannot reflect geometry (off-screen objects, behind water, etc.), the result is complemented by Planar Reflection (if used). This allows combining both methods for a balance of quality and performance

Screen Space Reflection (SSR) – fastest reflection method, even faster than Unity’s native SSR. Works as a screen-space effect, so it only reflects objects visible on the screen. Very efficient but can produce artifacts when geometry is off-screen. ⚠️ Tip: ideal for reflecting small details (rocks, grass, props) without extra rendering cost.

Planar Reflection – highly accurate but very expensive. Renders the scene a second time from the water surface point of view. Works only for flat water surfaces at a single height (the height of the Water Manager or Ocean). On surfaces with varying height (rivers, waterfalls), planar reflections will not appear correctly. ⚠️ Tip: use selectively via layers – e.g. reflect mountains and large objects, but exclude small props to save performance.

Anisotropic Reflections – simulates natural blurring of reflections at long distances. In reality, a single far-away pixel covers thousands of tiny waves, each with different normals. This effect blends them to create smoother, more realistic distant reflections.


Refraction (View Through Water)

Chromatic aberration of refraction. In practice, it makes shallow areas and wave crests show subtle rainbow-like edges. This effect is not physically based, It works best in clear water (high transparency). If the water is very turbid, dispersion will be less visible. It increases rendering cost slightly, since multiple wavelengths are sampled.

Refraction Resolution – controls the rendering resolution of the underwater world. At a distance, when viewing the water surface with waves, refraction introduces distortion and blur. In this case, lowering resolution can significantly save performance without noticeable visual loss. When the camera is close to the water surface, or when the Underwater Effect is active (camera below water), the system always switches to full resolution. This ensures that fine details of the underwater environment are preserved and not lost due to downscaling. ⚠️ Tip: Use lower resolution for general above-water scenes to optimize performance. Don’t worry about underwater views – the system automatically upgrades to full resolution when needed


Dynamic Waves

  • Toggles rendering of dynamic wave simulation globally.

  • When disabled, all dynamic wave simulations (simulation updating, splash particles and foam particles rendering) are turned off in every scene and water zone.


Ocean Foam

  • Toggles rendering of foam in the ocean globally.

  • Can reduce overdraw and bandwidth usage when foam is not visually important.



Wet Effect

Wet Effect darkens and adds subtle gloss to surfaces near the waterline so the water blends naturally with terrain and objects.

How it works – A wetness mask is generated around the water surface and applied to nearby geometry. – Areas in contact with water get stronger darkening and specular highlights, then fade out with height/distance using G-buffer in Built-in or Decal buffer in URP/HDRP.

In all pipelines the pass is screen‑space, so large on‑screen water areas and many overlapping zones increase bandwidth and fill‑rate.


Volumetric Lighting

Simulates light scattering inside the water volume – creating visible light beams and a sense of depth below the surface. Most noticeable in clear water under strong sunlight or spotlights.

Resolution Quality – defines the rendering resolution of the volumetric pass.  • Higher quality = sharper beams but more expensive.  • Lower quality = softer beams with more aliasing but cheaper.  ⚠️ Strongly affects performance, especially in scenes with many shadow-casting lights

Performance Notes:

  • Volumetric lighting is one of the most expensive water effects. Limit resolution and sample count where possible.

  • Temporal accumulation (from the water manager) blends samples over time to reduce noise, but may cause ghosting with fast camera or surface movement.

  • Optional blur (from the water manager) softens remaining noise and makes beams appear smoother, at a slight cost.


Caustic (Light Patterns on Surfaces)

Caustics simulate light patterns projected onto surfaces under the water – moving bright highlights created when sunlight (or other lights) refracts through waves. This effect is most visible in shallow areas, rivers, and nearshore water, and adds a lot of realism.

Ocean Caustic Resolution – defines the resolution of the ocean caustic texture. Low/Medium/High/Ultra – higher values improve sharpness and detail of caustic patterns, especially in shallow water. Higher resolution increases GPU cost proportionally (more simulation pixels)

Notes

  • Caustics require additional sampling and projection passes, so they increase GPU cost.

  • In very large water areas, projected textures can add fill-rate overhead.

  • Use caustics selectively. For example, enable them only in shallow areas or for pools/rivers, and reduce strength or disable them entirely for deep oceans where the effect would be invisible.


Underwater Effect

Uses a fullscreen post-processing pass when the camera is below the water surface using distortion, color absorption, refraction, volumetric lighting, caustic, etc.

Settings:

  • Toggles rendering of underwater rendering globally.


Mesh Settings

Water surface is rendered using an instanced quadtree mesh (similar to Unity Terrain). This approach provides high detail close to the camera, while using LOD for distant areas. It also uses dynamic frustum culling for vertices, so water outside the camera view is not rendered (unlike a simple grid).

Key Features:

  • Instanced Quadtree Rendering – dynamically subdivides the mesh near the camera for high detail while reducing resolution in the distance.

  • Dynamic Frustum Culling – vertices outside of the camera’s frustum are skipped, unlike a traditional static grid, which improves rendering efficiency.

  • Shared Mesh for All Zones – the ocean and all dynamic simulation zones (except baked zones) use the same continuous mesh.

    • This allows smooth blending between rivers, lakes, and the ocean surface.

    • Baked zones use pre-generated meshes and flowmaps for optimization.

  • LOD System – automatically adjusts detail levels depending on camera distance.

  • Camera-Centered Projection – the mesh is re-centered around the camera, giving the illusion of an infinite ocean without floating-point precision issues.

Mesh Detailing (Near Camera) Controls the level of detail for the water surface in areas close to the camera. High detail ensures realistic wave shapes and smooth foam rendering in close-ups (first-person cameras, cinematic shots). Increasing detail raises the vertex count and GPU load. Recommended for scenes where the player can closely interact with the water surface. Performance Tip: For third-person games or RTS-style cameras, a medium detail level is usually sufficient and saves performance.


Rendering Settings

Controls how water is rendered and integrated with the rest of the scene.

Transparent Sorting Priority – adjusts the render order of transparent objects. Lower values render earlier, higher values render later. Useful if you have multiple transparent assets (like particles, glass, or UI) that overlap with water.

Last updated