csu_zjh 发表于 2010-1-4 15:05:19

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

我向场景中加载了 某个模型(ive)后,调整模型的大小和方位,此时模型显示正常(纹理正确),然后用osgDB::WriteNodefile保存模型(ive),发现纹理丢失。将该模型转为osg后,发现纹理文件(file)丢失。请教大家:导致ive模型写出时,纹理丢失的可能原因,谢谢。

array 发表于 2010-1-4 15:38:48

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

hanxiaohuivc 发表于 2010-1-4 21:10:02

写出之前纹理已经丢失了~~~~:loveliness:
然后我就在模型加载时,设置节点对象为STATIC
结果仍然是一样的(纹理消失)
我再找找原因
希望明天能来结贴:)

array 发表于 2010-1-5 09:01:46

设置Image为STATIC,而不是节点

csu_zjh 发表于 2010-1-5 10:19:18

问题已经解决了:)
谢谢

csu_zjh 发表于 2010-1-5 10:23:09

设置Image为STATIC,而不是节点
array 发表于 2010-1-5 09:01 http://bbs.osgchina.org/images/common/back.gif
我使用的是DYNAMIC。。。。

array 发表于 2010-1-5 10:36:27

都可以,总之这样就不会被优化机制处理掉了

csu_zjh 发表于 2010-1-5 10:37:24

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

array 发表于 2010-1-5 12:13:49

对于没有设置为STATIC或者DYNAMIC的图像,当它预编译存入显存后,将被自动剔除
显存中保存的纹理数据是不能遍历得到的,除非readPixels

dearpa 发表于 2013-5-16 15:03:44

请问你如何解决的?我又遇到这类问题了

liuzhiyu123 发表于 2013-5-16 15:36:20

setUnRefImageDataAfterApply

osgxch 发表于 2015-4-1 16:30:31

csu_zjh 发表于 2010-1-5 10:23
我使用的是DYNAMIC。。。。

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

osgxch 发表于 2015-4-1 17:00:19

array 发表于 2010-1-5 09:01
设置Image为STATIC,而不是节点

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

axibian 发表于 2017-3-7 10:45:52

array 发表于 2010-1-4 15:38
写出之前检查一下getImage()是否能得到正确的Image对象,以及Image对象是否保存了正确的像素数据。有可能是 ...

array你好,我想问问ive格式的数据,里面的纹理是什么格式?在writeNodeFile时,默认是保存成ive格式吗?ive内部纹理也是默认格式吗?比如默认bmp是吗?
页: [1]
查看完整版本: 求助:写入 ive时,模型纹理丢失