我想创建视图矩阵并将此矩阵输出到cpu。我正在尝试使用下面的代码,但视图矩阵'mViewMatrix'落后于一帧。 我想知道是否可以使用glGetFloatv获取正确的视图矩阵,或者是否有必要在cpu上计算矩阵。
class Camera {
float mViewMatrix[16];
Vector3 mPos;
Vector3 mEuler;
void updateViewMatrix()
{
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glRotatef(-mEuler.x, 1, 0, 0);
glRotatef(-mEuler.y, 0, 1, 0);
glRotatef(-mEuler.z, 0, 0, 1);
glTranslatef(-mPos.x, -mPos.y, -mPos.z);
glGetFloatv(GL_MODELVIEW_MATRIX, mViewMatrix);
}
}
答案 0 :(得分:0)
使用Push& amp;弹出矩阵调用,glGet将返回矩阵堆栈顶部的值:
glPushMatrix();
glGetFloatv(GL_MODELVIEW_MATRIX, mViewMatrix);
glPopMatrix();