Comments (7)
Once asynchronous gpu readbacks get implemented into godot it might help with the jitteriness of buoyant objects as explained by acerola in his buoyancy video
from godot4-oceanfft.
Could you share your settings/OS/render mode? I'm not getting any jitter if frameskip and heightmap sync frameskip are set to 0, and only getting the amount of jitter I'd expect to see with those settings increased.
from godot4-oceanfft.
Bildschirmaufzeichnung.vom.2024-02-13.22-03-56.webm
This is the latest commit on devel. I also have frameskip and heihgtmap sync set to 0. I reduced the lods to 1 to get acceptable fps.
from godot4-oceanfft.
I use Linux/integrated graphics, so I only got ~25fps, but that shouldnt affect the waves.
from godot4-oceanfft.
I think that may possibly be Z-fighting, the cameras in the example scene have a very large range (near 1.0 far 16000.0) which would make that likely to happen.
If you lower the far plane on the camera, does that reduce this flickering?
from godot4-oceanfft.
I've finally had a chance to sit down and investigate this closer, and it's definitely not Z-fighting. It's also noticeable on Windows 10 with a Radeon 6700.
It appears to be the result of the ocean simulation being out of sync with the buoyancy/physics system. If I run on a strong enough computer to reach 60fps, Vsync enabled, and 0 simulation and height map sync frame skips, then the ocean simulation is in sync (or near enough) with the physics system, the jitter is not noticeable.
If the Ocean TPS counter in the example scene is either above or below 60, the jitter becomes noticeable. Possibly because the height map is getting updated by the compute shaders on the render thread when the physics thread is trying to use it.
So the solution here is likely to make the height map sync in the render thread happen in sync with the buoyancy calculations in the physics thread, ideally without a significant performance impact.
from godot4-oceanfft.
Also setting the "maximum physics steps per frame" godot setting to 1 helped for me a bit. I tried once to get the wave height of buoyancy probes in _process(), store them, and access them later in _physics_process(), but that didnt seem to work (maybe I did it wrong though)
from godot4-oceanfft.
Related Issues (14)
- wave direction error HOT 4
- Window hangs when closed via the windows close button; the stop button in the editor works immediately HOT 1
- Ocean only renders in global +X/+Z quadrant direction, centered on camera, when using RADV Vulkan drivers on Linux HOT 4
- Key bindings does not work HOT 3
- better performance of mesh/lods HOT 4
- Improve Plugin End-User Ergonomics HOT 5
- The speed of the MotorRectangle is very small HOT 2
- question: Generation of water surface only at height y = 0? HOT 1
- Planetary curve HOT 2
- Make wave generation parameters available to other shaders HOT 1
- Underwater particles clump up into stringy lines near the surface of the water
- Update to work with double precision build of Godot
- Ocean noise
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from godot4-oceanfft.