You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Euler angles have an ambiguity in whether the axes listed are extrinsic (chained world/parent space rotations) rotations or intrinsic (chained self/local space) rotations, and it's not clear right now that godot is referring to an intrinsic order
For example, godot and blender both let you pick the euler order, but these are actually different because blender is implicitly referring to an extrinsic order, while godot is implicitly referring to an intrinsic order, and so even if you set them both to the very same euler order, the order doesn't actually match, and you get a different result, because of this
Wikipedia uses different notations for each, and it actually happens to be the case that if you reverse the order, you get the equivalent rotation for the other interpretation.
x-y'-z" is used for intrinsically rotating X, then Y, then Z
Z-Y-X is used for extrinsically rotating Z, then Y, then X, which is actually equivalent, because the order is reversed!
I'm not sure what the best solution here is, but some clarification in the UI would be nice, whatever form it takes! Wikipedia uses the lowercase tickmark notation for intrinsic rotations, but that might get confusing for users. At the very least some kind of tooltip, or just using lowercase, might be enough of a clarification?
Also attaching two rotating cats, to show that the intrinsic x-y'-z" on the left, ends up being the same orientation as the extrinsic Z-Y-X
Correct, Godot's YXZ is order is intrinsically Y then X then Z when composing, or extrinsically Z then X then Y when composing, or intrinsically Z then X then Y when decomposing, or extrinsically Y then X then Z when decomposing. This is all quite a mouthful, and I'm not sure what's the most concise way to convey this information. I think when people see YXZ they assume intrinsic+composing, but somehow this should be explicitly documented.
blender is implicitly referring to an extrinsic order
That explains why I always found Euler angles in Blender infuriatingly difficult to use! 😛
I think the most low hanging fruit would be to plop it into a tooltip on the rotation order field. Another would be to use the x-y'-z" notation in the UI, although it might be a good idea to only use that notation in the dropdown menu when unfolded, to avoid cluttering the UI, or at least use lowercase letters to make it at a bare minimum distinct from wikipedia's and blender's use of uppercase for the extrinsic order
It is recommended to use +/- signs to represent extrinsic/intrinsic order respectively. Currently it is common to use uppercase and lowercase letters for distinction, although this may be ignored in formatted displays.
Tested versions
Godot 4.4.1
System information
Windows 11
Issue description
Euler angles have an ambiguity in whether the axes listed are extrinsic (chained world/parent space rotations) rotations or intrinsic (chained self/local space) rotations, and it's not clear right now that godot is referring to an intrinsic order
For example, godot and blender both let you pick the euler order, but these are actually different because blender is implicitly referring to an extrinsic order, while godot is implicitly referring to an intrinsic order, and so even if you set them both to the very same euler order, the order doesn't actually match, and you get a different result, because of this
Wikipedia uses different notations for each, and it actually happens to be the case that if you reverse the order, you get the equivalent rotation for the other interpretation.
x-y'-z" is used for intrinsically rotating X, then Y, then Z
Z-Y-X is used for extrinsically rotating Z, then Y, then X, which is actually equivalent, because the order is reversed!
I'm not sure what the best solution here is, but some clarification in the UI would be nice, whatever form it takes! Wikipedia uses the lowercase tickmark notation for intrinsic rotations, but that might get confusing for users. At the very least some kind of tooltip, or just using lowercase, might be enough of a clarification?
Also attaching two rotating cats, to show that the intrinsic x-y'-z" on the left, ends up being the same orientation as the extrinsic Z-Y-X
Link to the sister issue over at blender's house
Steps to reproduce
N/A
Minimal reproduction project (MRP)
N/A
The text was updated successfully, but these errors were encountered: