【发布时间】:2016-08-08 22:05:41
【问题描述】:
问题: 为什么相同数量的像素存储在方形纹理中比存储在长矩形纹理中占用的视频内存要少得多?
示例: 我正在使用 glTexImage2D 命令创建 360 个 4x16384 大小的纹理。内部格式为 GL_RGBA。 视频内存:1328 MB。
如果我使用相同的数据创建 360 个 256x256 纹理,则内存使用量小于 100MB。
使用集成的 Intel HD4000 GPU。
【问题讨论】:
-
我不是 100% 确定,但我认为这与 OpenGL 如何通过其 glTexture 调用处理像素数据有关。当图像是正方形时,我认为它与 2 的幂有关,因为它将数据存储在后台缓冲区中以准备渲染。
-
你在生成mipmap吗?我认为你没有,但只是为了确定 ;)
-
@Mars:你说得对,我忘了我没有使用 mipmap。
-
@FrancisCugler:正如您所建议的那样,答案可能是特定于实现的,但在论坛上,共识似乎是只要维度是 2 的幂,就没有 non - 方形纹理。
-
最简单的方法是在具有不同硬件的机器上进行尝试,最好使用专用 GPU。您正在使用哪个版本的 OpenGL 进行测试? 4.0?
标签: opengl