如果你有两个2048px X 2048px .png纹理,一个是300kb大小而另一个只有30kb(小10x)。较小的纹理在opengl-es中具有更好的渲染性能吗?或者无关紧要,因为opengl无论如何都会读取每个像素?
答案 0 :(得分:2)
根本不应该有所作为。您必须解压缩PNG文件才能将其加载到OpenGL纹理中,因此只要加载和解压缩文件,并且在OpenGL看到图像数据之前,大小差异就会消失。
OpenGL可以支持压缩纹理,其中精确的压缩格式非常适合版本和平台。 ES 2.0具有压缩纹理的机制,但允许实现支持少至0种压缩格式。
所有常见的纹理压缩格式都使用固定压缩因子的有损压缩。因此,一旦选择了格式,图像的内容就不会对产生的内存使用和性能产生影响。可能的是,细节很少的纹理(通常用PNG很好地压缩)可以更好地进行纹理压缩,因为有损压缩会带来较少的质量损失。如果您的OpenGL实现允许您在不同的压缩格式之间进行选择,您可以使用具有更高压缩因子的格式来使用"简单"内容。