在iPad模拟器中经过多次测试后,我发现GL_RGBA GL_UNSIGNED_SHORT_4_4_4_4格式的1024x1024 16位纹理分配4 MB内存,即1024x1024 32 bpp。目前我无法在真实设备上测试此行为。
有人知道iPad是否支持每通道RGBA 4位吗?
在文档中建议使用GL_UNSIGNED_SHORT_4_4_4_4来提高内存效率,建议使用模拟器进行内存测试......这里有些问题。
答案 0 :(得分:3)
实际上,OpenGL ES Programming Guide for iOS告诉您不在模拟器上测试性能:
重要:渲染效果 模拟器中的OpenGL ES没有任何关系 对OpenGL ES的性能 实际设备。模拟器提供了一个 优化的软件光栅化器 利用矢量 你的处理能力 Macintosh电脑。结果,你的 OpenGL ES代码可能运行得更快或 在iOS模拟器中较慢(取决于 你的电脑和你是什么 绘图)而不是实际的设备。 始终描述和优化您的 在真实设备上绘制代码和 永远不要假设模拟器反映 现实世界的表现。
在该指南的“Best Practices for Working with Texture Data”部分,他们建议使用PowerVR纹理压缩(PVRTC)纹理而不是任何未压缩格式。 PVRTC纹理将使用比任何未压缩格式少得多的内存(与32位未压缩纹理相比,可减少8倍或16倍)。
关于每个通道的4位,它们说明了这一点:
如果您的申请无法使用 压缩纹理,考虑使用 较低精度的像素格式。一个 RGB565,RGBA5551或 RGBA4444格式使用一半的内存 RGBA8888格式的纹理。