MobileGlues 中文文档 下载 App

OpenGL ES 3.x 基础:MobileGlues 的底层依赖

什么是 OpenGL ES

OpenGL ES(Embedded Systems)是 OpenGL 的嵌入式版本,专门为移动设备设计。它去掉了桌面 OpenGL 中不常用的功能,保留了核心渲染能力,同时保持较小的驱动体积和较低的 GPU 占用。

Android 平台只提供 OpenGL ES,不提供桌面 OpenGL,所以任何需要在 Android 上运行的图形应用最终都必须落到 OpenGL ES 上。

版本要求

MobileGlues 对 OpenGL ES 版本有明确要求:

版本说明
3.2(推荐)最大扩展覆盖,支持 Compute Shader、Timer Query、Direct State Access
3.0(最低)基本渲染正常,但某些高级特性不可用

低于 3.0 的设备无法运行 MobileGlues。市面上 2015 年之后发布的 Android 手机普遍支持 OpenGL ES 3.0,2019 年之后发布的机型大多支持 3.2。

MobileGlues 利用的 ES 特性

MobileGlues 的功能实现深度依赖 OpenGL ES 的具体特性:

GLSL 着色器的关键差异

桌面 GLSL 和 GLSL ES 有几个会导致直接报错的差异,这也是 MobileGlues 自动做转换的原因:

这就是为什么很多桌面端能跑的光影直接丢到 Android 上会报着色器编译错误,而通过 MobileGlues 就正常。