Android Jetpack WebGPU 程式庫提供 WebGPU 標準的慣用 Kotlin 繫結,可在 Android 應用程式中實現高效能的現代 3D 繪圖和運算功能。
WebGPU 是 WebGL 的後繼技術,也是 OpenGL 的精神後裔,從頭開始建構,反映現代 GPU 的運作方式,並以跨平台、安全且符合人體工學的方式公開 GPU 功能。
為什麼要使用 WebGPU?
- 簡化可用性:雖然 Vulkan 是 Android 的主要低階圖形 API,WebGPU 提供現代化的高階 API,與 Vulkan 相比,使用起來更平易近人,且冗餘程度大幅降低。
- 批次處理和序列化:WebGPU 會將多個指令記錄到指令緩衝區中,這是為了盡量減少通訊協定閒聊而設計。使用 Kotlin 繫結時,也能盡量減少呼叫外部方法的需求。
- 通用支援:WebGPU 著色器程式碼 (WGSL) 可在各平台的 WebGPU 實作中直接共用,包括網頁。
- 最佳化運算:運算和圖形工作之間可無縫共用緩衝區,不必複製資料,與舊版 API 相比,可提升效能並簡化開發作業。
這個程式庫的適用對象
這個程式庫專為建構需要直接存取 GPU 的高效能應用程式而設計:
- 圖片和影片處理篩選器
- 資料視覺化
- 機器學習推論
- 遊戲和模擬
非目標:這是圖形 API,而非遊戲引擎。您必須負責管理自己的算繪迴圈、攝影機矩陣和場景圖。
WebGPU 核心概念
瞭解基礎 WebGPU 物件及其互動方式,是 WebGPU 開發作業的必要條件。
概念 |
說明 |
執行個體 |
WebGPU 的進入點,可授予介面卡和 Surface 的存取權 |
變壓器 |
代表裝置上的特定 GPU |
裝置 |
資源建立所在的 GPU 邏輯連線 |
待播清單 |
用於將指令提交至 GPU 的機制 |
Shader Module |
以 WebGPU 著色語言 (WGSL) 編寫的 GPU 程式碼 |
管道 |
描述工作整個 GPU 狀態 (著色器、混合) 的物件 |
繫結群組 |
將資料緩衝區 (例如紋理) 繫結至著色器 |
指令編碼器 |
用於將一連串 GPU 指令建構到指令緩衝區的物件 |