iPad OpenGL ES:内存纹理大小

iPad OpenGL ES:内存纹理大小,ipad,memory,size,textures,opengl-es,Ipad,Memory,Size,Textures,Opengl Es,我正在加载1024 x 1024的RGBA纹理。我期望内存上的纹理大小为1024x102x4=>4MB。但是当我尝试打印内存消耗时,我可以看到纹理占用了大约7-8MB,几乎是原来的两倍。我只是想知道IPad是否正在将每个通道从字节转换为半浮点数, 那么,有没有办法指定每个像素应该使用4个字节,而不是8个字节呢 使用glTexImage2D创建纹理时,必须指定纹理的类型和内部格式 你的可能设置为GL_FLOAT或其他 在此处查阅文档:使用GLTEXAGE2D创建纹理时,必须指定纹理的类型和内部格式

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

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

你的可能设置为GL_FLOAT或其他


在此处查阅文档:

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

你的可能设置为GL_FLOAT或其他


在此处查阅文档:

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

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


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

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

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


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

GLTEXAGE2D的type参数指定从中创建纹理数据的CPU数组的类型。它不会影响GPU上的数据,而GPU上的数据只取决于内部格式。即使如此,GL_FLOAT也会产生至少16 MB的数据。glTexImage2D的type参数指定要从中创建纹理数据的CPU数组的类型。它不会影响GPU上的数据,而GPU上的数据只取决于内部格式。即使这样,GL_FLOAT也会导致至少16MB的数据。@downvoter为什么要进行downvote?好的,我可能不太适合ES设备的硬件架构,但我想知道,特别是哪里出了问题。或者我误解了这个问题?@downvoter投票的原因?好的,我可能不太适合ES设备的硬件架构,但我想知道,特别是哪里出了问题。或者我误解了这个问题?您确定没有意外加载(或填充)2048x1024纹理吗?您确定没有意外加载(或填充)2048x1024纹理吗?