作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我制作了一个非常简单的 3D 场景,在世界坐标中有 5 个点。我想在场景中导航,因此我定义了一个具有 UP 和 OUT 向量的相机。有了这些信息,我在每一帧中生成一个旋转矩阵,我将其应用于向量以获得相机坐标。
问题是:我已经读到使用此方法时会出现万向节锁定问题,但在这种情况下会发生这种情况吗?
请注意,我在每一帧中生成旋转矩阵,并且不是累积旋转。那么在这种情况下会发生锁定吗?如果是这种情况,您建议如何安全地应用旋转(从 UP 和 OUT 向量)?
谢谢
最佳答案
如果“OUT”指的是“向前”,并且它始终垂直于向上向量,那么“否”,您不会遇到万向节锁定。
您正在做的是从 UP 和 FORWARD 向量创建一个方向矩阵,并在每一帧中应用该矩阵,这是在空间中移动相机的相当常见的方法。您没有使用欧拉角应用多次旋转,这可能是万向节锁定的原因。
请注意,要创建矩阵,您还需要根据 UP 和 FORWARD 向量创建“左”(或右)向量。对此的一个很好的介绍是 here - 请注意,该示例随后将旋转应用于相机矩阵,这是一个完全可选的步骤。
维基百科对 gimbal lock 有很好的解释.
关于opengl - 这会导致万向节锁定吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1225377/
我是一名优秀的程序员,十分优秀!