首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >四元数二次插值(小队)

四元数二次插值(小队)
EN

Stack Overflow用户
提问于 2014-11-25 02:11:04
回答 1查看 4.2K关注 0票数 1

我在动画中有四个关键帧,f0,f1,f2,f3,我正在尝试插值位于t= (f- f1 )/( f2 -f1)的f1和f2之间的帧f的旋转。

我的问题是,我可以在关键帧之间进行二次插值来找到旋转吗?我想使用所有四个关键帧。我也希望它是跨关键帧的C1连续。

我已经研究了them和Catmull-Rom样条线,但我仍然有点犹豫要不要实现它们,因为我不确定公式到底应该是什么样子。小队讲述了如何在一系列旋转之间进行插值,我不确定如何将其应用于仅四次旋转。提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2014-11-25 05:46:17

不幸的是,四元数不在线性空间中,所以它们之间的插值有点棘手,正如您已经发现的那样。

我假设你想要使用加权平均,就像你在3D空间中计算曲线一样。

首先,没有定义两个以上四元数的精确球面插值(SLERP)。这是因为它们的组合是使用乘法来描述的,而它们的乘法是non-commutative (除了其他原因之外)。因此,您将不得不使用近似解决方案,就像其他所有动画软件一样:-)

generalized quaternion interpolation (也就是Shoemake的Quaternion curves)是一种可能性,甚至是更花哨(更准确)的基于优化的more。然而,在实践中,我总是使用NLERP (归一化线性插值,例如here),如果插值的四元数相当接近(大约60到90度的差异仍然可以),它会得到很好的结果,同时非常简单和快速。here是一篇很好的简单的文章,里面有3D矢量的例子,展示了它们之间的区别。

就我个人而言,我总是回到几何工具的Quaternion Algebra and Calculus笔记中,它对CG中四元数的理论和实践方面都有非常简洁的描述。

别忘了对足性,这是实现四元数插值时最常见的问题:)

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27111391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档