查看: 1941|回复: 13

PagedLod调度模型卸载时场景纹理错乱

[复制链接]

该用户从未签到

发表于 2011-6-30 10:57:18 | 显示全部楼层 |阅读模式
现在遇到这样一个问题:将LightingMap 烘焙的模型导出为ive,并通过纹理压缩简化后制作成多个lod文件通过构建PagedLod节点进行调度,可以实现调度但当模型卸载时场景纹理错乱。
初步分析是由于第一层纹理卸载时纹理坐标被卸载,导致第二层纹理在场景中乱贴。自己通过实验也发现只有一层纹理的模型卸载时就不会出错。请问大家有谁遇到过这样的问题?如何让解决啊?

该用户从未签到

发表于 2011-6-30 11:19:58 | 显示全部楼层
您的显卡是什么型号。我遇到过这类问题,都是显卡问题

该用户从未签到

 楼主| 发表于 2011-6-30 11:21:51 | 显示全部楼层
NVIDIA GeForce  9300GE

该用户从未签到

 楼主| 发表于 2011-6-30 11:22:04 | 显示全部楼层
NVIDIA GeForce  9300GE

该用户从未签到

 楼主| 发表于 2011-6-30 11:22:43 | 显示全部楼层
您是说可能是显卡的问题么?

该用户从未签到

发表于 2011-6-30 11:24:38 | 显示全部楼层
以前遇到过纹理错乱,是显卡问题

该用户从未签到

 楼主| 发表于 2011-6-30 11:25:27 | 显示全部楼层
但是有个问题就是用osgViewer浏览单个时是没有问题的啊?

该用户从未签到

 楼主| 发表于 2011-6-30 11:31:34 | 显示全部楼层
还有其他更高端的图形工作站上也是出现纹理错乱,所以我现在怀疑是不是自己的程序写的有问题。

该用户从未签到

 楼主| 发表于 2011-7-1 10:27:11 | 显示全部楼层
今天找到了出现问题的原因,如果将DataBasePager中的最大保留节点的个数设为0时,程序将会执行释放过期节点的OpenGL对象,也就是这一句导致模型纹理变乱。请大家帮忙验证一下,并提出DataBasePager中的最大保留节点的个数设为0时纹理变乱的解决方案,谢谢大家了。

该用户从未签到

 楼主| 发表于 2011-7-1 13:08:05 | 显示全部楼层
麻烦array老大帮忙看看,是不是这是DataBasePager的一个bug啊!

该用户从未签到

发表于 2011-7-4 08:34:45 | 显示全部楼层
如果将DataBasePager中的最大保留节点的个数设为0
请说明您这么做的理由,这一句看起来毫无道理

该用户从未签到

 楼主| 发表于 2011-7-4 09:48:18 | 显示全部楼层
之所以将DataBasePager中的最大保留节点的个数设为0,是因为以前在应用DataBasePager调度数据时发现内存卸载有时出现卸载不了的现象,但将DataBasePager中的最大保留节点的个数设为0时内存卸载就不会出现异常,但现在发现在这种情况下又引起了模型卸载时纹理变黑的现象。自己对DataBasePager的深入研究较少因此还望老大帮我看看。

该用户从未签到

发表于 2011-7-4 13:08:23 | 显示全部楼层
因为以前在应用DataBasePager调度数据时发现内存卸载有时出现卸载不了的现象
那么您的判断或者解决方法有问题,我这里用DataBasePager没有什么问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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