5.1 Water buoyancy not working?

water is using custom tesselated meshes, afaik won’t work with simple quad

Theres is no such thing as “quads” in engine. Everything gets triangulated on import if it isnt already - so not sure what you are on about.

Sorry I know that game engine use triangulated meshes. What i mean is how can I get the system working with a flat plane mesh.

It only works with its own thing.

If you want it to work with your custom mesh you need to use singlelayerwater and code it up to match/take the epic stuff into account.

In short, you are better off just creating your own thing entierly…

Im running into a simmilar issue. We had it perfectly working and it broke over the weekend with no changes made. Don’t ask me how.

The Collision channel is added and reapplied multiple times to the water body.

It seams like the Example Cube is hitting a plane and stop simulation at all.

I remember there was a bug that when there was an ocean and a lake, objects in the lake behaved like they were synced to the ocean waves instead but I don’t remember if I fixed it :frowning:

Looks just like the cube bounces off the floor and thats all. The points drawn across it for the wave don’t seem to apply or be relevant.

However, check the sleep time for the simulation. Maybe disable the sleep time alltogether…

The issue was Async Physic Tick. A plugin we added during this test does enable it by default on every edtor start. And it seams like buoyancy does not work with Async Physic Tick. Turing it off does resolfe the issue.

Which kind of leads the question why buoyancy does not support it. Tested it in a blank 5.4 project and it’s reproducable for us.

It’s not outlandish.
Water does its own math to determine the waves.
The calls for it can’t happen randomly, they have to all be precisely off the same timing - in both cpu for collisions and gpu for rendering.
Often, you run the same function - and they are completely separate but need to abide by the same (on frame tick because rendering only has that) timer.

Changing that timing to whatever you want is probably not a thing at all to begin with - because of the rendering implications.
Or well, its not that its not a thing its that sending data between CPU and GFX is not a thing - and its not that its not a thing, its that it costs more due to the CPU side than it does in just using the default timer - by how much, thats a good question. But its not like the engine works or renders nicely and fast, so “moo” point regadless.

Lets go with:
The engine is bad. The timing of each frame is trash. The end result is worse trash. Incrementing that timing even more is a horrible idea.

So yea.
You may be able to pipe in the timer you want and have it work Ok if using powerful hardware and building from souece.
However its 100% not worth the effort when you cripple ebrything else in the process…