查看: 2406|回复: 13

osg读取大图像卡住

[复制链接]

该用户从未签到

发表于 2014-5-22 10:55:42 | 显示全部楼层 |阅读模式
如题,程序中要加载一个地球贴图。现在有三个贴图earth1.bmp(5M),earth2.jpg(11M),earth3.jpg(20M)
读取earth1.bmp和earth2.jpg都没有问题,但是读取earth3.jpg的时候程序就会卡住不动
求解这是为什么

该用户从未签到

发表于 2014-5-23 11:27:17 | 显示全部楼层
现代显卡能够一次建立的最大贴图尺寸通常不会超过16384 x 16384

该用户从未签到

发表于 2014-5-23 13:36:23 | 显示全部楼层
卡住是在读取还是在显示的时候?读取就跟显卡没关系,但内存一般是够的,很可能是显示时候卡了。

该用户从未签到

 楼主| 发表于 2014-5-26 17:03:30 | 显示全部楼层
smash 发表于 2014-5-23 13:36
卡住是在读取还是在显示的时候?读取就跟显卡没关系,但内存一般是够的,很可能是显示时候卡了。

我感觉应该是读取的时候卡住了。
加载小的图片的时候,在dos窗口会输出图片读取信息的,但是读取这个20M的图片的时候就没有输出图片信息,所以我觉得是在读取的时候卡住了。

该用户从未签到

 楼主| 发表于 2014-5-26 17:05:10 | 显示全部楼层
如果把这张图片切成两半,分别读取,然后贴到球上是不是就可以解决了?
但是我不知道对于一个球贴图坐标应该怎么设
还有就是贴图的边缘看着似乎有重叠,应该怎么弄

该用户从未签到

发表于 2014-5-26 22:30:40 | 显示全部楼层
taylor66 发表于 2014-5-26 17:05
如果把这张图片切成两半,分别读取,然后贴到球上是不是就可以解决了?
但是我不知道对于一个球贴图坐标应 ...

你能保证分成两半就能正确读取了吧?还是找到原因吧。用osg源码调试一下看。

该用户从未签到

 楼主| 发表于 2014-5-27 15:50:58 | 显示全部楼层
smash 发表于 2014-5-26 22:30
你能保证分成两半就能正确读取了吧?还是找到原因吧。用osg源码调试一下看。

确定是读取的时候卡住了
用ps吧分辨率调低,文件大小到9.8M的时候就可以读取,调整到15M的时候就提示读取成功,但OpenGL内存溢出,图像也显示不出来,20M的时候就什么提示都没有,光标都没有了,所以应该是分辨率太高,文件太大造成的。
没用分开两半去贴,因为我不会,嘿嘿。现在就是把分辨率调低了用

该用户从未签到

发表于 2014-5-27 21:06:57 | 显示全部楼层
OpenGL内存溢出那应该是从内存推送到显存时显存不够出问题了,光读取图片跟OpenGL没有任何关系。

该用户从未签到

 楼主| 发表于 2014-5-28 08:40:16 | 显示全部楼层
smash 发表于 2014-5-27 21:06
OpenGL内存溢出那应该是从内存推送到显存时显存不够出问题了,光读取图片跟OpenGL没有任何关系。

哦,谢谢

该用户从未签到

 楼主| 发表于 2014-5-29 21:14:31 | 显示全部楼层
smash 发表于 2014-5-27 21:06
OpenGL内存溢出那应该是从内存推送到显存时显存不够出问题了,光读取图片跟OpenGL没有任何关系。


osg可能最大只支持8192*4096的图片,加载大于这个像素的图片,它会自动转换。看来加载高精度的图片必须用LOD了

该用户从未签到

发表于 2014-5-30 16:00:37 | 显示全部楼层
如果是卡在显卡的话,可以考虑把jpg格式转换为dds格式,因为dds是压缩格式,在显卡中也被支持, 不需要解包。

该用户从未签到

 楼主| 发表于 2014-6-2 21:09:19 | 显示全部楼层
CWorld 发表于 2014-5-30 16:00
如果是卡在显卡的话,可以考虑把jpg格式转换为dds格式,因为dds是压缩格式,在显卡中也被支持, 不需要解包 ...

哦,谢谢,我试一试

该用户从未签到

发表于 2014-6-2 21:38:10 | 显示全部楼层
OSG是一款博大精深的系统,需要掌握与学习的内容非常之多。

该用户从未签到

 楼主| 发表于 2014-6-3 08:30:00 | 显示全部楼层
初学OSG一个月 发表于 2014-6-2 21:38
OSG是一款博大精深的系统,需要掌握与学习的内容非常之多。

是啊,刚接触两个月,很多东西一头雾水
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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