如何用我自己的4x4矩阵更新opengl模型视图矩阵?

时间:2012-02-01 06:57:35

标签: opengl matrix 3d matrix-multiplication

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

float mat44[16];

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

2 个答案:

答案 0 :(得分:20)

如果要将转换应用于OpenGL矩阵堆栈中的当前转换,则应编写:

glMultMatrixf(mat44);

但是如果你想丢弃当前在OpenGL矩阵堆栈上的内容并使用你自己的转换,那么你应该写:

glLoadMatrixf(mat44);

答案 1 :(得分:2)

对于OpenGL-2.1及更早版本,请使用glLoadMatrix或glMultMatrix,具体取决于手头的任务。

对于OpenGL-3及更高版本,使用其中一个glUniformMatrix变体将它们设置为着色器的正确制服。