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)

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??