Confusion over GPUParticles3D > Local Coords

Godot Version

v4.6.stable

Question

Based on its description, setting local_coords to false should ignore node transform (rotation/position). But in my experience node position and rotation affect particles regardless of what this property is set to.

After some investigation, I’ve narrowed down the problem to particle shader EMISSION_TRANSFORM. Removing this from transforms in shader code will make local_coords property work as described.

My question is, is it ParticlesProcessMaterial that’s bugged or am I doing something wrong?

It doesn’t ignore node transform, it just doesn’t parent the particle to the node after it’s been created. The particle emitter will still emit relative to the node.

2 Likes

If local_coords is true, will EMISSION_TRANSFORM in particle shader be an identity matrix then?

Likely.

1 Like