2015-10-27 79 views
0

在3D场景中,每帧都会更新本地世界4×4矩阵,可以将3D对象从本地坐标转移到世界坐标系。 但我无法弄清楚这个矩阵可以让3D物体沿着它本身的Y轴旋转。因为我不知道3D对象的局部向上矢量,所以我只知道局部 - >世界矩阵并不断更新它。人们如何处理它?在本地Y轴上旋转字符

回答

0

要旋转对象,您需要旋转矩阵。这应该很清楚。大多数图书馆都有生成这种旋转矩阵的方法。

你的问题似乎是如何处理该矩阵。你想用它来修改现有的世界变换。基本上有两种选择。在下文中,我假设OpenGL使用的列主矩阵布局。 DirectX的矩阵订单逆转。

选项1:乘左边:

newWorld = rotationMatrix * oldWorld 

该旋转物体在全球坐标系。

选项2:乘在右边:

newWorld = oldWorld * rotationMatrix 

这旋转的物体在其本地坐标系。这可能是你正在寻找的。

顺便说一句,如果你有世界变换,你就知道局部y轴,它只是矩阵的第二列。