Vulkan 是一种现代化跨平台 3D 图形 API,利用它可以最大限度减少设备图形硬件与您游戏之间的抽象处理。Vulkan 是 Android 上的主要底层图形 API,用于取代 OpenGL ES。OpenGL ES 在 Android 上仍受支持,但我们已不再开发其功能。与 OpenGL ES 相比,Vulkan 具有以下优势:
- 采用更高效的架构,图形驱动程序的 CPU 开销更低
- 通过新的优化策略提高了 CPU 性能
- 具有无绑定 API、光线追踪等 OpenGL ES 所不具备的全新图形功能
Vulkan 从 Android 7(API 级别 24)起在 Android 上提供。所有搭载 Android 10(API 级别 29)及更高版本的 64 位 Android 设备均支持 Vulkan 1.1。85% 的活跃 Android 设备支持 Vulkan。Android 基准配置文件为支持 Vulkan 的设备定义了最低限度的功能集。
Vulkan 可以帮助您打造画面更细腻、性能更出色的游戏。Vulkan 可充分发挥现代图形硬件的潜力。在兼容的设备上,通过 Android 界面渲染框架来使用 Vulkan。Unity 和 Unreal 游戏引擎的现行版本均选择 Vulkan 作为兼容的 Android 设备上的默认渲染程序。ANGLE 项目使得在 Vulkan 的基础上以符合要求的方式实现 OpenGL ES API 成为可能。
开始
C/C++
如需了解如何在 Android 上的 C/C++ 游戏引擎中使用 Vulkan,请参阅 开始在 Android 上使用 Vulkan。
此外,原生开发套件 (NDK) 文档中还提供了面向非游戏开发者的通用 Vulkan 部分,其中介绍了以下主题:
- 着色器编译器 - 用于提升性能
- 验证层 - 用于调试 Vulkan 代码
- Vulkan 扩展 - 用于实现自定义功能
- Android 基准配置文件 - 用于明确设备要求
游戏引擎
ANGLE 简介
Vulkan 是 Android 与 GPU 的首选接口。Android 15 及更高版本包含 ANGLE 作为可选层,用于在 Vulkan 基础上运行 OpenGL ES。改用 ANGLE 可标准化 Android OpenGL 实现,提高兼容性,在某些情况下还有助于提升性能。
使用以下两个 adb 命令为您的软件包启用 ANGLE,然后使用各种 Android 15 及更高版本的设备通过 ANGLE 测试 OpenGL ES 应用的稳定性和性能。将“package-name”替换为要测试的软件包。
adb shell settings put global angle_gl_driver_selection_pkgs package-name
adb shell settings put global angle_gl_driver_selection_values angle
这些设置会在设备重新启动后保留。如需停用 ANGLE,请使用以下命令:
adb shell settings delete global angle_gl_driver_selection_pkgs
adb shell settings delete global angle_gl_driver_selection_values
Android ANGLE on Vulkan 路线图
报告 ANGLE 问题
如果您在使用 ANGLE 时遇到任何问题,请在我们的问题跟踪器中提交问题报告,以便我们进行调查。