我在三维空间中有一个对象,其中我只有一个欧拉位置和旋转。如何根据所掌握的信息计算正向和向上矢量?
我知道我可以用这种方式计算正向矢量:
Vector3 forward = (target.getPosition() - object.getPosition()).normalize();
其中目标是沿着对象正在观察的轴的任何点。使用我所掌握的信息,我如何以这种方式选择任意点进行归一化?
我根本不知道如何求解"向上"向量。
首先从欧拉角创建一个变换矩阵(使用与渲染时相同的方法)。然后直接从中提取正向和向上的轴向量。例如,我的视图矩阵使用Z
轴表示向前/向后,使用X
轴表示向左/向右,所以我只使用这两个。你可以在这里找到矢量的位置:
理解4x4齐次变换矩阵