我正在使用一些3D图形,我遇到了一个问题。我有一个在世界上移动的模型。模型具有基类,其以三个正交单位向量的形式包含它们的方向,即方向,向上和向右。它们分别指向模型前部的位置,分别指向上方和右方。
模型的AI通过相应地更改模型的 Direction 向量和所有其他方向向量来追踪目标,以便模拟模型指向目标。
我无法跟踪AI改变方向向量的角度,因为AI文件已经预编译,我无法更改它们。此外,AI使用模型的位置坐标和目标的位置坐标来更改矢量。
我的问题是如何从方向矢量获得偏航,俯仰和滚动,以便创建旋转矩阵来旋转整个模型处于所需的方向?
感谢您的帮助。
[编辑] 由于给出了答案,我发现了这个:
X Y Z W
- -
Right | Rx Ry Rz Rw |
Up | Ux Uy Uz Uw |
-Forward |-Fx -Fy -Fz -Fw |
Translation | Tx Ty Tz Tw |
- -
这就是如何设置矩阵以使用方向向量来获得世界矩阵(不进行缩放:缩放,只需创建一个缩放矩阵并将其乘以)。
[解决]
答案 0 :(得分:4)
你不需要偏航,俯仰和翻滚。三个正交单位向量Direction,Up和Right为您提供旋转矩阵的行。就这么简单。
见Sensor Fusion on Android Devices: A Revolution in Motion Processing中的41:58。
顺便说一下,你可以很容易地遇到偏航,俯仰和翻滚的麻烦,请参阅38:25。