iPad OpenGL ES:内存纹理大小

时间:2011-01-27 09:32:32

标签: ipad memory size textures opengl-es

我正在加载一个1024 x 1024的RGBA纹理。我预计内存中的纹理大小将是1024 x 1024 x 4 => 4 MB。但是当我尝试打印内存消耗时,我可以看到纹理大约需要7到8 MB,几乎翻倍。我只是想知道IPad是否正在将每个通道从字节转换为半浮点数, 那么有没有办法指定每个像素应该占用4个字节而不是8个字节。

2 个答案:

答案 0 :(得分:0)

指定它的最简单方法是使用大小的内部格式(如GL_RGBA8而不是GL_RGBA),尽管我不确定ES是否支持这些格式。但是如果ES设备存储每个通道超过8位的标准RGBA纹理,我会感到惊讶。

如何确定GPU内存消耗?我宁愿猜测额外的内存是由于其他重要的GPU资源,比如VBO,而不是忘记了帧缓冲本身(你渲染的内存),它占用了大量的内存。请记住,当使用mip-maps时,这些还需要大约33%的基本纹理内存。

如果您正在讨论从中创建纹理的CPU数据的大小,那么这与纹理的大小无关,只取决于您自己数据的大小。

答案 1 :(得分:-1)

使用glTexImage2D创建纹理时,必须指定纹理的 类型 内部格式

你的可能设置为GL_FLOAT或其他东西。

在此处查看文档:{​​{3}}