查看: 4785|回复: 5

关于 osg Sequence

[复制链接]

该用户从未签到

发表于 2008-5-7 11:17:07 | 显示全部楼层 |阅读模式
大家好,我在3dmax中导出一个简单的Sequence动画,参照附件,就是红绿灯轮流显示,我怎么在OSG中控制这三个灯的显示,比如我通过发送不同

的键盘消息,让不同的灯来显示,怎么实现? 这个动画读到OSG中只是一个节点,参照附件?

  那位能指点一下不? 先谢谢了! 我的QQ 373205199

Simple.rar

25.28 KB, 下载次数: 205, 下载积分: 威望 1

两个文件

该用户从未签到

发表于 2008-5-7 12:48:28 | 显示全部楼层




给你一段很久以前写的代码吧,呵呵~~~~比较老的了~~~~~~~~~




osg::Node* node = osgDB::readNodeFile("model.osg");

osg::Group* group = dynamic_cast<osg::Group*>(node);//

osg::AnimationPathCallback* animPathCallback1 = new osg::AnimationPathCallback();

for (unsigned int i=0;i < (group->getNumChildren());i++)
{
if (group->getChild(i)->getName() == "Node you looking for")
{
if (dynamic_cast<osg::AnimationPathCallback*> (group->getChild(i)->getUpdateCallback()))
{
animPathCallback1 = dynamic_cast<osg::AnimationPathCallback*> (group->getChild(i)->getUpdateCallback());//取到动画属性
animPathCallback1->setPause(true);//动画暂停

}

}
}



该用户从未签到

 楼主| 发表于 2008-5-7 13:27:24 | 显示全部楼层
谢谢版主的恢复,这个方法适合有动画路径的,我不知道版主有没有看我上传的文件,这个面没有动画路径,只是一个序列,实际有三个球,但是每次只显示一个,我是想控制着三个球的显示,我可以通过三个键盘消息来控制,而不是它自动的在三个球之间循环显示!

该用户从未签到

发表于 2008-5-7 14:00:36 | 显示全部楼层
不好意思,没下载你的东西,网速太慢了 :time: :time:

我觉得你没有必要用动画,你用一个球好了,通过按键来改变一下颜色就好了~~~也可以用三个,移动视点,其他两个mask一下,这也是可以的~~~~~~~~~~~

该用户从未签到

发表于 2009-7-16 12:52:38 | 显示全部楼层
osg中有osg::Sequece类。。。可以参考Sequence这个demo实现切换

osgsequence.rar

2.73 KB, 下载次数: 183, 下载积分: 威望 1

该用户从未签到

发表于 2012-7-11 13:36:20 | 显示全部楼层
Sequence在暂定和继续的时候,中间会跳跃,例如在牛模型的时候暂停,下个显示的是飞机,然后是坦克,继续的时候,会出现,迅速显示飞机,跳到坦克,我想要的效果是继续以后,正常的显示飞机、坦克、牛~~~这样一次类推~~·
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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