首页 > 解决方案 > 围绕轴插值旋转 - 四元数和 slerp 与角度的线性插值

问题描述

我正在制作一个简单的 3d 游戏,其中我有一些船相撞并改变方向以避开彼此。

部分碰撞处理是围绕弹跳构建,然后稍微改变航向(A 船撞到 B 船,A 反弹回来,然后向左旋转 10 度并恢复运动)

到目前为止,我刚刚更新了航向,看起来有点突兀。我打算从旧标题插入新标题。这很简单,航向始终只是围绕一个轴的一个角度。所以基本上它从90度到110度。

我知道四元数和 slerp,这会给我一个恒定的速度(我的旋转应该如丝般顺滑)。但我最终感觉就像是用大锤杀死一只苍蝇。仅对旋转角度进行从 90 到 110 的常规香草线性插值的真正结果是什么?我使用四元数而不是更简单、更便宜的角度值线性插值是否会在视觉上明显?我没有需要点击的特别重要的“关键帧”——根本没有“动画数据”,3d 模型是静态的。

因此,如果有人可以阐明如果我只是插入旋转度而不是使用 slerp 可能会遇到的潜在问题,那将不胜感激。

谢谢/吉姆

标签: quaternions

解决方案


推荐阅读