I'm confused about the order of multiplicatons to create Transformation Matrices:
(the library I use is Row Major and, Y.up/[Lh/Rh])
This below is clear for row major
- The goal:
.scale()->.rotate()->.translate()->.apply()->final vector - Order:
M3 * M2 * M1 * vec
BUT... I'm calling functions that take 2x matrices, not a single matrix!
So... if M3 is created by .scale()... then the example M3 is not just one matrix, it is M?? * M???
Which becomes: M3(?? * ???) * M2(?? * ???) * M1(?? * ???) * vec
Hence the question, because:
M3could be eitherIdentity * New[Scale]New[Scale] * Identity
M2could be:New[Rotate] * Old_Scale_IdentityOld_Scale_Identity * New[Rotate]
M1could be:New[Translate] * Old_Rotate_Scale_IdentityOld_Rotate_Scale_Identity * New[Translate]
Does anyone know what the correct order of arguments would be here? 🤔