在OpenGL中,我如何读取模型视图矩阵中当前的x/y平移?我知道你需要将当前矩阵加载到数组中,并从那里读取浮点数,但我不确切知道如何做。
要检索当前的模型视图矩阵,您需要使用GL_MODELVIEW_MATRIX
参数调用glGetFloatv函数。
GLfloat matrix[16];
glGetFloatv (GL_MODELVIEW_MATRIX, matrix);
根据文档:
GL_MODELVIEW_MATRIX
params返回16个值:模型视图矩阵中的顶部模型视图矩阵。初始情况下,此矩阵为单位矩阵。
使用glGet函数
GLfloat matrixf[16];
glGetFloatv(GL_MODELVIEW_MATRIX, matrixf);
GLdouble matrixd[16];
glGetDoublev(GL_MODELVIEW_MATRIX, matrixd);
GLint matrixi[16];
glGetIntegerv(GL_MODELVIEW_MATRIX, matrixi);