查看: 1385|回复: 2

求助:如何保存子节点的osg文件

[复制链接]

该用户从未签到

发表于 2014-6-11 11:00:47 | 显示全部楼层 |阅读模式
本帖最后由 tiandao011 于 2014-6-13 09:29 编辑

~~~如题,
1,读入一个.osg文件,Group类型,
2,得到其子节点,
3,将子节点保存为.osg文件·
4,将Group的一些信息存储下来


最后再将这些新生成的.osg文件读入到根节点下··为什么不显示呢?
  1. //保存子节点:
  2.         osg::ref_ptr<osg::Group> group = osgDB::readNodeFile(“osgcool.osg”)->asGroup();
  3.         if (!group)
  4.         {
  5.                 return;
  6.         }
  7.         for (int i = 0 ; i < group->getNumChildren() ; i ++)
  8.         {
  9.                 osg::ref_ptr<osg::Node> nodei = group->getChild(i);
  10.                 osgDB::writeNodeFile(*(nodei.get()),na2);                        //na2为要保存的文件名
  11.         }
  12.         group->removeChildren(0,3);                                                        //保存一些基本信息
  13.         osgDB::writeNodeFile(*(group.get()),"New.osg");

  14. //读取文件:
  15.         osg::ref_ptr<osg::Group> group = osgDB::readNodeFile("New.osg")->asGroup();
  16.         group->addChild(osgDB::readNodeFile("osgcool0.osg"));                //osgcool0,osgcool1,osgcool2,为保存的子节点的文件名
  17.         group->addChild(osgDB::readNodeFile("osgcool1.osg"));
  18.         group->addChild(osgDB::readNodeFile("osgcool2.osg"));
  19.         root->addChild(group.get());
复制代码


实验了cessnafire.osg,发现可以展示出飞机来··但是那个火焰的效果没法展示
原始文件和分别保存的文件中图片smoke.rgb位置是一样的

原始

原始

组合的子节点

组合的子节点

该用户从未签到

 楼主| 发表于 2014-6-11 15:15:50 | 显示全部楼层
本帖最后由 tiandao011 于 2014-6-11 16:16 编辑

通过删除其余子节点,保存一个子节点的方法保存子节点最后也是啥都不显示~~~
那通过什么方法才能正确的保存子节点呢·····

该用户从未签到

 楼主| 发表于 2014-6-12 08:17:58 | 显示全部楼层
本帖最后由 tiandao011 于 2014-6-12 18:08 编辑

找资料~~~找资料~~
最后发现应该是 纹理不显示的原因~~~~

但是我分别保存节点的时候是有纹理的啊,保存为osgt格式···
                            WRAP_R CLAMP
                            MIN_FILTER LINEAR
                            MAG_FILTER LINEAR
                            ResizeNonPowerOfTwoHint TRUE
                            Image TRUE {
                              UniqueID 15
                              FileName "Images/smoke.rgb"
                              WriteHint 0 2
                              DataVariance STATIC

这个路径分原始文件  cessnafire.osg 中的路径相同~~~~
不知道为什么不显示~~

请求各位大拿支援········
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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