自 1.6.0 版本起,團結(jié)引擎已在小游戲平臺支持Metal 圖形 API,微信與抖音已同步支持。Metal 讓小游戲項目在 iOS 上獲得對齊原生圖形 API 能力。
對于開發(fā)者來說,將 WebGL 小游戲切換至 Metal 渲染僅需要更改一兩個配置項即可。無需針對游戲項目進行任何復(fù)雜的適配工作,即可輕松享受 Metal 帶來的強大繪制能力和功耗優(yōu)化。
感受 Metal 的強大
以下為使用 Metal 圖形 API 在 iOS 小游戲平臺制作的風(fēng)格化室外場景視頻:
秋日午后的陽光下,Unity Chan 在金黃的草地中自由地漫步
值得注意的是,場景中所有的草均通過GPU-driven進行繪制,也就是說,每棵草隨風(fēng)搖曳的頂點、可見性視錐剔除以及依據(jù)相機距離的種植密度,等等信息均由 GPU 計算生成。每棵草由 39 個頂點構(gòu)成,在某些視角下,同屏?xí)?strong>超過50000棵草,200w+個頂點,所有的草均由一個 DrawInstancedIndirect 指令提交繪制。
除此之外,場景中使用了較為重度的后處理效果,比如完整的 Bloom 功能,LensFlare 效果。這些效果之前在小游戲平臺上通常都是難以支持的。
而在開啟了 Metal 渲染后,如此復(fù)雜的一個游戲場景,在 iPhone14 上能夠輕松以 60fps 的幀率流暢運行。
Metal小游戲帶來更低的功耗
從 iOS 13 開始,Metal 已經(jīng)成為了蘋果官方唯一支持的圖形接口(GLES 已不再維護)。在 iOS 平臺上使用 Metal 渲染,毫無疑問可以獲得最佳的性能和體驗。
團結(jié)小游戲中采用的 Metal 指令流方案,讓小游戲能夠在享受 WKWebview 內(nèi) JIT 加速的同時,調(diào)用純正的原生 Metal 接口,避免了傳統(tǒng) WebGL 小游戲中額外的轉(zhuǎn)換開銷。
此外,Metal 圖形接口的現(xiàn)代化設(shè)計,讓引擎可以更有效地管理底層圖形資源和管線。畫面表現(xiàn)越是出眾的游戲,一般來說其底層渲染就會越復(fù)雜,而優(yōu)化復(fù)雜的渲染管線正是 Metal 最擅長的事情。
我們測試了多款類型各異的小游戲,都能獲得一定的功耗優(yōu)化,功耗降低在7%~30%之間,在圖形渲染密集型場景中尤其明顯。
![]()
這意味著您的小游戲可以實現(xiàn)更高效的圖形渲染,兼顧高幀率和低發(fā)熱。在 iOS 設(shè)備上運行得更久、更穩(wěn)定,帶來更加流暢舒適的用戶體驗。
我們在某款重度 MMO 小游戲上對 Metal 和 WebGL 2.0 做了對比測試,都在 30 幀滿幀率下運行,測試結(jié)果如下表所示:
![]()
從數(shù)據(jù)中可以明顯看出,相比于使用 WebGL2.0,使用 Metal 渲染能夠在多種設(shè)備上取得可觀的功耗收益。
Metal 為小游戲提供更現(xiàn)代的圖形特性
使用 Metal 渲染可以解鎖所有 iOS 平臺的原生圖形特性,包括ComputeShader、Indirect draw等一系列 WebGL 缺失的能力并完美支持Visual Effect Graph。這些將大幅拓展小游戲在 iOS 上的圖形表現(xiàn)力,突破小游戲原本的渲染瓶頸。
Compute Shader
借助 Metal 對 GPU 并行計算的原生支持,開發(fā)者可以使用 Compute Shader 對大規(guī)模數(shù)據(jù)進行實時處理。
視頻所示的百萬粒子模擬,每個粒子的位置、顏色、運行狀態(tài)由 Compute Shader 計算并寫入結(jié)構(gòu)緩沖(StructureBuffer),隨后由
Indirect Draw與Draw Instancing直接提交至 GPU 渲染。
Indirect Draw
Metal原生支持 GPU-driven 渲染路徑,可在無需頻繁 CPU 干預(yù)的前提下進行大規(guī)模實例化繪制。下圖為在文中的草地渲染 Demo 中截取的一幀,草的頂點位置、種植信息均由 GPU 計算產(chǎn)生,支持百萬頂點級別的高密度植被渲染。
![]()
Visual Effect Graph支持
開啟 Metal 渲染后,Visual Effect Graph(com.unity.visualeffectgraph)也可以在小游戲平臺上啟用了。
視頻中由 50w 個粒子組成的 Unity Chan 小人、飛舞的花瓣和螢火蟲也均由 Visual Effect Graph 制作。通過對視效表現(xiàn)能力的挖掘,相信視覺特效藝術(shù)家能為小游戲畫面帶來更為驚艷的效果與比肩原生應(yīng)用的視效品質(zhì)。
平臺支持
目前,團結(jié) 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 渲染支持。
構(gòu)建 Metal 小游戲時,推薦在 Graphics APIs 配置項中同時添加 Metal 和 WebGL 兩個 API,這樣可以構(gòu)建出兼容 WebGL 的 Metal 小游戲包,運行時會優(yōu)先選擇 Metal 渲染,在未支持 Metal 的設(shè)備將在運行時自動回退至 WebGL,確保低端設(shè)備兼容性。
![]()
??注意事項
啟用 Metal 后需重新構(gòu)建 AssetBundle,以確保資源格式正確;
Metal 暫不支持 Async Compute,Autoconnect FrameDebugger,iOS native plug-in。
更多詳情
除 Metal 圖形 API 支持外,團結(jié) 1.8.0 起,Android 小游戲平臺的 Vulkan 圖形 API 支持也已上線,請參閱團結(jié)引擎 1.8.0 起,小游戲 Vulkan 支持上線篇。
Unity 官方微信
第一時間了解Unity引擎動向,學(xué)習(xí)進階開發(fā)技能
每一個“點贊”、“在看”,都是我們前進的動力

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
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.