Physical Water Surface

Update 3 - Released on February 9, 2018

[quote=ā€œ, post:13, topic:63597ā€]

It would be very interesting for me to hear how the performance is on a GPU with minimum VR spec (GTX 970 or AMD 290), so I can make a version of the material optimized for VR.

Have you done any VR optimization since this?

I did a quick test just now and found that Forward Rendering works with Physical Water Surface. However, I have not done any optimizations yet for Forward Rendering so at the moment I canā€™t tell you about the performance and if there are any limitations.

With a little tinkering you do stuff like this:

wwwā€¦com/watch?v=xUmpbpCbRxE

(Sorry about the horrific bitrate)

Hi, I have added physical water surface, how can I change the wave (and wind) direction. I am observing waves from an aerial viewpoint.

Do you need to change the wind direction dynamically, while the game is running?

Actually my requirement is twofold: changing the wind direction dynamically, while the game is running and changing the wind direction (linearly, e.g. north to south), before the game starts.

Changing the wind direction before the game starts will be included in the next update, this just requires transforming the wave parameters once.
Changing the wind direction while the game is running will be more complex, but also possible of course. It will be similar to the other sea state transitions that I have already implemented. One way of doing it would be to slowly rotate all the waves of the ocean around the viewpoint of the camera. But this needs to happen very slowly, otherwise it would look weird. How fast do you want to rotate the wind direction? Is it something that should happen during a few seconds, or during a few minutes?

I would suggest giving a scalar plugged into a lerpā€™s alpha and for A and B just put the less weird values which would guarantee a good transition. If the dev wants to change its their responsability while your is to make sure you are delivering a good visual solution.

Physical Water Surface is compatible with engine version 4.19. Please let me know if you should encounter any problems.

Iā€™ve nearly finished developing Update 4 of Physical Water Surface. This update will bring a number of features and improvements, many of them are based on customer feedback. One of these new features will be transitions between different wind directions while the game is running.

Will waves crashing on the shore be a thing?

Shore interaction is planned, but not for Update 4.

Awesome Canā€™t wait

Hi,

Could you please tell if the maximum value of wind speed can only be 35 m/s? Since I found there is no option that I can change to improve the maximum wind speed further. Could you please tell how can I improve the maximum speed further? Thanks!

Update 4 - Released on April 5, 2018

I know a lot of water-based assets are now requiring the ā€œgenerate mesh distance fieldsā€ setting, and I have a general idea of what it does and how it is useful. However, I donā€™t know what performance impact it hasā€¦ Does it generate the fields for all objects in the level? only the ones close to the player? Im working in VR, so, unfortunately, this matters haha.

Generate Mesh Distance Fields is in use in Fortnite mobile version, so the answer is that it will not have performance impact as long you tweak the size it will have (precision) for each mesh, because the more precision the more memory each mesh will require, this at least is important for mobile, not that much for VR where the hardware will be likely better in comparison, having more main system memory and more gpu memory aswel.

Awesome. Thanks for the quick response!
I do have another question though.
I have been struggling to make seafoam-capped waves like the Ocean in Epicā€™s water plane example.
Epicā€™s water motion was based off of a heightmap, it seems. And this uses a significantly more complicated wave system. Do you (or anyone) have suggestions on how to achieve this?

This new feature is providing in this new version called WaterHeight allows you to know at some point how high the water is (ofc) and this info allows you to mask inside the water material the appearance for the foam (a texture with a panning node to move the bubbles) and you will need to stablish how a certain height for this foam will receive this texture. It is nice to mix a noise texture so the foam will not appear like a straight line on top of the wave crests. So your foam would be something like:

FoamMask = clamp(0, WaterHeight, ((WaterHeight - WaterLocation.z) - foam size) * (max(VerticalGradient * PerlinNoise)))

approximately like above (I think I didnt miss anything), I will post the nodes assembled in a material as soon Epic make the package live. Which water material are you using?