opengl - 在旋转矩阵之间插值

标签 opengl matrix rotation interpolation

我有 2 个旋转矩阵(我们称它们为 A 和 B),其中:

A = 1  0  0
    0  0 -1
    0  1  0

B = -1  0  0
     0  0 -1
     0 -1  0

这基本上只是相机旋转以查看其后方的旋转。 显然我不能直接对矩阵中的值进行插值,因为它看起来很奇怪。 我尝试将矩阵转换为欧拉角,从而产生 2 组 X、Y、Z 角度,并尝试根据 X、Y、Z 角度每个分量之间的最小距离确定要使用的角度。这肯定会导致我想要的旋转,但我想不出一种合适的方法来确定在哪些角度之间进行插值,因为有时导致最小误差的角度集会导致绕错误的轴旋转。 我也尝试过四元数,但这基本上给了我相同的结果。谁能指出我正确的方向?

最佳答案

使用四元数 (SLERP)。旋转矩阵和欧拉角都不适合插值。

参见 45:05 here (David Sachs, Google Tech Talk) .

关于opengl - 在旋转矩阵之间插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5580283/

相关文章:

Python OpenGL 如何正确渲染离屏

OpenGL:将图像加载到纹理数组中

r - 计算矩阵 A 和 B 中所有行之间的欧氏距离

arrays - 数组平均值矩阵

r - 填充R中距离矩阵中缺失的行/列

ios - Spritekit 约束 zRotation

c++ - NoDecodeDelegateForThisImageFormat 使用 ImageMagick 读取 .png 文件时出错

c++ - 用于透视投影的相机旋转

java - 在 Libgdx 中设置相机旋转

iphone - 如何旋转MKMapView并保持Annotation和 View 不旋转?