查看: 3566|回复: 13

求助:写入 ive时,模型纹理丢失

[复制链接]

该用户从未签到

发表于 2010-1-4 15:05:19 | 显示全部楼层 |阅读模式
我向场景中加载了 某个模型(ive)后,调整模型的大小和方位,此时模型显示正常(纹理正确),然后用osgDB::WriteNodefile保存模型(ive),发现纹理丢失。将该模型转为osg后,发现纹理文件(file)丢失。请教大家:导致ive模型写出时,纹理丢失的可能原因,谢谢。

该用户从未签到

发表于 2010-1-4 15:38:48 | 显示全部楼层
写出之前检查一下getImage()是否能得到正确的Image对象,以及Image对象是否保存了正确的像素数据。有可能是内部的优化机制导致Image对象在运行时载入显存后被自动释放以节省CPU空间,可以设置对象为STATIC以避免这一情况

该用户从未签到

发表于 2010-1-4 21:10:02 | 显示全部楼层
写出之前纹理已经丢失了~~~~
然后我就在模型加载时,设置节点对象为STATIC
结果仍然是一样的(纹理消失)
我再找找原因
希望明天能来结贴

该用户从未签到

发表于 2010-1-5 09:01:46 | 显示全部楼层
设置Image为STATIC,而不是节点

该用户从未签到

 楼主| 发表于 2010-1-5 10:19:18 | 显示全部楼层
问题已经解决了
谢谢

该用户从未签到

 楼主| 发表于 2010-1-5 10:23:09 | 显示全部楼层
设置Image为STATIC,而不是节点
array 发表于 2010-1-5 09:01

我使用的是DYNAMIC。。。。

该用户从未签到

发表于 2010-1-5 10:36:27 | 显示全部楼层
都可以,总之这样就不会被优化机制处理掉了

该用户从未签到

 楼主| 发表于 2010-1-5 10:37:24 | 显示全部楼层
关于这个问题的几个疑问:
1.OSG内部优化机制中,会对什么样的IMAGE对象采用优化机制。在实践中发现,不是所有的模型都会出现上述这种情况。
2.优化处理后的模型纹理(在显存中的)是否能遍历得到,如果能的话,我想应该也可以保存得到正确的结果。

该用户从未签到

发表于 2010-1-5 12:13:49 | 显示全部楼层
对于没有设置为STATIC或者DYNAMIC的图像,当它预编译存入显存后,将被自动剔除
显存中保存的纹理数据是不能遍历得到的,除非readPixels

该用户从未签到

发表于 2013-5-16 15:03:44 | 显示全部楼层
请问你如何解决的?我又遇到这类问题了

该用户从未签到

发表于 2013-5-16 15:36:20 | 显示全部楼层
setUnRefImageDataAfterApply

该用户从未签到

发表于 2015-4-1 16:30:31 | 显示全部楼层
csu_zjh 发表于 2010-1-5 10:23
我使用的是DYNAMIC。。。。

你好,我现在遇到同样的问题,请问在哪里设置image为static

该用户从未签到

发表于 2015-4-1 17:00:19 | 显示全部楼层
array 发表于 2010-1-5 09:01
设置Image为STATIC,而不是节点

您好,请问怎么设置image为static

该用户从未签到

发表于 2017-3-7 10:45:52 | 显示全部楼层
array 发表于 2010-1-4 15:38
写出之前检查一下getImage()是否能得到正确的Image对象,以及Image对象是否保存了正确的像素数据。有可能是 ...

array你好,我想问问ive格式的数据,里面的纹理是什么格式?在writeNodeFile时,默认是保存成ive格式吗?ive内部纹理也是默认格式吗?比如默认bmp是吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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