Skip to content
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

Converting GPUParticles3D to CPUParticles3D (or vice versa) doesn't preserve ring emission shape properties #100946

Open
Calinou opened this issue Dec 30, 2024 · 3 comments · May be fixed by #101012

Comments

@Calinou
Copy link
Member

Calinou commented Dec 30, 2024

Tested versions

  • Reproducible in: 4.4.dev7

System information

Godot v4.4.dev7 - Windows 10.0.22631 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 4090 (NVIDIA; 32.0.15.6636) - 13th Gen Intel(R) Core(TM) i9-13900K (32 Threads)

Issue description

Converting GPUParticles3D to CPUParticles3D (or vice versa) doesn't preserve ring emission shape properties. In comparison, most other emission shape properties (point, box, sphere, sphere surface) are preserved both ways.

This should be straightforward to resolve by modifying gpu_particles_3d.cpp and cpu_particles3D.cpp's convert_from_particles() methods. Read the properties from the source node and apply them to the newly created node.

GPUParticles3D

Before converting to CPUParticles3D

Image

After converting to CPUParticles3D

Image

CPUParticles3D

Before converting to GPUParticles3D

Image

After converting to GPUParticles3D

Image

Steps to reproduce

  • Create a CPUParticles3D node with a ring emission shape and non-default values for the height, inner radius, outer radius and angle.
  • Convert it to GPUParticles3D using the menu at the top of the 3D editor viewport.
  • Notice how the ring reverts to its default cylinder-like appearance.
  • Change the properties in ParticleProcessMaterial, then convert it back to CPUParticles3D.
  • Notice how the shape reverts to its default cylinder-like appearance again.

Minimal reproduction project (MRP)

test_particles_ring_conversion.zip

@Sibcgh
Copy link

Sibcgh commented Dec 31, 2024

Hi is this ticket available? I'd like to take a look and tackle this as my first issue.

@Zireael07
Copy link
Contributor

Godot Engine repo does not practice assigning issues. Since this is tagged as good first issue, just go ahead

@zachseiss
Copy link

I've submitted a pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
5 participants