團結 1.7.3 版本中,虛擬幾何體(Virtual Geometry, VG)功能正式支持 URP 渲染管線,以及包括 Android、iOS 在內的移動端設備。將上億面片量級的影視級實時渲染能力從 PC 端帶入到了移動端,旨在為移動端的次世代畫質飛躍奠定堅實的技術基礎。
以下場景為虛擬幾何體示例場景,四個視角分別代表了渲染結果、ClusterID、TriangleID、InstanceID。這個場景的三角形面數(shù)規(guī)模在10 億左右,可以從 TriangleID 的視圖下看到,場景中三角面十分密集。在經典的渲染管線中,實時渲染如此龐大數(shù)量的三角面幾乎是不可能完成的事情。然而在虛擬幾何體技術的加持下,在移動設備渲染如此精細的場景也成為了可能。
下面兩圖展示了此場景運行在 iphone13 (蘋果A15芯片)上的狀態(tài),其中第二張圖為場景中三角面的示意圖。在此視角下有一個 12×13 的雕像陣列,其中每個雕像都是有 400 萬面的掃描資產。那么在這個視角下,總計同屏實時渲染了超過 6 億個三角面
[注1]。而在這樣的中端機型上,可以以 30 幀的幀率穩(wěn)定渲染這個畫面。
![]()
![]()
值得一提的是,這個示例場景中不僅只包含超高面數(shù)的模型。場景中包含了超過10000 個物體,超過100 個的不同材質,其中包括了 alpha clip 材質。場景中添加了數(shù)十個點光源,并且使用了光照探針、光照貼圖等全局光照方案。并且也添加了粒子特效、后處理等渲染效果。這并非僅僅只是一個只用于展示多面數(shù)渲染的場景,而是一個包含了眾多應用場景的真實用例。
移動端虛擬幾何體性能分析
幀率對比
由于在較重的場景中無法運行經典的渲染管線,所以我們使用了如下所示的簡單退化場景來對開啟/關閉虛擬幾何體的幀率進行對比。場景中依舊是掃描資產的雕像,每個雕像有 400 萬面,共有 13 個雕像。視頻上/下部分分別代表開啟/關閉虛擬幾何體的情況。在 iphone13 上開啟虛擬幾何體來渲染這些高模時,可以穩(wěn)定在60 幀進行渲染。然而關閉虛擬幾何體,只使用普通的延遲渲染管線進行渲染時,幀率大約只有10 幀左右。通過這個簡單的場景,我們可以直觀感受到虛擬幾何體技術給移動設備上渲染高面數(shù)模型的能力帶來的巨大提升。
Draw Call 數(shù)目與顯存占用對比
使用虛擬幾何體技術可以大幅度降低在復雜場景下所需要的 Draw Call 數(shù)量以及顯存占用。對于開始的示例場景,當關閉VG時,場景總共需要5.5k 個 Draw Call才能完成繪制,這里 Draw Call 數(shù)量較多是因為場景中有大量物體以及大量材質。場景總體需要大約6GB的顯存占用,這里主要是因為場景中高面數(shù)模型數(shù)據(jù)占據(jù)顯存
[注2]
![]()
關閉 VG 時,渲染參數(shù)
而當開啟 VG 時,普通 Draw Call 只需要625 個
[注3],VG 相關的 Draw Call 僅需472 個,整體 Draw Call 數(shù)量降低約80%。虛擬幾何體管線區(qū)別于經典的延遲渲染管線,GBuffer 的渲染從逐物體進行變?yōu)橹鸩馁|進行。幾何信息只需極少量 Draw Call 即可完成 Visibility Buffer 的繪制(在此場景下,僅需 6 次 Draw Call),而后逐材質進行 GBuffer 的繪制,Draw Call 數(shù)量與場景中材質數(shù)量正相關(此場景下需 466 次 Draw Call),但總體會遠小于經典渲染管線逐物體繪制的 Draw Call 數(shù)目。同時,場景總體占用的顯存為1.15 GB,也降低約80%。這是由于虛擬幾何體采用流式傳輸?shù)姆绞竭M行數(shù)據(jù)傳輸,真正被需要的幾何數(shù)據(jù)才會被讀取并傳輸?shù)斤@存之中,這能保證穩(wěn)定且不會超越設定上限的顯存占用大小。
![]()
開啟 VG 時,渲染參數(shù)
除了整體的 Draw Call 數(shù)目,對于一些部分的 Draw Call 也有特殊的優(yōu)化。比如在陰影的繪制部分:使用包含 4 個 Cascade 的 CSM 陰影。當關閉 VG,使用 SRP Batcher 的陰影繪制時,需要16 個SRPBatch,大約包含共4800 次 Draw Call才能完成陰影的繪制。
![]()
關閉 VG 時,陰影渲染 Draw Call
而當開啟 VG 時,僅需要6 次 Draw Call就能完成全部陰影的繪制,這無疑是一個巨大的提升。
![]()
開啟 VG 時,陰影渲染 Draw Call
功耗情況
依舊是在最初的示例場景中,在 iphone 13 上進行持續(xù) 1 小時的功耗測試。最終功耗大約穩(wěn)定在 3W 左右,設備溫度穩(wěn)定在 41℃ 左右。在一小時的持續(xù)時間內,幀率基本保持完全穩(wěn)定。
![]()
在 Android 上,整體表現(xiàn)與在 iOS 上類似。在搭載了天璣 9300 芯片的 Android 設備上進行功耗測試。最終功耗大約穩(wěn)定在 2W 左右,設備溫度穩(wěn)定在 36℃ 左右。在持續(xù)時間內,有一小段時間的低幀率。在大多時間幀率都保持穩(wěn)定。
![]()
移動端虛擬幾何體優(yōu)化
為了適配移動端虛擬幾何體,基于移動端硬件的特性,我們使用了多個優(yōu)化方案:
1.基于移動端硬件的特性,虛擬幾何體推出了模型數(shù)據(jù)固定壓縮比例的編碼方案。相較于原有的可變壓縮比例編碼方案降低約45%的 ALU 開銷。使得在 GPU 上實現(xiàn)更高效的解碼計算,顯著降低移動端 GPU 運算壓力。
2.可變壓縮比例方案在一定情況下可能增加包體大小。為了優(yōu)化數(shù)據(jù)大小,我們推出了針對模型數(shù)據(jù)的層級剔除。用戶可手動調整模型留存的層級比例,平衡數(shù)據(jù)大小與模型精度。對于高精度模型,可以優(yōu)化超過90%的數(shù)據(jù)占用大小。
![]()
最大程度留存以及低程度留存層級比例時,渲染表現(xiàn)對比以及數(shù)據(jù)大小對比
3.為了平衡畫面表現(xiàn)與性能,我們推出了 Rendering Detail Bias 的選項。用戶可手動調節(jié)此值,使畫面傾向于選擇更加精細或粗糙的渲染層級。調節(jié)此值最多可使場景降低約75%的渲染面數(shù),進一步提高渲染效率。
![]()
Rendering Detail Bias = 0
![]()
Rendering Detail Bias = 3
4.針對移動端的虛擬幾何體,重新定制了陰影貼圖、GPU 驅動的反射探針等實現(xiàn),進一步提高性能。
快速上手
使用移動端的虛擬幾何體非常簡單,只需要簡單幾步即可完成。
1.創(chuàng)建 URP 工程,在 Edit -> Project Settings -> Graphics 中開啟虛擬幾何體總開關;
![]()
2.導入模型資產,在 Model Importer 中開啟模型的 VG 開關;
![]()
3.入開啟了 VG 的模型到 Scene 中,并編輯一個您理想中的場景;
4.像普通工程一樣進行出包,即可在移動設備上使用虛擬幾何體了。
在實踐中,為了獲得更好的性能,我們還需要針對虛擬幾何體進行一些特殊的設置,包括前文提到的固定壓縮比例設置、模型層級剔除設置、渲染細節(jié)偏移設置等。
詳情可見官方文檔中對設置的詳細說明。
https://docs.unity.cn/cn/tuanjiemanual/Manual/VirtualGeometry-UseOnMobile.html
??注意事項
1.虛擬幾何體移動端當前僅支持 iPhone 8(A11芯片)及之后推出的 A 系列芯片和 M 系列芯片的蘋果移動設備、裝配天璣 9200 及之后推出的 9000 系天璣芯片和驍龍 8 Gen2 及之后推出的8系驍龍芯片的安卓移動設備;
2.對于更早期的芯片,大多對 SSBO cache 以及 Compute Shader 的支持不完善,會導致帶寬瓶頸或計算效率低下。故而暫時不建議使用虛擬幾何體。所以對于低端機型,推薦回退使用 LOD Group;
3.移動端上 Budget Memory 在根據(jù) Quality 的設置申請后,不會擴充大小,如果出現(xiàn)部分物體無法繪制情況,可嘗試增加 Budget Memory 中 Persistent Buffer 大小。
未來展望
未來,團結引擎的 VG Mobile 功能將持續(xù)強化,致力于為開發(fā)者提供更好、更全面的服務,包括但不限于:
支持更多芯片,更多移動端機型。
對開源鴻蒙系統(tǒng)的支持。
持續(xù)的性能優(yōu)化。
優(yōu)化工作流。
[注]
1.同屏渲染 6 億面指當前畫面中,所有模型共有 6 億數(shù)量級的三角面。在經過虛擬幾何體的減面后,實際繪制的三角面會小于此值。
2.由于關閉 VG 后,示例場景過重導致無法正常在移動設備上運行。這里展示的數(shù)據(jù)是在 PC 上的數(shù)據(jù)。對于 Draw Call 數(shù)目和顯存占用而言,PC 上與在移動端上結果相近。
3.場景中還存在非 VG 的 Draw Call 是因為場景中存在少量不支持 VG 的材質。
Unity 官方微信
第一時間了解Unity引擎動向,學習進階開發(fā)技能
每一個“點贊”、“在看”,都是我們前進的動力

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