获取当前 ModelView 矩阵

Posted

技术标签:

【中文标题】获取当前 ModelView 矩阵【英文标题】:Obtaining current ModelView matrix 【发布时间】:2009-04-19 21:27:28 【问题描述】:

在 OpenGL 中,如何读取模型视图矩阵中的当前 x/y 转换?我知道您必须将当前矩阵加载到数组中并从那里读取浮点数,但我不知道该怎么做。

【问题讨论】:

【参考方案1】:

为了检索当前模型视图矩阵,您必须使用 GL_MODELVIEW_MATRIX 参数调用 glGetFloatv 函数。

GLfloat matrix[16]; 
glGetFloatv (GL_MODELVIEW_MATRIX, matrix); 

来自文档:

GL_MODELVIEW_MATRIX

params 返回十六个值: 顶部的模型视图矩阵 模型视图矩阵堆栈。最初这个 matrix 是单位矩阵。

【讨论】:

【参考方案2】:

使用glGlet

GLfloat matrixf[16];
glGetFloatv(GL_MODELVIEW_MATRIX, matrixf);

GLdouble matrixd[16];
glGetDoublev(GL_MODELVIEW_MATRIX, matrixd);

GLint matrixi[16];
glGetIntegerv(GL_MODELVIEW_MATRIX, matrixi);

【讨论】:

'glet'?还是“得到”?

以上是关于获取当前 ModelView 矩阵的主要内容,如果未能解决你的问题,请参考以下文章

求教关于opengl函数glGetFloatv(GL_MODELVIEW_MATRIX, m)效率问题

OpenGL glMatrixMode() 函数解释与例子

详解OpenGL的坐标系投影和几何变换

观察者模式

在OpenGL中,ModelView Matrix是ModelxView还是View x Model?

浅谈OpenGL变换矩阵