QMatrix4x4 multiply order
-
Hi,
I have a question about the QMatrix4x4 class.
This example code:
QMatrix4x4 test; test.perspective(...); // projection test.lookat(...); // viewWhat kind of matrix is test at the end? is it something like that:
identity * projection * view
or is it like that:
view * projection * identity -
Hi,
I have a question about the QMatrix4x4 class.
This example code:
QMatrix4x4 test; test.perspective(...); // projection test.lookat(...); // viewWhat kind of matrix is test at the end? is it something like that:
identity * projection * view
or is it like that:
view * projection * identity@QT-static-prgm said in QMatrix4x4 multiply order:
Since matrices don't commute in the general case and operate on the right-hand term I'd say the latter.
-
It's quite easy just to test it...
runQMatrix4x4 test; test.perspective(...); // projectioncheck what is in test.
QMatrix4x4 test; test.lookat(...); // viewcheck what is in test.
pre and post multiply these two by hand (you can use wolframalpha) and compare it to the result you get inQMatrix4x4 test; test.perspective(...); // projection test.lookat(...); // view -
QMatrix4x4 tmp = ...; tmp.translate(10,0,0);results in
tmp = tmp * translationmatrixSo the correct answer seams to be
- identity * projection * view