我正在尝试在我的爱好游戏引擎中使用轴角向量进行旋转。这是一个沿旋转轴的 3 分量矢量,旋转长度以弧度为单位。我喜欢它们,因为:
- 与四元组或旋转矩阵不同,我实际上可以看到数字并在脑海中可视化旋转
- 它们比四元数或矩阵的内存少一点。
- 我可以表示 -Pi 到 Pi 范围之外的值(如果我存储角速度,这很重要)
但是,我有一个紧密的循环,可以根据它们的角速度更新我所有对象(数万个)的旋转。目前,我知道组合两个旋转轴向量的唯一方法是将它们转换为四元数,将它们相乘,然后将结果转换回轴/角度。通过分析,我发现这是一个瓶颈。有谁知道更直接的方法?