查看: 2684|回复: 8

请教一个关于OSG动画库中三次贝塞尔关键帧的初始化问题

[复制链接]

该用户从未签到

发表于 2009-8-24 09:32:02 | 显示全部楼层 |阅读模式
在使用osgAnimation库中的osgAnimation::Vec3CubicBezierKeyframeContainer时,需要用多个关键帧来初始化这个关键帧容器. 对于这种三次贝塞尔类型的关键帧,初始化时每个三次贝塞尔控制点都需要3个参数(如osgAnimation::Vec3CubicBezier),对于第一个参数的含义比较清楚,就是指控制点的参量值(如一个表示位置的Vec3),但后面两个参数是什么意思就不太清楚了,尤其是针对非Vec3类型的三次贝塞尔控制点。看类中成员的命名,应该是叫“切点”,但到底怎么个切法以及如何正确设置这两个参数,需要高手们解释一下,俺的数学水平太低。

它的具体用法在源码包中osganimationmakepath.cpp文件的setupAnimtkNode函数中有.

非常感谢!

该用户从未签到

发表于 2009-8-24 13:40:52 | 显示全部楼层
两个切线点参数,如果您编辑过3dsmax或maya的曲线,一定对这两个参数很清楚

该用户从未签到

 楼主| 发表于 2009-8-24 15:27:27 | 显示全部楼层
哦,对了,想起来了,谢谢。

该用户从未签到

发表于 2009-10-18 10:33:32 | 显示全部楼层
2# array

我想问下,该程序设置了0,2,4,6,8关键帧,但是不明白关键帧是怎么作用于大球的path的,就是这些动画是如何过渡的?

该用户从未签到

发表于 2009-10-18 14:29:33 | 显示全部楼层
动画过渡帧的求值方法就是插值,这一点相比做过类似事情的朋友们都明白:两个关键帧之间的插值决定了所有过渡帧的数据。假设从前一关键帧(x=0)到后一关键帧(x=1)之间的所有过渡帧的值都是x的函数f(x)的话,那么就可以实现多种算法,例如线性插值f=kx,以及球面插值,曲线插值等等,看看相关的书对您会很有帮助

该用户从未签到

发表于 2009-10-18 16:47:20 | 显示全部楼层
5# array

有点明白,这里的颜色属性是线性插值的,而小球的运动是贝塞尔曲线模式插值的,现在还有个问题,为什么小球出现的点距离有很大变化?到后面就断掉了?是不是贝塞尔曲线对于时间的控制就是这样的,从最后一个小球画出来到后面感觉像突变?

该用户从未签到

发表于 2009-10-18 22:53:43 | 显示全部楼层
只是循环执行了而已

该用户从未签到

发表于 2010-6-17 21:43:33 | 显示全部楼层
第一个参数的含义比较清楚,就是指控制点的参量值(如一个表示位置的Vec3),但后面两个参数是什么意思???还是不明白啊,麻烦array解答下,试了很久都不对。

该用户从未签到

发表于 2010-6-17 22:05:43 | 显示全部楼层
,切线点到底是啥意思?三次贝塞尔曲线插值每次需要四个点吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表