查看: 1557|回复: 3

.ive文件转换成.obj文件,纹理丢失

[复制链接]

该用户从未签到

发表于 2014-12-25 19:54:33 | 显示全部楼层 |阅读模式
本帖最后由 Mze 于 2014-12-25 19:55 编辑

程序读入.ive文件,用osgViewer浏览场景,场景是完整的,转存成.obj文件文件。用osgViewer场景浏览器浏览此读入的.obj,发现纹理丢失

1.完整的.ive转成.obj程序

#include <osgViewer/Viewer>

#include <osgDB/ReadFile>
#include <osgDB/WriteFile>
#include <osgUtil/Optimizer>

int main(int argc, char**argv)
{
        osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();

        osg::ref_ptr<osg::Group> root = new osg::Group();
       
        osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("abc.ive"); //读入.ive文件

        root->addChild(node.get());

        osgDB::writeNodeFile(*(root.get()), "abc.obj"); // 转存.obj文件
       
        osgUtil::Optimizer optimizer;
        optimizer.optimize(root.get());

        viewer->setSceneData(root.get());

        viewer->realize();

        return viewer->run();
}

2.完整的浏览.obj文件场景的程序

#include <osgViewer/Viewer>

#include <osgDB/ReadFile>
#include <osgDB/WriteFile>
#include <osgUtil/Optimizer>

int main(int argc, char**argv)
{
        osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();

        osg::ref_ptr<osg::Group> root = new osg::Group();
       
        osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("abc.obj"); //读入.obj文件

        root->addChild(node.get());
       
        osgUtil::Optimizer optimizer;
        optimizer.optimize(root.get());

        viewer->setSceneData(root.get());

        viewer->realize();

        return viewer->run();
}

刚开始学习OSG,求前辈指点!谢谢!

该用户从未签到

 楼主| 发表于 2014-12-26 09:19:34 | 显示全部楼层
没人理会啊

该用户从未签到

 楼主| 发表于 2014-12-30 20:51:59 | 显示全部楼层
得到Array的回复:ive文件是可以包含贴图数据本身的;obj不行,只能保存外部文件的引用。
如何恢复纹理:可以写程序将内嵌纹理数据重新导出为外部文件,然后再去对应。
不过很显然obj不是一个足够好的场景格式,它太古老了,只能存储些几何和材质信息。

该用户从未签到

发表于 2017-3-7 10:47:58 | 显示全部楼层
Mze 发表于 2014-12-30 20:51
得到Array的回复:ive文件是可以包含贴图数据本身的;obj不行,只能保存外部文件的引用。
如何恢复纹理: ...

ive内部纹理可以指定格式吗?比如希望纹理格式为jpg,我该怎么指定?或者怎么做?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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