-
-
Notifications
You must be signed in to change notification settings - Fork 21.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Vulkan: GPUParticles3D angular velocity has jumps #49767
Comments
Still observing strange jumps as of RC2. |
CC @unfa. Moving to 4.x for now as it's unlikely to be fixed this week. |
I can't reproduce this on 4.0.rc3 when using angular velocity + particle billboard in both 2D and 3D after setting Fixed FPS to 0 and disabling Interpolate. It should be noted that angular velocity does nothing if not using Particle Billboard, which I find a bit surprising. Minimal reproduction project: test_particle_angular_velocity.zip 2Dsimplescreenrecorder-2023-02-22_18.46.29.mp43DThere's an initial stray particle at the center that stays until its lifetime ends. This is a GPUParticles3D bug that doesn't occur in 2D. simplescreenrecorder-2023-02-22_18.46.37.mp4 |
I am not sure if this is the same bug, or a different one, but it's been affecting me since the beginning of Godot 4: All I did here was added randomized angle and damping. The first frame of a particle existing has a different angle than next one the middle of the motion, and once damping brings the particle to a complete stop, the angle is changed again. SSR-2023-02-23_02.19.57.webmThis "first frame is different" is something that still makes particles sometimes cover the whole screen, be emissive and have weird colors and generally try to trigger photosensitive epilepsy. It used to be so bad I had to stop using particles at all for some time, and then slowly start with CPU particles because the issue was less pronounced with them. |
I have the same with random angle. I feel like there's some strange stuff happening between the moment a particle dies and the moment it is respawned after. I took a video of what I was experiencing (and i could fix it by fading in the particle later). I am not sure what it is. I have tried making changes to the particle shader (for example angle is not taking into account the lifetime, but it takes directly CUSTOM.y which ignores random lifetime) but even fixing that doesn't fix the issue of the angle. I think it's a discrepancy on how particle data is handled. It doesn't even look like it's an issue with particle index because even when using a constant number for the random, it still shows. 2023-03-25.17-36-35.mp4 |
This is in 4.0 stable ^ |
Taking a look into this. The base angle is stored in godot/scene/resources/particle_process_material.cpp Lines 473 to 474 in d4dad2b
Then it is updated in the godot/scene/resources/particle_process_material.cpp Lines 740 to 742 in d4dad2b
Note how |
Thank you Clay! |
Godot version
v4.0.dev.custom_build [1acc76f]
System information
Linux Arch, Radeon RX 590
Issue description
Enabling angular velocity results in the particle angle to abruptly jump during the particle lifetime
https://gfycat.com/difficultweebrontosaurus
Steps to reproduce
Minimal reproduction project
No response
The text was updated successfully, but these errors were encountered: