為了對(duì)齊 iOS 上小游戲?qū)?strong>MetalAPI的支持,在團(tuán)結(jié)1.8.0中,我們推出了安卓上小游戲?qū)?strong>Vulkan API的支持。與 Metal 類似,Vulkan 在支持更多渲染能力的同時(shí),顯著優(yōu)化了功耗和幀耗時(shí)。
我們同樣使用 Vulkan 在 Android 小游戲平臺(tái)制作了演示 Demo,和 Metal Demo 使用了相同的場(chǎng)景與效果,詳見小游戲 Metal 支持上線,提供接近原生圖形 API 的特性與功能篇。
注:Vulkan Demo 的工程文件已經(jīng)上傳至 Git 倉(cāng)庫(kù),歡迎廣大開發(fā)者前往下載并體驗(yàn)。
https://cnb.cool/tuanjie/MiniGame/Tuanjie_MiniGame_Vulkan_Demo
什么是 Vulkan 小游戲?
團(tuán)結(jié)引擎 Vulkan 小游戲,在圖形渲染中創(chuàng)新地使用了現(xiàn)代圖形接口 Vulkan 來(lái)替代傳統(tǒng)的 WebGL。在小游戲領(lǐng)域中屬于開創(chuàng)性的技術(shù)突破。
Vulkan 圖形接口是跨平臺(tái)圖形接口 OpenGL 的后繼者,帶著 “精確控制 GPU” 的歷史使命出生,到現(xiàn)在已經(jīng)經(jīng)歷了十年的沉淀和更新。在安卓平臺(tái)上更是已經(jīng)成為了重度原生移動(dòng)端游戲的首選。
而 Vulkan 小游戲的目標(biāo),在于將小游戲渲染性能無(wú)限提升至接近安卓原生游戲的水平,讓小游戲可以獲得媲美原生移動(dòng)端手游的畫面表現(xiàn)。
更穩(wěn)定的 FPS
內(nèi)部測(cè)試的幾款 Vulkan 小游戲都獲得了驚人的 20% 幀耗時(shí)降低,帶來(lái)了更穩(wěn)定的 FPS。
相較于傳統(tǒng)的安卓 WebGL 小游戲,團(tuán)結(jié)引擎 Vulkan 小游戲會(huì)額外啟用一個(gè) worker 線程,用于提交 GPU 指令,可以有效分擔(dān)主線程壓力。
而在 JS 和 Native 交互的層面,Vulkan 小游戲也進(jìn)行了進(jìn)一步的優(yōu)化,努力將膠水層帶來(lái)的開銷降至最低。
![]()
更低的功耗
僅僅將 WebGL 小游戲切換至 Vulkan 小游戲,就可以帶來(lái)平均5%~10%的功耗降低。更低的功耗也就意味著更少的發(fā)熱,也會(huì)顯著影響用戶的游戲時(shí)長(zhǎng)。
我們?cè)谀晨钪囟?MMO 小游戲上對(duì) Vulkan 渲染和 WebGL 渲染進(jìn)行了多輪對(duì)比測(cè)試,整理測(cè)試數(shù)據(jù)如下:
![]()
更多的圖形特性
從長(zhǎng)遠(yuǎn)來(lái)看,這將是 Vulkan 小游戲最大的優(yōu)勢(shì)。
相比 WebGL 小游戲,Vulkan 小游戲具備支持所有的安卓 GPU 原生特性的潛力。在解鎖更強(qiáng)大的現(xiàn)代渲染特性的同時(shí),也提供了深度優(yōu)化圖形管線的可能性。
Compute Shader:支持在 GPU 上進(jìn)行并行數(shù)據(jù)計(jì)算,適用于復(fù)雜的模擬或特效處理。
VFX:支持實(shí)現(xiàn)更復(fù)雜、運(yùn)行更高效的視覺(jué)特效。
Indirect Draw:實(shí)現(xiàn)更高效的渲染調(diào)度。
Vulkan 的圖形支持特性與 Metal 基本一致。
*詳細(xì)內(nèi)容可參考,小游戲 Metal 支持上線,提供接近原生圖形 API 的特性與功能篇
快速上手
將 WebGL 小游戲切換至 Vulkan 對(duì)開發(fā)者來(lái)說(shuō)幾乎是無(wú)感的,僅僅修改一個(gè)選項(xiàng)即可。
在Project Settings->Player中,選擇MiniGame平臺(tái)頁(yè)簽。在Graphics APIs列表中添加Vulkan并移除其他 API,即可啟用 Vulkan 渲染。
![]()
平臺(tái)支持
Unity Connect
宿主 SDK
cn.tuanjie.minihost版本(≥1.0.15)Unity Connect 安卓版本(≥2.6.8)
*當(dāng)前 Vulkan API 支持平臺(tái)較少,后續(xù)會(huì)逐漸增加。
??注意事項(xiàng)
目前暫不支持 Vulkan 與 WebGL 同包,如果需要 WebGL 版本則需單獨(dú)打包;
如使用了 AssetBundle ,則啟用 Vulkan 后需重新構(gòu)建 AssetBundle ,以確保資源格式正確;
Vulkan 暫不支持 Async Compute 和 Autoconnect FrameDebugger 功能;
啟用 Vulkan 渲染后,打包小游戲時(shí)會(huì)強(qiáng)制開啟多線程模式,該模式可以顯著減少幀耗時(shí),但也會(huì)帶來(lái)少許內(nèi)存增長(zhǎng)。
未來(lái)展望
當(dāng)前, 小游戲平臺(tái) Vulkan 圖形 API 仍處于實(shí)驗(yàn)階段,歡迎開發(fā)者參與體驗(yàn);未來(lái),團(tuán)結(jié)引擎小游戲平臺(tái)的圖形 API 支持(包括 Metal、Vulkan)將會(huì)不斷強(qiáng)化,為開發(fā)者帶來(lái)更高性能與更高能效的小游戲開發(fā)體驗(yàn)。
Unity 官方微信
第一時(shí)間了解Unity引擎動(dòng)向,學(xué)習(xí)進(jìn)階開發(fā)技能
每一個(gè)“點(diǎn)贊”、“在看”,都是我們前進(jìn)的動(dòng)力


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