Water System for the High Definition Render Pipeline

Hi,

Over the past few months, we have started an effort to provide an out of the box Water System solution for the High Definition Render Pipeline. With this message, we want to centralize future feedback about this system.

The feature is still in an early experimental phase and we are aware of its many limitations. In the upcoming weeks and months, we will work towards providing a robust tool our users can rely on to achieve high visual quality.

This solution aims to solve Oceans, Seas, Rivers, Lakes, and Pools rendering, while minimizing the cost.

The first iteration of the solution can be found in the following PR:

Here are two short videos of the feature in action:

Here is a list of the most important features we have, lack, and plan to add to the system.

Supported:

  • Multiple simultaneous water surface

  • Simulation of flat water on a quad, infinite plane (with Earth Curvature), or custom mesh

  • Realistic lighting scattering

  • Multi-band amplitude

  • Surface and underwater foam

  • Caustics

  • Support for wind and current.

  • Support for all light types

  • Shader graph integration for customization

Known limitations:

  • No support for underwater situation (no fog, no water line, etc.)
  • No water rejection (e.g. water leaks in dynamic objects such as boats)

Incoming improvements:

  • Improved parametrization and UI, with easier control for wave height control, and presets
  • Reduced large scale visual tiling
  • Underwater scenarios
  • Water rejection
  • Contact Foam (and better foam in general)
  • Support for decals for foam and normal alteration
  • Performance
  • Water physics

Thank you!

60 Likes

@auzaiffe videos links seems broken
out of curiousity, why not push it to master and marked it as experimental like the cloud system?

Certainly looks interesting. I am going to guess it somehow depends on HDRP features as itā€™s not for URP as well?

2 Likes

I saw it on twitter, It already looks super awesome!

now i just wonder the performance cost of it.

and i hope the foam solution could include at least two ways:

1.shader depth based one.(for performance scene)
2.projector based one.(for detailed scene)

Links are fixed now.

1 Like

Foam is a part of our priorities including the ones you mentionned.

1 Like

iā€™ll be soon merged into master and we will iterate on it.

Great job guys!!! Is it built with shader graph??

Some parts of the system are customizable within shader graph yes, more details will come as we iterate on it.

1 Like

is there gonna be support for integration with VFXgraph for procedural splashes?
Also what is this artifact on the screen edges?

1 Like

A suggestion: since Crysis-1 back from 2007 I havenā€™t seen chromatic aberration effect in ocean water refraction - if itā€™s possible to implement please do it :slight_smile:

4 Likes

Yes, integration with the VFX graph for splash particles is part if the roadmap and the artifacts are simply me capturing the unity editor window, with the edges

3 Likes

Is there any relation between what is used as a normal and the generated caustics, or are they completely unrelated?

I think the pool normal map is kinda bad. It has way too much high frequency noise while the caustics are too rounded and calm.

The refraction looks weird as well, for the same reasons.

I have less to complain about the ocean: it looks like a bit of an improvement from what Scrawkā€™s Ceto ocean had achieved 5+ years ago, which I guess is above what I typically expect from Unity.

This is great news ! A high quality built-in water system is definitely lacking right now.

However Crest has been an existing asset for a while supporting built-in, URP and HDRP, and implementing a lot of the features you mention already. Iā€™d be curious to know how your solution would compare to this asset and if you could improve (or speed-up) your development with their expertise or if you have to redo everything from scratch.

2 Likes

In fact,all available water assets suck right now.

Crest Ocean,you donā€™t have shader depth based foam,you have to bake every shoreline in many huge textures to get a ā€œnot very blurā€ foam line in big game scene.
and you donā€™t have rivers and lakes support for sure in Crest Ocean.

KWS water system looks good and have rivers support ,but when you use it you will notice the performance drops fast.
and it dose not have shader depth based foam as well.

R.A.M got good performance and shader depth based foam support.but you donā€™t have infinite ocean solution in it.

so the water system in HDRP really needs ā€œone solution for allā€ right now.

1 Like

Very cool job, such system was really missing. Will you use splines package for rivers? Would be awesome!

1 Like

Great news! I appreciate your work guys. I would love to see the possibility of creating larger waves. Rarely any ocean system ever can deliver in the ā€œangry oceanā€ department.

Plus splashes and ripples for interacting non-kinematic rigidbodies. Not just point splashes, but interactions with complex, even large colliders.

Crest does support rivers and lakes (in preview). :^)

1 Like

@auzaiffe say can we inject flow map to the water system? either via decals or render texture?

Yes both decals (part of the next iteration) and render textures (already possible) to alter water surface properties such as the normals, foam, smoothness, etc.

3 Likes