|
本帖最后由 tiandao011 于 2014-6-13 09:29 编辑
~~~如题,
1,读入一个.osg文件,Group类型,
2,得到其子节点,
3,将子节点保存为.osg文件·
4,将Group的一些信息存储下来
最后再将这些新生成的.osg文件读入到根节点下··为什么不显示呢?
- //保存子节点:
- osg::ref_ptr<osg::Group> group = osgDB::readNodeFile(“osgcool.osg”)->asGroup();
- if (!group)
- {
- return;
- }
- for (int i = 0 ; i < group->getNumChildren() ; i ++)
- {
- osg::ref_ptr<osg::Node> nodei = group->getChild(i);
- osgDB::writeNodeFile(*(nodei.get()),na2); //na2为要保存的文件名
- }
- group->removeChildren(0,3); //保存一些基本信息
- osgDB::writeNodeFile(*(group.get()),"New.osg");
- //读取文件:
- osg::ref_ptr<osg::Group> group = osgDB::readNodeFile("New.osg")->asGroup();
- group->addChild(osgDB::readNodeFile("osgcool0.osg")); //osgcool0,osgcool1,osgcool2,为保存的子节点的文件名
- group->addChild(osgDB::readNodeFile("osgcool1.osg"));
- group->addChild(osgDB::readNodeFile("osgcool2.osg"));
- root->addChild(group.get());
复制代码
实验了cessnafire.osg,发现可以展示出飞机来··但是那个火焰的效果没法展示
原始文件和分别保存的文件中图片smoke.rgb位置是一样的
|
-
原始
-
组合的子节点
|