Vulkan 是新型的跨平台 3D 圖形 API,旨在盡可能減少裝置圖形處理硬體與遊戲間的抽象化情形。雖說 Vulkan 是 Android 的主要低階圖形 API,可取代 OpenGL ES,但 Android 仍支援 OpenGL ES,只是我們不再積極開發相關功能。與 OpenGL ES 相較,Vulkan 具有下列優點:
- 更有效率的架構,圖形驅動程式的 CPU 負擔較小
- 全新的最佳化策略,可提升 CPU 效能
- OpenGL ES 未提供的全新圖形處理功能,例如無繫結 API 和光線追蹤
Vulkan 適用於 Android 7 (API 級別 24) 以上版本。此外,凡是搭載 Android 10 (API 級別 29) 以上版本的 64 位元 Android 裝置,皆可支援 Vulkan 1.1。就目前使用中的 Android 裝置而言,有 85% 都支援 Vulkan。Android 基準設定檔會為支援 Vulkan 的裝置定義最低需求的功能組合。
Vulkan 有助於打造外觀與效能俱佳的遊戲,而且能夠完整發揮新型圖形處理硬體的潛力。在相容的裝置上,Vulkan 可供 Android UI 轉譯架構使用。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 時遇到任何問題,請透過問題追蹤工具向我們回報。