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

Posted

技术标签:

【中文标题】在OpenGL中,ModelView Matrix是ModelxView还是View x Model?【英文标题】:In OpenGL, ModelView Matrix is ModelxView or View x Model? 【发布时间】:2013-07-20 14:56:02 【问题描述】:

在OpenGL中,模型视图矩阵是

眼睛坐标 = 模型视图矩阵 * 对象坐标 = 视图矩阵 * 模型矩阵 * 对象坐标;

眼睛坐标 = 模型视图矩阵 * 对象坐标 = 模型矩阵 * 视图矩阵 * 对象坐标;

哪一个是正确的?为什么?

【问题讨论】:

谷歌第一击:songho.ca/opengl/gl_transform.html 【参考方案1】:

您通常希望将对象从对象空间移动到模型空间。这意味着您将首先使用模型矩阵转换对象坐标,使用

模型空间坐标 = 模型矩阵 * 对象空间坐标 [1]

在您的对象被转换到模型空间后,您通常希望将其转换到视图空间(眼睛空间),使用:

眼睛坐标 = 视图矩阵 * 模型空间坐标 [2]

因此,使用 [1] 和 [2],我们得到:

眼睛坐标 = 视图矩阵 * 模型矩阵 * 对象空间坐标

因此你的第一个等式是正确的。

【讨论】:

以上是关于在OpenGL中,ModelView Matrix是ModelxView还是View x Model?的主要内容,如果未能解决你的问题,请参考以下文章

获取当前 ModelView 矩阵

OpenGL ES for Android 笔记

OpenGL ES for Android 笔记

opengl 通过射线鼠标拾取怎么都得不到准确数据

将 OpenGL 4x4 矩阵转换为旋转角度

浅谈OpenGL变换矩阵