9
votes

I have 4x4 matrix for object's transformations.

float mat44[16];

But i don't know how to update OpenGL ModelView matrix using my matrix. should i use glTranslatef()/glRotatef() with relavant values from my matrix or should i use glLoadMatrix(),glMultMatrix() ? Pls help. Thanks.

2
What OpenGL version do you use?Sergey K.

2 Answers

20
votes

If you want to apply your transformation to current transformation already in OpenGL matrix stack, then you should write:

glMultMatrixf(mat44);

But if you want to discard what's currently on top of OpenGL matrix stack and use your own transformation, then you should write:

glLoadMatrixf(mat44);
2
votes

For OpenGL-2.1 and earlier use glLoadMatrix or glMultMatrix, depending on the task at hand.

For OpenGL-3 and later set them as the right uniform for your shader using one of the glUniformMatrix variants.