Transform matrix
We've briefly touched on the fact that our math library multiplies matrices in a left to right order. But what exactly does this mean? When we multiply two matrices, we combine their linear transformations into one matrix. The first transformation applied is the one on the far left, then the one to its right, and so on.
For example, let's take two matrices, one that translates an object by 10 units on its X axis and one that rotates it by 45 degrees on its Y axis:
mat4 transform1 = Translate(10, 0, 0) * RotateY(45); mat4 transform2 = RotateY(45) * Translate(10, 0, 0);
Because matrix multiplication is not cumulative ,
transform1
, and transform2
are not the same! transform1
will move the object to (10, 0, 0)
, and then rotate the object at that position:

transform2
, on the other hand, will rotate the object by 45 degrees on its Y axis, and then translate it by 10 units on its local X axis:

Getting ready
The multiplication order is highly dependent on the conventions you are using...