最近做了很多的OGRE节点动画,有一个函数一直是知道,不过没在意。
今天加新功能,有一个bug。
让某物体按照指定路线前进,但是物体像一个醉酒的人一样,按照指定路线走凌波微步。
排除了N多可能。最后,只剩下这个新写的类了。
看着这个运行路线,我突然想到这个路径很想非线性差值的结果。
但是,都是线性的啊,谁也不会弄个非线性的出来,一查代码,还真是非线性的……
出错函数如下: (Ogre::Animation*)
mAnim->setInterpolationMode(Ogre::Animation::IM_SPLINE);
应改为:
mAnim->setInterpolationMode(Ogre::Animation::IM_LINEAR);
查找文档深入学习一下,增加记忆:
-
Enumerator:
-
Values are interpolated along straight lines.
Values are interpolated along a spline, resulting in smoother changes in direction.
- 中文
-
差值沿着直线运动。
差值沿着曲线运动(spline),使得转向更加平滑。
————完————