根据欧拉位置和旋转计算正向和向上矢量



我在三维空间中有一个对象,其中我只有一个欧拉位置和旋转。如何根据所掌握的信息计算正向和向上矢量?

我知道我可以用这种方式计算正向矢量:

Vector3 forward = (target.getPosition() - object.getPosition()).normalize();

其中目标是沿着对象正在观察的轴的任何点。使用我所掌握的信息,我如何以这种方式选择任意点进行归一化?

我根本不知道如何求解"向上"向量。

首先从欧拉角创建一个变换矩阵(使用与渲染时相同的方法)。然后直接从中提取正向和向上的轴向量。例如,我的视图矩阵使用Z轴表示向前/向后,使用X轴表示向左/向右,所以我只使用这两个。你可以在这里找到矢量的位置:

理解4x4齐次变换矩阵