I can't get my 3d gpu particles to rotate

Godot Version

4.2.1

Question

i feel like i am going insane. everyone says that these parameters- spawn angle and angular velocity- control the rotation of the particle mesh. but changing their values doesn’t do anything for me?

furthermore, what axis is this a rotation on? rotations are 4D quantities or at the very least often aggregated in 3D, are these ‘angles’ of some axis? how would i clarify an exact rotation?

to clarify i do not want to rotate the motion of the particles, i can get some kind of mesh rotation by giving the whole system angular accelerations. but how can i just make the meshes turn in place?

I believe the rotation only applies on particle billboard’d materials, a lot of parameters require this. Some only work with other specific material flags set.

  • Color/Hue requires Vertext Color “use as albedo”
  • Scale requires Billboard “keep scale”
  • Animation requires H/V Frames count (which also requires particle billboard)
2 Likes

so how can i rotate the mesh

I was wrong! There are more cases in which it will rotate the mesh. From the documentation

● float angle_max [default: 0.0]

Maximum initial rotation applied to each particle, in degrees.

Only applied when particle_flag_disable_z or particle_flag_rotate_y are true or the BaseMaterial3D being used to draw the particle is using BaseMaterial3D.BILLBOARD_PARTICLES.

Try setting particle_flag_rotate_y! particle_flag_disable_z will rotate in another direction, but flatten how the particles move.

1 Like

okay that allowed me to rotate along the y axis. it seems odd that there’s no way to rotate in any other direction, right? is there really no way for me to add some x or z rotation- at the start or in velocity? do i have to write some kind of custom particle shader??

I’m looking for an answer to this as well. I seem to only be able to rotate particles around the y-axis. Curious if anyone has found a solution?

i think that the default process material just doesn’t support robust rotation. like most things in godot it’s better to implement this yourself imo

Bit late to the party, but i’ll reply in case some poor soul runs in the same problem you guys and i just ran in. To rotate the particles on the Z axis, the DrawPasses/Pass1/Material/Billboard Mode needs to be set to Particle Billboard.

1 Like

Thanks! This saved my life!