我正在寻找Android设备及其硬件支持的相对OpenGL纹理压缩格式的列表。
Android 主要支持四种纹理压缩类型:
- ETC1(爱立信纹理压缩)。所有安卓手机都支持这种格式。但是,它不支持 alpha 通道,因此只能用于不透明纹理。
- PVRTC(PowerVR 纹理压缩)。由配备PowerVR GPU的设备(Nexus S,Kindle fire...)支持。
- ATITC(ATI纹理压缩)。用于带有高通公司Adreno GPU的设备(Nexus One...)。
- S3TC(S3纹理压缩)。这种纹理压缩用于NVIDIA芯片组集成设备(摩托罗拉Xoom...
我在正在使用的游戏引擎中内置了日志记录功能,它将告诉我在单个设备上运行应用程序时使用哪种格式,但我想找到一个值得信赖的资源作为参考。
有没有人在网上看到过这样的东西?
没有这样的列表(至少不可信),因为
- 每天都有几款安卓设备发布
- 纹理压缩格式比您在列表中提到的要多(ETC2/EAC,ASTC,LATC,...)
- 3D 硬件供应商比您在列表中提到的要多(ARM Mali,Intel HD Graphics,Vivante等)
你永远不应该依赖3D HW供应商和特定纹理压缩支持之间的关系,而不是这个您应该通过在 glGetString(GL_EXTENSIONS)
返回的字符串中查找扩展子字符串来检查支持的纹理压缩运行时(OpenGL/ES 初始化后),例如,"GL_EXT_texture_compression_s3tc"代表S3TC,"GL_IMG_texture_compression_pvrtc"代表PVRTC。