Order
of transformation
Order of transformation specifies in what order transformations (scaling,
rotation, and translation) are applied to an object. Depending
on the order of transformation, the same transformation values may
yield different results. (See the example below.)
![]() |
![]() |
![]() |
||
No trnasformation |
Rotate
along the z-axis by 45 degrees |
Scale
along the y-axis by 0.5 |
||
![]() |
|
|
||
No trnasformation |
Scale
along the y-axis by 0.5 |
Rotate
along the z-axis by 45 degrees |
Some 3D applications (e.g., Maya) do not allow
the user to change the
order of transformation, which is inconvenient in some cases. For
example, when you are making an animation of a textured ball which is rotating
and stretching/squashing while bouncing, you want to rotate the ball before
you stretch or squash
it by scaling it. (See
the top row in the example above.) Maya applies transformations in the fixed
order -- scaling, rotation, and translation. (The bottom row in the example
above.) To force a certain transformation order in Maya, you build a hierarchy
of transform nodes and use each node for one of the transformations.
A
problematic example of a bouncing ball
The squash does not look right because the order of transformation in Maya is scaling, rotation, and translation, no matter in what order you set up the channels for scaling, rotation and translation. We need to rotate the ball first and then scale and translate it.
Notes:
Correcting the problem
with use of transform nodes
The hierarchical structure should be...
![]() |
The squash should look better this
time because Maya is forced to apply rotation, scaling, and translation to the
ball in that specific order. It does not matter in what order you set up the
channels for scaling, rotation, and translation.
The animation is not
done yet. Squash happens in a much shorter amount of time, e.g., in 1 frame. You
need to add more keys and edit interpolation between keys to finish the
animation.