0

我对 Android 设备上 ETC1 Textue 压缩的可用性(或不可用)有点困惑。

我看到这个(来自 Android Docs)在不同的地方被引用:

注意:大多数 Android 设备都支持 ETC1 格式,但不保证可用。要检查设备是否支持 ETC1 格式,请调用 ETC1Util.isETC1Supported() 方法。

我也相信(如果我错了,请纠正我)ETC1 支持是 OpenGL ES 2.0 强制要求的。

因此,有人可以澄清一下文档中的上述声明是否仅仅意味着不保证 ETC1 压缩支持可用 OpenGL ES 1.x 设备,但可能通过扩展的方式可用,因此在这些设备上,您应该调用ETC1Util.isETC1Supported() 方法来检查可用性

如果我的假设是正确的,我也会假设我可以100% 保证ETC1 在我的所有目标设备上可用(因为我的应用程序使用 OpenGL ES 2.0,我检查了应用程序内的可用性)。因此我不需要检查 ETC1Util.isETC1Supported()?

或者也许我误解了它,我仍然需要检查?

4

1 回答 1

0

根据 Android 官方文档,保证支持 ES 2.0 的设备也支持 ETC1。我发现至少有两页说明:

  • 为不同的 GL 纹理创建多个 APK页面上,在“图表您的要求”下:

    请注意,您的一个 APK 支持 ETC1 通常是一个好主意,因为所有支持 OpenGL ES 2.0 规范的 Android 设备都支持这种纹理格式。

  • 在带有support-gl-texture文档的页面上,在带有各个格式的表格中,它说GL_OES_compressed_ETC1_RGB8_texture

    爱立信纹理压缩。在 OpenGL ES 2.0 中指定,可用于所有支持 OpenGL ES 2.0 的 Android 设备。

于 2015-01-30T08:20:24.253 回答