You discovered a bug in the engine, and you are sure that it is not a problem of your code? Just post it in here. Please read the bug posting guidelines first.
Not probably a bug, but I just wanted to confirm whether it's intentional that the matrix multiplication is done in the wrong order. For example, if we have a simple multiplication like this:
IIRC, I have added all the necessary explanations already for 1.7. If there are things still unclear, just point out the exact places and maybe give a suggestion on how to update the sections.
hybrid wrote:IIRC, I have added all the necessary explanations already for 1.7. If there are things still unclear, just point out the exact places and maybe give a suggestion on how to update the sections.
You mean why? Well, multiplication of matrices is defined both ways. It's just a writing convention if a*b means one or the other. Niko defined most things as in D3D, so it might be a reason there.
I don't mean to beat a dead horse. I'm fine with the current convention as it is defined; I'm just glad I know now for future reference. But http://msdn.microsoft.com/en-us/library ... S.85).aspx (D3DXMatrixMultiply) is defined as "the transformation M1 followed by the transformation M2 (Out = M1 * M2)."
Last edited by Halifax on Tue Mar 09, 2010 3:09 pm, edited 2 times in total.
Yes that what it's supposed to be.
Because it's actually the multiplication is not M1*M2 but (M1*M2).Transpose.
So the only reason to do this may be because it's computed as column vector (OpenGL use them) so m[4] replace m[1], m[3] replace m[2]... but in this m[12] m[13] m[14] couldn't be the translation vector. :/