查看: 1465|回复: 6

如何将纹理、动作打包?

[复制链接]

该用户从未签到

发表于 2014-7-7 21:39:13 | 显示全部楼层 |阅读模式
1,现在我有一个flt模型以及该模型的(大量)纹理,我苦恼的是如何将其打包成一个文件xx.ive,这样在OSG中只需读取xx.ive即可?这个是在导出flt模型时就将纹理打包进flt模型中,然后转换成ive格式?还是可以分别导出flt模型及纹理,然后将flt+纹理一起打包成一个ive文件?
2,如何将一个人物模型的多个动作(比如走,跑,跳……)打包成一个FBX文件?
我学习了osgconv,仍然没搞懂,在此发帖,希望得到大家的帮助,不胜感激!

该用户从未签到

发表于 2014-7-8 00:50:30 | 显示全部楼层
保存ive的时候不是默认把纹理存进去的么?

该用户从未签到

发表于 2014-7-8 09:21:16 | 显示全部楼层
smash 发表于 2014-7-8 00:50
保存ive的时候不是默认把纹理存进去的么?



我也遇到类似的问题。无法将自己新建的模型及纹理 都保存。


我的方法是“
1.利用
osgDB::writeNodeFile(root, "c:\\test.osg");
保存后,只有模型,没有显示纹理。

2. 然后我尝试 直接保存为ive文件,

osgDB::writeNodeFile(root, "c:\\test.ive");

打开ive 文件后,仍然无法显示纹理。



根据我搜索的资料,一种可行的方法是:
先将纹理保存为图片。
然后将图片设置为模型的纹理。setImage

最后再保存模型,用osgDB::writeNodeFile。这样用osgviewer打开后,纹理和模型都有。


但是真的需要这么复杂吗?有简单的方法吗?

请各位大哥指点。。。。

该用户从未签到

发表于 2014-7-8 12:45:42 | 显示全部楼层
rubby 发表于 2014-7-8 09:21
我也遇到类似的问题。无法将自己新建的模型及纹理 都保存。


可能纹理设置成Apply后自动释放了。可以遍历下纹理,setUnRefImageDataAfterApply(false)试试看。

该用户从未签到

 楼主| 发表于 2014-7-8 13:21:59 | 显示全部楼层
rubby 发表于 2014-7-8 09:21
我也遇到类似的问题。无法将自己新建的模型及纹理 都保存。

按照你的提示,我将纹理和模型放在一起(x:\OSG\Data),然后写程序xxx进行读取,模型有纹理,然后利用DB::writeNodeFile(xx,"test.ive"),将模型和纹理打包进test.ive中,然后在程序xxx所在位置找到test.ive,用osgViewer读取,有纹理,这样生成的test.ive文件有点大,我的是10M多,然后我利用osgConv --compressed 命令,进行压缩后,test.ive文件只有3M多点,这时,在cmd下用osgViewer进行验证,读取test.ive文件,可以显示有纹理的模型,满足了我的要求:即只读取一个文件就可以有纹理的存在,而不用再读取模型和纹理数据。十分感谢!

该用户从未签到

发表于 2014-7-8 16:34:56 | 显示全部楼层
StarShine 发表于 2014-7-8 13:21
按照你的提示,我将纹理和模型放在一起(x:\OSG\Data),然后写程序xxx进行读取,模型有纹理,然后利用DB:: ...

这个链接应该很有用啊。
http://www.osgchina.org/index.ph ... =100&Itemid=489

该用户从未签到

 楼主| 发表于 2014-7-8 17:30:09 | 显示全部楼层
rubby 发表于 2014-7-8 16:34
这个链接应该很有用啊。
http://www.osgchina.org/index.php?option=com_content&view=article&id=122: ...

谢谢,我的问题已基本解决。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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