godot
godot copied to clipboard
GPUParticles2D emit_particle() displays at previous location
Tested versions
Tested in in 4.3-stable and 4.4 beta 4
System information
Godot v4.4.beta4 - Windows 11 (build 22631) - Multi-window, 1 monitor - Vulkan (Mobile) - dedicated NVIDIA GeForce RTX 4090 Laptop GPU (NVIDIA; 32.0.15.6094) - Intel(R) Core(TM) i9-14900HX (32 threads)
Issue description
When using emit_particle() with EMIT_FLAG_POSITION , sometimes the particle emitted appears for a frame in the location of the last spawned particle. It happens extremely infrequently at higher values for fixed_FPS but can be seen consistently at low values.
Here's a video of the problem:
https://github.com/user-attachments/assets/36bee3f7-8856-41d0-92de-a3457687431c
Observe how the particles emitted by the lower FPS emitter appear to pop from the previous position to the emitted position. This behavior can also be observed at higher frame rate emitters, it's just far less frequent.
Steps to reproduce
- Create a GPUParticles2D
- Set fixed_fps to 10
- Set particle lifetime to 0.1s
- Set emitting to false
- in a new script, use emit_particle() to create particles
- make sure there is sufficient delay between emissions (0.5s)
- emit particles at a new position each time
- observe snapping behavior