Stylized Water 2 documentation

Stylized Water 2

Stylized Water 2
Author: jonathan
Version: 1.1.4
Dated: 22 Sep 2020

2.Compatibility #

Unity

Version

Minimum required version is Unity 2019.3.7f1, supported up to 2021.1. Works in 2021.2.0b8 so far.

Beta and Alpha versions may work but will not be eligible for support, these versions are only for beta and alpha testing as the name implies. Once a release version is available, the asset will be re-tested, and an update may follow with any required changes or fixes.

Scriptable Render Pipeline
Only compatible with the Universal Render Pipeline, minimum required version is 7.4.1 (available in 2019.3.7f1+). HDRP support unfortunately cannot be added, since this practically requires a complete rewrite, resulting in a new asset altogether.

Tested versions:

Unity version URP version
2019.3.7 7.4.1 – 7.4.3
2019.4.23 7.5.1 – 7.6.0
2020.1.14 8.2.0 – 8.3.1
2020.2.3 10.2.2 – 10.3.2
2020.3.4 10.4.0 – 10.5.0
2021.1.0 11.0.0
2021.2.0b1 12.0.0 (beta!)

Changes to the URP shader libraries are undocumented, meaning preview versions can break the shader. This takes time to manually reverse engineer. Sometimes pre-emptive fixes are made for alpha versions, but these may break in earlier or later alpha versions.

Platforms

Mobile
The minimum hardware requirement is a GPU compatible with OpenGL ES 3.0, this inherently excludes any devices equipped with a Mali T400. Devices released after 2012 support this. Or typically an iPhone 6s or newer. Vulkan is also supported.

Depending on the device and complexity of the project, it’s unlikely every feature on the shader can be enabled regarding performance. See the Performance Guidelines page for more details. Expecting desktop-level graphics on mobile is unfortunately not realistic.

The water will not turn pixelated the longer the application runs, though this may slowly start to occur after ~6+ hours due to the limited precision of mobile hardware.

Desktop VR
Tested using an Oculus Rift S with the Oculus XR plugin. The Multi-pass, Multiview and Single Pass Instanced rendering techniques are all supported and work the same across all VR plugins. As a means of optimization, orthographic camera’s are not supported when VR is used.

  • The “Shared depth buffer” option must be disabled in the Oculus XR settings, otherwise the water effects appear to lag behind the headset movement.
  • Planar reflections are not supported, regular reflections from the skybox or reflection probes work as expected.

Oculus Quest (2)

Tested using an Oculus Quest 2 with the Oculus XR plugin. Multiview rendering must be used, otherwise the water effects appear to lag behind the headset movement (issue with how the depth texture is rendered).

There’s a bug in OpenGLES 3.0 which severely affects transparent materials on Quest. When MSAA is enabled, they will either appear invisible or show blocky artefacts, depending if post processing is enabled or not. This means MSAA with transparent materials (such as water) aren’t supported on Quest.

As a rule of thumb: If a simple transparent plane works in your project, the water will also render correctly.

  • Planar reflections are not supported, regular reflections from the skybox or reflection probes work as expected.
  • Any reference to mobile platforms in the documentation also applies to Quest.

Oculus Go and Gear VR are considered obsolete, and are no longer being tested on. Though they practically work the same as Quest

MacOS
Compatible with both OpenGL 4.1 and Metal.

tvOS remains untested, though it also uses the Metal graphics API, so there’s a slim chance this will pose any issues. The 6th generation device releases soon, so compatibility will be verified in the near future.

Consoles
Tested via an external party on Playstation 4 (dev) and Xbox One X (UWP), where no graphical or performance issues were encountered.

Shader runs without any issues on Nintendo Switch. With all features enabled, the shader does not incur a noticeable performance hit (even in handheld mode). Though this may vary per project. Any references to mobile devices in the documentation should also apply to it.

Other assets

Fog post processing effects
See this page for a list of compatible assets.

Typically, any third-party fog/volumetric lighting solutions will ignore the water, which applies to all transparent materials in general. If this is the case, please get in touch so that I can investigate integration. The shader is set up in a way that easily facilitates this.

Support for Massive Clouds is unfortunately not possible, since the asset does not contain any reusable shader code for transparent shaders.

Use cases

Camera’s
Both perspective and orthographic camera’s are compatible. Rendering the water on an Overlay camera is not possible, due to limitations imposed by URP’s camera stacking system.

Features

Tessellation
May not appear to have any effect when using an incompatible graphics API or GPU. In this case it is automatically disabled, so it can be enabled without worrying about a pink shader on some devices.

Tessellation cannot work with waves if GPU Instancing is enabled on the water material, due to a limitation of Unity’s rendering architecture.

Yes No Suggest edit
Last updated on September 3, 2021
5 of 5 users found this section helpful
Suggest Edit