Login  Register

Re: Can't get to see my triangle when I use FloatUtil.makeLookAt

Posted by elect on Nov 16, 2015; 9:37am
URL: https://forum.jogamp.org/Can-t-get-to-see-my-triangle-when-I-use-FloatUtil-makeLookAt-tp4035777p4035787.html

Kraft wrote
Ok i got it ! I finally get to see my sweet triangle !

My mistake was in the multiplication order.

Instead of
        FloatUtil.multMatrix(model, scale);
        FloatUtil.multMatrix(model, rotation);
        FloatUtil.multMatrix(model, translation);
        ...
        FloatUtil.multMatrix(mvp, model);
        FloatUtil.multMatrix(mvp, view);
        FloatUtil.multMatrix(mvp, projection);
I should have done
        FloatUtil.multMatrix(scale, model, model);
        FloatUtil.multMatrix(rotation, model, model);
        FloatUtil.multMatrix(translation, model, model);
        ...
        FloatUtil.multMatrix(model, mvp, mvp);
        FloatUtil.multMatrix(view, mvp, mvp);
        FloatUtil.multMatrix(projection, mvp, mvp);

Someone here to confirm and maybe explain ?
FloatUtil.multMatrix(A, B, C) is A*B=C

FloatUtil.multMatrix(A, B) is A*=B, or A = A*B

mvp must be equal to projection*view*model

you can optimize this code

        FloatUtil.multMatrix(model, mvp, mvp);
        FloatUtil.multMatrix(view, mvp, mvp);
        FloatUtil.multMatrix(projection, mvp, mvp);

to this

        FloatUtil.multMatrix(projection, view, mvp);
        FloatUtil.multMatrix(mvp, model);

You can avoid setting mvp to identity, since the first multMatrix will overwrite automatically whatever is in mvp