这会导致万向节锁定吗?

Al.*_*Al. 2 opengl 3d 3dcamera

我制作了一个非常简单的 3d 场景,在世界坐标中有 5 个点。我想在场景中导航,所以我定义了一个带有 UP 和 OUT 向量的相机。有了这些信息,我会在每一帧中生成一个旋转矩阵,我将其应用于向量以获得相机坐标。

问题是:我已经阅读过有关使用这种方法的万向节锁定问题,但在这种情况下会发生吗?

请注意,我在每一帧中生成旋转矩阵,并且我没有累积旋转。那么在这种情况下会发生锁定吗?如果是这种情况,您建议如何安全地应用旋转(从 UP 和 OUT 向量)?

谢谢

Jus*_*cle 5

如果 OUT 的意思是“向前”,并且它始终垂直于 UP 向量,那么不,您不会遇到万向节锁定。

您正在做的是从 UP 和 FORWARD 向量创建一个方向矩阵,并应用每一帧,这是在空间中移动相机的一种相当常见的方法。您没有使用欧拉角应用多次旋转,这可能是万向节锁定的原因。

注意要创建矩阵,您还需要从 UP 和 FORWARD 向量创建一个“左”(或右)向量。一个很好的介绍,这是在这里-注意,例如不会再应用旋转到相机矩阵,这是完全可选的步骤。

维基百科对万向节锁有很好的解释。