纹理压缩可以通过减少内存来显著地提高OpenGL的性能,使内存使用的效率更高。
Android设备支持很多格式的纹理压缩,这些纹理压缩格式并不是在所有的设备上面都支持,根据GPU芯片和OpenGL实现的不同略有差异。
一些常见的纹理压缩格式有以下几种:
DXT(Tegra)-NVDIA分为DXT1-DXT5这五个级别,Terga支持的实际上是DXT1、DXT3和DXT5。使用不是很广泛。它支持包含4位或者8位alpha通道的RGB纹理。
PVRTC(PowerVR)不失真压缩率最高的压缩格式。特别的TBDR架构,不渲染被遮挡的部分,有效节省计算资源和带宽。纹理压缩在许多设备上面都支持,支持每个像素2位或者4位的纹理,包含或者不包含alpha通道都可以。
ATC(Adreno)- 高通ATI纹理压缩在许多设备上面都支持,它支持RGB纹理压缩但不包含alpha通道。
ETC1 or RGBA16 (GLES2.0)大部分移动GPU都会支持的纹理标准。不支持Alpha通道。
ETC2 (GLES3.0)补全了ETC1不支持Alpha通道,支持更高质量的RGBA(RGB+Alpha)压缩。
ASTC
Open GL ES
Android在framework API和NDK都提供了对OpenGL的支持
Android系统使用 OpenGL 的标准接口来支持3D图形功能。
Android 3D 引擎采用的是OpenGL ES。OpenGL ES是一套为手持和嵌入式系统设计的3D引擎API。
Android 目前支持下面几个版本的OpenGL ES API :
OpenGL ES 1.0 和 1.1 :Android 1.0和更高的版本支持这个API规范。
OpenGL ES 2.0 : Android 2.2(API 8)和更高的版本支持这个API规范。
OpenGL ES 3.0 : Android 4.3(API 18)和更高的版本支持这个API规范。
OpenGL ES 3.1 : Android 5.0(API 21)和更高的版本支持这个API规范。