My understanding
There are several possibilities for representing a rotation, e.g. direction + angle, which is the most visual but requires two distinct objects, and matrix or quaternion, which are preferred for computation but not visual at all.
Blender uses the previous methods and also an Euler angle representation, similar to a gimbal system. Any transform in a 3D space, excluding pure translations, can be expressed by three angles representing a chain of three rotations around three different axes in a specific order.
There is an infinity of choices for the axes. Usually axes are part of a Cartesian frame XYZ, and either fixed (extrinsic) or rotated (intrinsic). Proper Euler angles use a chain with the same axis for the first and third rotation, Tait-Bryan angles use different axes for the three rotations, but are also often referred to as Euler angles. One commonly used possibility is:
The red axes initially aligned with XYZ have been rotated by φ about Z, then by Φ about ξ, the older X axis now rotated, and finally by Ψ about ζ, the old Z. This Euler mode would be referred to as ZX'Z'' to give a meaning to the triplet (φ, Φ, Ψ).
In Blender these three angles can be grouped into a Vector of floats when a single object is preferred to represent the rotation. Still the angles mean nothing unless we know the chain of axes used (mode).
What the documentation says
From the Advanced section:
The special thing about this is that the axes have a hierarchical relationship between them: one of the axes is at the top of the hierarchy, and has one of the other two axes as its immediate child; at the same time, this child axis is the parent of the remaining axis, the one at the very bottom of the hierarchy.
Which axis is on top, which one in the middle and which at the bottom, depends on the particular Euler gimbal: there are six types of them, as there are six possible combinations: XYZ, XZY, YXZ, YZX, ZXY and ZYX Euler rotation modes. These modes are named using the letters of the axes in order, starting from the axis at the bottom of the hierarchy, and finishing with the one on top.
It doesn't indicate which mode is used.
My experiment
I setup an experiment to try understand which mode Blender uses:
It's just three Cartesian systems, a fixed set of XYZ axes, one set with darker colors randomly oriented using a Transform
node and used as a target. One last in lighter colors can be oriented manually using a Rotate Euler
(Euler + Object options) connected to a Transform
.
I'm able to match the darker system by orienting the mobile system. When matching, the Euler angle values match. But I still have trouble understanding the axes used.
When manipulating the Y input of Rotate Euler
, and looking along the world Y axis:
It can be seen that the size of the rotated light green axis changes during the rotation, which indicates the rotation is not about the world Y axis. I tried other possibilities but I was not able to determine which axis is associated with the Y input.
Question
What are the axes and the axis order used in Euler defined rotation?