查看: 1257|回复: 4

关于骨骼动画

[复制链接]

该用户从未签到

发表于 2013-5-3 10:27:58 | 显示全部楼层 |阅读模式
照着《OpenSceneGraph三维渲染引擎编程指南》这本书中的代码,
想试一下骨骼动画是怎样实现的,结果不会动,这里有些改动。
我看到论坛里有个帖子也这样提问过,没有看出来最后是怎样解决的。
请高手指点一下:
001.png
002.png
003.png
这里是osg3.0以后的改动,不知道对不对。
  1. bone->setInvBindMatrixInSkeletonSpace( osg::Matrix::inverse(osg::Matrix::translate(trans)) );
复制代码

该用户从未签到

 楼主| 发表于 2013-5-3 10:30:39 | 显示全部楼层
examples里面有个源码osganimationskinning可以正确运行,
不过我没有看出来应该怎样修改,请高手指出,谢谢。

该用户从未签到

 楼主| 发表于 2013-5-3 11:57:45 | 显示全部楼层

  1. osg::ref_ptr updater = new osgAnimation::UpdateBone(name);
  2. updater->getStackedTransforms().push_back( new osgAnimation::StackedTranslateElement("translate", trans) );
  3. updater->getStackedTransforms().push_back( new osgAnimation::StackedQuaternionElement("quaternion") );
  4. bone->setUpdateCallback( updater.get() );
  5. bone->setMatrixInSkeletonSpace( osg::Matrix::translate(trans) * bone->getMatrixInSkeletonSpace() );
复制代码
看了coolbook知道了。分享一下。
这里不用默认的回调,不知道为什么。
用UpdateBone就可以了。

该用户从未签到

发表于 2013-5-6 17:24:41 | 显示全部楼层
osgAnimation库的变动还是比较大的,《编程指南》和《设计与实践》中的一些方法已经比较老旧和过时了

该用户从未签到

发表于 2013-5-8 08:29:23 | 显示全部楼层
研读一下 osgAnimation 也是不错的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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