Stylized Water 2 documentation

📣 UNITY 6

Reminder: this asset is developed for use with Unity 2020-2023.2

Stylized Water 3, for Unity 6, is available now!

If you have purchased a license for Stylized Water 2 less than 45 days ago you are able to upgrade for free! This option will be available until December 31st 2024. (upgrades are a fixed system, no exceptions can be made by either me or Unity staff)

A 25% upgrade discount will remain in effect until June 2025.

Stylized Water 2

Stylized Water 2
Version: 1.6.9
Review

8.Roadmap #

There really is no shortage of ideas, and there are still plenty of things I want to work on! These are some features that are slated for R&D or are in an early stage. A general design principle if that everything should remain plug & play, and can be disabled entirely to avoid a performance impact for unused features.

I must, however, stress that anything written here is not concrete and subject to change.

The Trello board, used to manage development tasks can be publically viewed here:

Trello Board

Stylized Water 3

The Stylized Water 2 asset was initially released in November 2020. It has been regularly updated and extended through free updates, version 1.0.0 and 1.6.0 are miles apart. Development is purely funded by the purchase of new licenses, instead of the purchase of “update packages”. Which, in the long run, is not sustainable. Unfortunately the asset store ecosystem does not facilitate this, except by splitting versions into separate assets altogether.

In 2024, with the release of Unity 6, future development will branched off into Stylized Water 3, so that users who contributed in 2020-2023 can choose to receive updates onwards in 2024-20xx, and benefit from a range of new features. Whilst SW2 can remain stable and available for projects in the final stages of development. Bug fixes will still be applied, but new features target SW3.

For both the Underwater Rendering and Dynamic Effects extensions, a separate SW3-version will be released. An upgrade price for these should be expected, but isn’t guaranteed.

Support for WebGL is rapidly fizzling out, in favor of WebGPU.

WebGL does not support Compute Shaders nor Texture Arrays, two very important technical concepts. At least two features in Stylized Water 3 make use of these, so inherently won’t work in WebGL. On release, the asset will be marked as incompatible with WebGL entirely.

Seeing as development continues with Stylized Water 3, new features or improvements will not be backported to Stylized Water 2

Stylized Water 3 does not contain an integration for Dynamic Water Physics 2. It has consistently been the source of support overhead (people assuming I’m the author, questions about physics, wild goose chases for issues that turn out not to be related to SW and DWP2 not keeping their docs up-to-date with SW2).

Instead the author of DWP2 will was offered a free license to SW3 to develop and maintain an integration, should they wish to so.

Extensions

This is all to share some ideas and experiments, they may end up never being released, or are indefinitely on hold. There’s also a limit to how much you can cram into a shader, historically many water assets have been deprecated due to rising complexity, which is to be avoided

Features that are complex, and require a sizeable amount of development time will be published as separate paid extensions. Rather than making a single high priced asset, the intend is to keep things modulair.

In order of importance/completion:

Released

Dynamic Effects (extension asset)

This replaces and combines the previously prototyped Surface Modifiers and Interaction extensions

A decal-like system that allows the water surface to be displaced and its foam and normals to be modified. These decals are projected from a top-down perspective onto the water surface.

In practical terms, it means particle systems, trail renderers and static meshes can be used to influence the appearance of the water.

Bonus: The displacement also works with the underwater rendering water line!

The normals of the water surface are recalculated from the created displacement (Y-axis only), ensuring any and all lighting effects look correct. For example, a wave actually makes the surface appear to curve.

Shown here is a single “Beach Wave” particle system that emits particles moving forward. The ‘Color Over Lifetime’ module is used to control the fading of displacement and foam.

The boat wake above uses two TrailRenderer components, and a ‘ripples’ particle system.

A ripples particle effect is attached to the surfers here

Status: Released

1.5.0

  • Color absorption feature, darkens the underwater color based on depth (physically accurate shading)
  • Improved refraction, taking the curvature of the surface into account more accurately.
  • Improved surface foam, where it appears to dissipate based on the “intensity”. Visually, this translates to way better foam caps on wave crests.

1.4.0

  • Conversion to a new “scriptable shader” framework. This allows the shader code to first be passed through a C# template parser. Meaning that things like integrations and support for extensions will be automatically configured. Plus this’ll make it easier to implement URP version specific code, safeguarding against breaking changes.

Underwater rendering (extension asset)

Allows a camera to be partially submerged, and draws a waterline effect on the camera lens. Underneath the water surface, fog and caustics are drawn and the water refracts the scene below the water.

Status: Released!

Tessellation (feature update)

Dynamically subdivides the water geometry to create more vertices near the camera. This allows to have very detailed waves near the camera, without needing a high-poly mesh.

Status: Added in version 1.1.2 through a free update

Yes No Suggest edit
Last updated on October 31, 2024
7 of 7 users found this section helpful
Suggest Edit