如何用我自己的4x4矩阵更新opengl modelview矩阵?

如何用我自己的4x4矩阵更新opengl modelview矩阵?,opengl,matrix,3d,matrix-multiplication,Opengl,Matrix,3d,Matrix Multiplication,我有4x4矩阵用于对象的变换 float mat44[16]; 但我不知道如何使用我的矩阵更新OpenGL ModelView矩阵。我应该将glTranslatef()/glRotatef()与矩阵中的相关值一起使用,还是应该使用glLoadMatrix()、glMultMatrix()?请帮忙。谢谢。如果您想将您的转换应用到OpenGL矩阵堆栈中已经存在的当前转换,那么您应该写: glMultMatrixf(mat44); glLoadMatrixf(mat44); 但是,如果您想放弃O

我有4x4矩阵用于对象的变换

float mat44[16];

但我不知道如何使用我的矩阵更新OpenGL ModelView矩阵。我应该将glTranslatef()/glRotatef()与矩阵中的相关值一起使用,还是应该使用glLoadMatrix()、glMultMatrix()?请帮忙。谢谢。

如果您想将您的转换应用到OpenGL矩阵堆栈中已经存在的当前转换,那么您应该写:

glMultMatrixf(mat44);
glLoadMatrixf(mat44);
但是,如果您想放弃OpenGL矩阵堆栈上当前的内容并使用自己的转换,那么您应该编写:

glMultMatrixf(mat44);
glLoadMatrixf(mat44);

对于OpenGL-2.1和更早版本,根据手头的任务使用glLoadMatrix或glMultMatrix


对于OpenGL-3和更高版本,使用
glUniformMatrix
变体之一将它们设置为着色器的正确统一体。

您使用的OpenGL版本是什么?