godotengine / godotengine/godot
Scale is applied after orienting the ring emitter shape in Particles making it skew the shape
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
Reproduced in 4.2.2.stable and v4.3.dev.custom_build [8bf8f41fc]
### System information
Godot v4.3.dev (8bf8f41fc) - Windows 10.0.22631 - Vulkan (Forward+) - dedicated AMD Radeon RX 7800 XT (Advanced Micro Devices, Inc.; 31.0.24019.1006) - AMD Ryzen 9 7900X 12-Core Processor (24 Threads)
### Issue description
When applying a non uniform scale to a ring emission shape, you can see that the scaling it performed after orienting the ring to the axis, causing it to skew the shape, rather than scale it along it's local axis. Position is also applied afterwards, which is probably also undesireable. Note CPU particles do not have the scale option, so the issue does not exist there.
https://github.com/godotengine/godot/assets/4955051/5bd68086-b592-4841-a806-325838428473
### Steps to reproduce
Create a GPU particles system with a ring emitter and an axis of 1, 1, 0 and scale the x axis.
### Minimal reproduction project (MRP)
NA
Contributor guide
Research direction
Reproduce the issue by creating a GPU particles system with a ring emitter, setting its axis to 1, 1, 0, and scaling the x axis. Locate the GPU particle ring-emission implementation and trace the order of orientation, scale, and position transforms; done means non-uniform scale follows the ring's local axis without skewing the shape.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, godot
- Domain
- computer-graphics, game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100