首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

顶点矩阵乘以模型视图矩阵 行得通吗 关于opengl,该如何处理

2012-04-01 
顶点矩阵乘以模型视图矩阵 行得通吗 关于opengl矩阵相乘不是左边的矩阵的列要和右边矩阵的行一样才能相乘

顶点矩阵乘以模型视图矩阵 行得通吗 关于opengl
矩阵相乘不是左边的矩阵的列要和右边矩阵的行一样才能相乘吗?

opengl超级宝典上怎么是将顶点矩阵(4*1)乘以模型视图矩阵(4*4)?

这不是反了吗?应该将模型视图矩阵乘以顶点矩阵才对吗?

怎么回事高手帮帮我。

[解决办法]
矩阵相乘不是左边的矩阵的列要和右边矩阵的行一样才能相乘吗?
是的,矩阵乘法的定义要求这一点。

opengl超级宝典上怎么是将顶点矩阵(4*1)乘以模型视图矩阵(4*4)?
没看过"opengl超级宝典",不过 OpenGL 里确实是这么干的。

这不是反了吗?应该将模型视图矩阵乘以顶点矩阵才对吗?
看似反了,实际上没有。因为 OpenGL 使用列主元模式存储,因此它的矩阵都只能理解为你通常在书中看到的矩阵的转秩矩阵。如果数学推导中的模型视图矩阵为 T,那么 OpenGL 中实际上存储的是 T'。这种存储格式实际上还导致顶点都是以 1x4 的格式存储的,而非 4x1,后者是数学推导中用的。但是,对于向量(或你说的顶点矩阵),行主元存储和列主元存储格式实际上是无法区分的,因为它有一的维度是 1.因此,表示为 4 的数字的向量,即可以认为是 1x4 的向量,也可以认为是 4x1 的向量。
最后一点是这个数学恒等式,
对任意 4x1 列向量 x,以及 4x4 模型视图矩阵 T,假设经过 T 变换的 x 向量为 y,则有
y = T*x (其中 * 为矩阵乘法),
同时有
y' = x'*T' (其中 ' 表示矩阵转秩)
后者正是 OpenGL 中用的公式。

热点排行