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

9

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

float mat44[16];

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


你使用的OpenGL版本是什么? - Sergey K.
2个回答

20

如果你想将你的变换应用于OpenGL矩阵堆栈中的当前变换,那么你应该编写:

glMultMatrixf(mat44);

但是如果你想丢弃OpenGL矩阵栈顶部的内容并使用自己的变换,那么你应该编写:

glLoadMatrixf(mat44);

2

对于OpenGL-2.1及其早期版本,根据需要使用glLoadMatrix或glMultMatrix。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接