自 1.6.0 版本起,團結引擎已在小游戲平臺支持Metal 圖形 API,微信與抖音已同步支持。Metal 讓小游戲項目在 iOS 上獲得對齊原生圖形 API 能力。
對于開發者來說,將 WebGL 小游戲切換至 Metal 渲染僅需要更改一兩個配置項即可。無需針對游戲項目進行任何復雜的適配工作,即可輕松享受 Metal 帶來的強大繪制能力和功耗優化。
感受 Metal 的強大
以下為使用 Metal 圖形 API 在 iOS 小游戲平臺制作的風格化室外場景視頻:
秋日午后的陽光下,Unity Chan 在金黃的草地中自由地漫步
值得注意的是,場景中所有的草均通過GPU-driven進行繪制,也就是說,每棵草隨風搖曳的頂點、可見性視錐剔除以及依據相機距離的種植密度,等等信息均由 GPU 計算生成。每棵草由 39 個頂點構成,在某些視角下,同屏會有超過50000棵草,200w+個頂點,所有的草均由一個 DrawInstancedIndirect 指令提交繪制。
除此之外,場景中使用了較為重度的后處理效果,比如完整的 Bloom 功能,LensFlare 效果。這些效果之前在小游戲平臺上通常都是難以支持的。
而在開啟了 Metal 渲染后,如此復雜的一個游戲場景,在 iPhone14 上能夠輕松以 60fps 的幀率流暢運行。
Metal小游戲帶來更低的功耗
從 iOS 13 開始,Metal 已經成為了蘋果官方唯一支持的圖形接口(GLES 已不再維護)。在 iOS 平臺上使用 Metal 渲染,毫無疑問可以獲得最佳的性能和體驗。
團結小游戲中采用的 Metal 指令流方案,讓小游戲能夠在享受 WKWebview 內 JIT 加速的同時,調用純正的原生 Metal 接口,避免了傳統 WebGL 小游戲中額外的轉換開銷。
此外,Metal 圖形接口的現代化設計,讓引擎可以更有效地管理底層圖形資源和管線。畫面表現越是出眾的游戲,一般來說其底層渲染就會越復雜,而優化復雜的渲染管線正是 Metal 最擅長的事情。
我們測試了多款類型各異的小游戲,都能獲得一定的功耗優化,功耗降低在7%~30%之間,在圖形渲染密集型場景中尤其明顯。
![]()
這意味著您的小游戲可以實現更高效的圖形渲染,兼顧高幀率和低發熱。在 iOS 設備上運行得更久、更穩定,帶來更加流暢舒適的用戶體驗。
我們在某款重度 MMO 小游戲上對 Metal 和 WebGL 2.0 做了對比測試,都在 30 幀滿幀率下運行,測試結果如下表所示:
![]()
從數據中可以明顯看出,相比于使用 WebGL2.0,使用 Metal 渲染能夠在多種設備上取得可觀的功耗收益。
Metal 為小游戲提供更現代的圖形特性
使用 Metal 渲染可以解鎖所有 iOS 平臺的原生圖形特性,包括ComputeShader、Indirect draw等一系列 WebGL 缺失的能力并完美支持Visual Effect Graph。這些將大幅拓展小游戲在 iOS 上的圖形表現力,突破小游戲原本的渲染瓶頸。
Compute Shader
借助 Metal 對 GPU 并行計算的原生支持,開發者可以使用 Compute Shader 對大規模數據進行實時處理。
視頻所示的百萬粒子模擬,每個粒子的位置、顏色、運行狀態由 Compute Shader 計算并寫入結構緩沖(StructureBuffer),隨后由
Indirect Draw與Draw Instancing直接提交至 GPU 渲染。
Indirect Draw
Metal原生支持 GPU-driven 渲染路徑,可在無需頻繁 CPU 干預的前提下進行大規模實例化繪制。下圖為在文中的草地渲染 Demo 中截取的一幀,草的頂點位置、種植信息均由 GPU 計算產生,支持百萬頂點級別的高密度植被渲染。
![]()
Visual Effect Graph支持
開啟 Metal 渲染后,Visual Effect Graph(com.unity.visualeffectgraph)也可以在小游戲平臺上啟用了。
視頻中由 50w 個粒子組成的 Unity Chan 小人、飛舞的花瓣和螢火蟲也均由 Visual Effect Graph 制作。通過對視效表現能力的挖掘,相信視覺特效藝術家能為小游戲畫面帶來更為驚艷的效果與比肩原生應用的視效品質。
平臺支持
目前,團結 Metal 小游戲支持的平臺正在不斷拓展。除Unity Connect外,新增了微信和抖音的平臺支持:
微信 SDK 版本:(≥0.1.31)
微信版本:(≥8.0.63,更推薦 ≥8.0.65)
需開啟微信 iOS 高性能+模式
微信 iOS Metal 介紹文檔
https://gitee.com/wechat-minigame/minigame-unity-webgl-transform/blob/main/Design/iOSMetal.md
抖音 SDK 版本:(≥6.6.0)
開通抖音 Metal 白名單
抖音版本:(≥37.0.0)
Unity Connect
宿主 SDK 版本:(≥1.0.5)
Unity Connect 版本:(≥2.6.5)
快速上手
在Project Settings -> Player中,選擇MiniGame 平臺,在Graphics APIs中添加Metal,即可啟用 Metal 渲染支持。
構建 Metal 小游戲時,推薦在 Graphics APIs 配置項中同時添加 Metal 和 WebGL 兩個 API,這樣可以構建出兼容 WebGL 的 Metal 小游戲包,運行時會優先選擇 Metal 渲染,在未支持 Metal 的設備將在運行時自動回退至 WebGL,確保低端設備兼容性。
![]()
??注意事項
啟用 Metal 后需重新構建 AssetBundle,以確保資源格式正確;
Metal 暫不支持 Async Compute,Autoconnect FrameDebugger,iOS native plug-in。
更多詳情
除 Metal 圖形 API 支持外,團結 1.8.0 起,Android 小游戲平臺的 Vulkan 圖形 API 支持也已上線,請參閱團結引擎 1.8.0 起,小游戲 Vulkan 支持上線篇。
Unity 官方微信
第一時間了解Unity引擎動向,學習進階開發技能
每一個“點贊”、“在看”,都是我們前進的動力
![]()
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.