【发布时间】:2014-10-27 17:09:35
【问题描述】:
我正在开发一些高清成像软件,虽然目前没有为这个版本计划非常大的纹理,但我想在未来做一些校对。
如果我正在处理非常大的纹理(例如 1095630 x 939495),我是否可以使用压缩纹理和 mip 映射的标准组合,或者这些纹理是否会太大而无法存储在纹理内存中?
我的假设是它们太大了,我必须在 CPU 上做一个伪手动 mip 映射。即抓取非常大的数据,为完全缩小创建合理的压缩版本,然后当用户放大时,将大纹理的子部分发送到 GPU?
在 CPU 上进行上述压缩的想法会非常慢,所以我的计划是平铺数据并将其分块发送到 GPU 进行压缩。在这种情况下,我如何最好动态地找出 GPU 可以处理的最大纹理大小?
我是 TIFF 格式的新手,但从外观上看,它已经存储为图块,这是正确的吗?我希望与 libtiff 玩一点,但我没有找到很多使用它的例子(我的谷歌技能今天失败了,抱歉)。 https://stackoverflow.com/questions/ask
现有示例 我希望从这两个方面得到一些指示:
- BioView3D(开源ftw)
- BigTiffViewer
总结:
- 如何找出 GPU 可以处理的最大纹理大小(最好是 3D 纹理大小...)
- 分解大型纹理格式并将其压缩到 GPU 可以处理的最佳方式是什么
- 促进缩放的最佳方式是什么?
- 关于使用 libTiff 的指针?
【问题讨论】:
-
((((1095630 x 939495 x 4 (rgba))/1024(千字节))/1024(兆字节))/1024(千兆字节)) ~= 383.5 GB
-
所以是的,我认为这可能太大而无法存储在纹理内存中......可能。
标签: opengl textures libtiff large-data