godotengine / godotengine/godot

Physics interpolation breaks GPUParticles2D and CPUParticles2D movement

Open
#92,006 7 comments 12 reactions 0 assignees View on GitHub
bug confirmed documentation topic:2d topic:particles topic:physics topic:rendering
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

Reproducible in 4.3 beta and latest on master.

### System information

Windows 10 - Vulkan Forward+

### Issue description

Moving and rotating particle emitters whose particles use global coordinates seems to break particle interpolation. The particles will rotate with the emitter's transform instead of moving freely in global coordinate space.

With physics interpolation enabled:

https://github.com/godotengine/godot/assets/20360622/7dc9a5c3-7380-4e40-8497-12eee3b82422

With physics interpolation disabled:

https://github.com/godotengine/godot/assets/20360622/f2c1df54-a23f-407b-ab99-d2960b5b9ce4

### Steps to reproduce

1. Open minimal reproduction project.
2. Press F5 to run the project.
3. Use `w` and `d` keys to rotate the character, and press `space` to thrust.
4. Notice how active particles will move when you change the direction of rotation.
5. Go to settings, enable advanced settings and turn off physics interpolation.
6. Notice that particles will move as normal while the character rotates.

### Minimal reproduction project (MRP)

[interpolation-issue-mrp.zip](https://github.com/godotengine/godot/files/15330713/interpolation-issue-repro.zip)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.