保留Model Matrix的标准位置是什么?

Alv*_*par 1 opengl 3d direct3d webgl

我有一个"3D引擎",它有一个模型矩阵.我的所有3D对象都使用此模型矩阵(用于转换内容).对于每个对象,我在使用之前设置模型标识.到目前为止,它似乎工作得很好,并且如预期的那样好.

但现在我突然想知道我是否有设计缺陷.每个3D对象(基础对象)应该有自己的模型矩阵吗?这样做是否有任何价值(每个3D对象的模型矩阵)?

And*_*man 6

这就是模型矩阵的重点.它是从对象空间(其局部坐标系)到世界空间(共享坐标系)绘制的每个对象的可选变换.您可以定义对象,使其位置已经位于世界空间中,然后不需要模型矩阵(如果使用标识模型矩阵,则如此).

GL使用(或至少在历史上它确实)用于此的矩阵堆栈,从技术上讲,它是使用列主矩阵和后乘法的原因.这允许您在绘制对象之前/之后立即将局部坐标变换推送/弹出到堆栈顶部,同时保留很少变化的其他变换,例如world-> eye(视图矩阵)或eye-> clip(投影)矩阵)未受影响.

  • @AlvinfromDiaspar:我不知道如何更明确地说明: - \模型矩阵将您的对象从他们自己的坐标空间转换为共享的参考框架.您可能在对象空间中有一个以(0,0,0)为中心的对象,其顶点从(-1,-1,-1)到(1,1,1),您可能在***世界中决定-space***该对象位于(64,32,16).你的模型矩阵**将所有坐标转换为(64,32,16),你的顶点*转换为*此转换后的范围为(63,31,15)到(65,33,17). (2认同)