openGl中的方向

时间:2009-11-23 13:13:53

标签: opengl

有人可以向我解释一个对象的前向和右向量是什么?它们是如何使用的?

2 个答案:

答案 0 :(得分:1)

您是指如何使用对象或模型空间中的向量?每个对象或模型都有自己的坐标空间。这是必要的,因为模型中的点将相对于模型原点。这使得可以在更大的世界中使用任意模型。在世界中移动模型(转换)之前,您将对模型执行某些操作(如“旋转”)。如果我正确理解你的问题,你指的是一组定义世界中模型位置的向量。这些向上,向前和向右矢量将用于确定模型面向或移动的方式。

我希望这有助于提出更多问题。

这个Gamedev问题可能会有所帮助glMultMatrix, how does it work?

答案 1 :(得分:0)

这些向量通常指的是所讨论模型的局部身体轴的世界空间变换。

通常,模型是针对某些局部坐标系定义的,该坐标系的原点位于质心,质心或构造对象几何的其他方便位置。这个局部坐标系有自己的 x y z 轴, x = [1,0, 0]', y = [0,1,0]'和 z = [0,0,1]'。然后,相对于该局部帧定义模型中每个顶点的坐标。通常选择原点以使模型的“向前”方向与此局部 x 对齐,“左”方向与局部 y 对齐,并且“向上” “与本地 z 保持一致(虽然任何右手系统都可以。

通过OpenGL中的模型视图矩阵将模型放入世界。当模型的顶点被发送到GPU时,它们通过将它们乘以模型视图矩阵从它们的局部空间(也称为“对象”空间或“模型空间”或“体空间”)转换到世界空间。忽略缩放,模型视图矩阵中的左上3x3块是一个标准正交旋转矩阵,它定义了体轴投影到世界框架中,假设模型位于世界原点。通过在模型视图矩阵的右上角3x1块中添加模型和世界原点之间的转换,将模型视图矩阵扩展为4x4。