ETC1 纹理压缩保证在 OpenGL ES 2.0 Android 设备上可用?
Posted
技术标签:
【中文标题】ETC1 纹理压缩保证在 OpenGL ES 2.0 Android 设备上可用?【英文标题】:ETC1 Texture compression guaranteed to be available on OpenGL ES 2.0 Android Devices? 【发布时间】:2015-01-29 14:52:27 【问题描述】:我对 android 设备上 ETC1 文本压缩的可用性(或不可用)有点困惑。
我看到这个(来自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()?
或者我理解有误,我还需要检查?
【问题讨论】:
【参考方案1】:根据 Android 官方文档,保证支持 ES 2.0 的设备也支持 ETC1。我发现至少有两页表明:
在页面Creating Multiple APKs for Different GL Textures 的“图表您的需求”下:
请注意,通常最好让您的一个 APK 支持 ETC1,因为所有支持 OpenGL ES 2.0 规范的 Android 设备都支持该纹理格式。
在带有supports-gl-texture 文档的页面上,在带有各个格式的表格中,它显示为GL_OES_compressed_ETC1_RGB8_texture
:
爱立信纹理压缩。在 OpenGL ES 2.0 中指定,可用于所有支持 OpenGL ES 2.0 的 Android 设备。
【讨论】:
谢谢,尽我所能,我找不到这些参考资料。只有我在原始问题中引用的那个,似乎有些模糊。以上是关于ETC1 纹理压缩保证在 OpenGL ES 2.0 Android 设备上可用?的主要内容,如果未能解决你的问题,请参考以下文章