查看: 2680|回复: 6

如何更换结点上的模型

[复制链接]

该用户从未签到

发表于 2008-6-14 15:25:58 | 显示全部楼层 |阅读模式
请教关于osg中模型的问题:
假如有一个结点osg::Node* node = osgDB::ReadNodeFile("A.osg"),
而现在我要通过菜单之类的将node上的模型更换成另一个模型,如从文件B.osg中的模型,
应该如何处理?

该用户从未签到

发表于 2008-6-14 17:17:36 | 显示全部楼层
原帖由 stanley 于 2008-6-14 15:25 发表
请教关于osg中模型的问题:
假如有一个结点osg::Node* node = osgDB::ReadNodeFile("A.osg"),
而现在我要通过菜单之类的将node上的模型更换成另一个模型,如从文件B.osg中的模型,
应该如何处理?


使用更新回调UpdateCallback,工作的流程大概是:
判断Node是Geode还是Group;
前者的话,使用replaceDrawable替换Drawable对象;
后者的话,使用replaceChild替换Node子树

该用户从未签到

发表于 2008-6-14 19:00:34 | 显示全部楼层

有Drawable 对象的回调类的 例子吗?

~~

该用户从未签到

 楼主| 发表于 2008-6-15 12:55:08 | 显示全部楼层
回调类不是自动调用的吗?
这样不是会造成一直在导入模型b.osg吗?
而我只需要替换一次~~

该用户从未签到

发表于 2008-6-15 13:06:01 | 显示全部楼层
打开b.osg的时候再进行更新回调,不用一直更新回调
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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