查看: 2961|回复: 8

我用ive插件保存的场景图为什么无法读取

[复制链接]

该用户从未签到

发表于 2009-2-13 08:31:19 | 显示全部楼层 |阅读模式
使用osgDB::readNodeFile读取一个IVE文件,然后把读取的模型用osgDB::writeNodeFile写到另一个文件,理论上两个文件是不是应该完全一样?
可是我得到的结果是保存的ive文件和源文件不一致,而且再读新保存的ive时会出错。

代码如下:
osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFile(infile);
osgDB::writeNodeFile(*loadedModel.get(), outfile);

请问我问题出在哪里,我的用法不对还是ive插件的问题?

该用户从未签到

 楼主| 发表于 2009-2-13 08:34:56 | 显示全部楼层
补充一下 我用的是2.6版

该用户从未签到

发表于 2009-2-13 08:51:02 | 显示全部楼层
您所用的模型文件是什么?如果不是很大的话,能否上传到论坛让大家帮忙测试一下?

该用户从未签到

 楼主| 发表于 2009-2-13 11:07:26 | 显示全部楼层
不好意思 更正一下问题 保存的ive虽然和原始ive文件不完全相同,但可以正确读取
现在问题是这样的,使用2.7版提供的gz插件保存成*.ive.gz后,似乎保存的有问题,读取的时候出错,而且用WinRAR打开也出错  是gz插件的writeFile有问题吗?

该用户从未签到

发表于 2009-2-13 12:40:36 | 显示全部楼层
我没用过这个插件,它需要zlib的支持,不知道您的zlib依赖库是否正确可用

该用户从未签到

 楼主| 发表于 2009-2-13 14:07:34 | 显示全部楼层
原来是gz中的bug,写文件时ofstream没有以binary模式打开。。。 
呵呵,绕了一大圈,却是这么个小问题 不过通过查找问题也增加了对osg的了解
多谢array关注

该用户从未签到

 楼主| 发表于 2009-2-13 14:11:47 | 显示全部楼层
补充一下 还发现了gz插件的另一个问题
ReaderWriterGZ::read函数中,从输入流读数据用了readsome,这个不能正常工作,可以使用read代替,当然代码逻辑要相应改一下
http://support.microsoft.com/kb/246934/en-us

该用户从未签到

发表于 2009-2-13 18:41:34 | 显示全部楼层
呵呵,如果您发现OSG的插件有一些问题的话,请一定向osg-users或者osg-submissions反映,帮助OSG自身的提高。感激不尽

该用户从未签到

发表于 2009-2-26 23:06:52 | 显示全部楼层
array,您真是让我佩服啊,是个真正学者的态度!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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