如何優(yōu)化大場(chǎng)景實(shí)時(shí)渲染?HMS Core 3D Engine這么做

在先前舉辦的華為開發(fā)者大會(huì)2022(HDC)上,華為通過3D數(shù)字溪村展示了自有3D引擎“HMS Core 3D Engine”(以下簡(jiǎn)稱3D Engine)的強(qiáng)大能力。作為一款高性能、高畫質(zhì)、高擴(kuò)展性的3D引擎,3D Engine不僅能通過實(shí)時(shí)光

在先前舉辦的華為開發(fā)者大會(huì)2022(HDC)上,華為通過3D數(shù)字溪村展示了自有3D引擎“HMS Core 3D Engine”(以下簡(jiǎn)稱3D Engine)的強(qiáng)大能力。作為一款高性能、高畫質(zhì)、高擴(kuò)展性的3D引擎,3D Engine不僅能通過實(shí)時(shí)光追、水體渲染、體積云霧、多維GPU粒子系統(tǒng)等技術(shù)還原真實(shí)世界的物理表現(xiàn),對(duì)于大規(guī)模數(shù)字世界的實(shí)時(shí)渲染,3D Engine同樣也能為開發(fā)者提供有力的技術(shù)支持。

大規(guī)模數(shù)字世界的需求與挑戰(zhàn)

今天,如何更好地實(shí)現(xiàn)大場(chǎng)景下的實(shí)時(shí)渲染,已經(jīng)成為行業(yè)的熱門話題,相關(guān)技術(shù)在眾多領(lǐng)域都有著廣闊的應(yīng)用前景。我們可以明顯感受到,從3D游戲到虛擬現(xiàn)實(shí),從三維GIS到數(shù)字城市,涉及場(chǎng)景的規(guī)模都在呈指數(shù)級(jí)增長(zhǎng),部分游戲中的世界地圖甚至沒有邊界。可以說,大規(guī)模場(chǎng)景的實(shí)時(shí)交互渲染能力正在成為構(gòu)筑數(shù)字世界的基礎(chǔ)設(shè)施。

然而,這并非易事。

場(chǎng)景規(guī)模的擴(kuò)大帶來的結(jié)果就是海量的內(nèi)容和數(shù)據(jù)。一個(gè)城市涉及的物件數(shù)差不多是百萬級(jí),面片數(shù)更是可能達(dá)到億級(jí),而硬件配置卻始終是相對(duì)有限的,即使再高級(jí)的硬件配置也有力不從心的時(shí)候。

數(shù)據(jù)和硬件之間的矛盾,對(duì)3D引擎的大場(chǎng)景實(shí)時(shí)渲染能力提出了挑戰(zhàn):

1、由于物件、網(wǎng)格、材質(zhì)等內(nèi)容數(shù)量太多,受限于顯存容量,傳統(tǒng)的全場(chǎng)景預(yù)先加載方式無法實(shí)現(xiàn);

2、在傳統(tǒng)3D繪制模式下,GPU的算力不足以支撐萬級(jí)規(guī)模物件數(shù)和億級(jí)規(guī)模面片的實(shí)時(shí)渲染;

3、如果使用流式加載場(chǎng)景的方式,可以實(shí)現(xiàn)一邊渲染一邊加載數(shù)據(jù),但需要預(yù)處理場(chǎng)景數(shù)據(jù),諸如分區(qū)分層、模型合并、材質(zhì)合并、紋理烘焙等預(yù)處理往往極為耗時(shí),幾萬個(gè)物件就需要小時(shí)級(jí)的等待,且僅支持場(chǎng)景中靜止不動(dòng)的物件。

如何優(yōu)化大場(chǎng)景實(shí)時(shí)渲染?HMS Core 3D Engine這么做

譬如上圖這個(gè)服務(wù)器大樓,三角面片數(shù)達(dá)到了千萬級(jí),并且有將近萬件的模型。為了實(shí)現(xiàn)實(shí)時(shí)渲染,通常需要通過HLOD的方式將整個(gè)場(chǎng)景進(jìn)行Spatial-Coherent的層次重組。

如何優(yōu)化大場(chǎng)景實(shí)時(shí)渲染?HMS Core 3D Engine這么做

類似于右圖紅圈所示,以不同半徑為一個(gè)空間節(jié)點(diǎn),將圈圈內(nèi)的模型進(jìn)行合并處理,從而降低場(chǎng)景物件的遍歷數(shù)量,提高繪制性能。而這個(gè)預(yù)處理操作本身就需要耗費(fèi)近一個(gè)小時(shí),大大增加了調(diào)試和開發(fā)成本。

那么,HMS Core 3D Engine將如何應(yīng)對(duì)挑戰(zhàn),構(gòu)建大規(guī)模場(chǎng)景的實(shí)時(shí)渲染能力?

Hi-Mesh層級(jí)網(wǎng)格渲染加速技術(shù)

為了解決這三個(gè)“放不下”、“算不了”、“等不起”的問題,華為2012菲爾茲實(shí)驗(yàn)室基于HMS Core 3D Engine自研了“Hi-Mesh”層級(jí)網(wǎng)格渲染加速技術(shù),針對(duì)場(chǎng)景中的資產(chǎn)進(jìn)行多維度、多層級(jí)的結(jié)構(gòu)優(yōu)化,確保場(chǎng)景結(jié)構(gòu)在生成、遍歷、處理過程中的高效。譬如針對(duì)一個(gè)大規(guī)模場(chǎng)景,可將其數(shù)字內(nèi)容進(jìn)行多維分區(qū):

1.按空間結(jié)構(gòu)分區(qū)

3D場(chǎng)景中利用物件原生隱含的空間屬性,進(jìn)行快速位置編碼和索引,大幅降低傳統(tǒng)樹形結(jié)構(gòu)的線性遍歷耗時(shí);

2.按視角空間分層

利用視角的局限性,對(duì)場(chǎng)景中的物件進(jìn)行不同細(xì)節(jié)層次的區(qū)分或合并處理,從而降低場(chǎng)景的數(shù)據(jù)量;

3.按內(nèi)容特征分組

利用場(chǎng)景物件的特征,如按網(wǎng)格、材質(zhì)的同源性進(jìn)行分組,從而使用特定優(yōu)化的繪制指令來強(qiáng)化它們的繪制效率;

4.按拓?fù)溥B接分片

將模型網(wǎng)格進(jìn)行更精細(xì)粒度的分片,實(shí)現(xiàn)高效率的剔除和遮擋操作,優(yōu)化實(shí)時(shí)渲染的性能。

如何優(yōu)化大場(chǎng)景實(shí)時(shí)渲染?HMS Core 3D Engine這么做

Hi-Mesh架構(gòu)圖

基于將場(chǎng)景化整為散的原則,以高效率的空間/視角結(jié)構(gòu)來實(shí)現(xiàn)多層級(jí)的數(shù)據(jù)優(yōu)化,并以GPU驅(qū)動(dòng)的方式,最終實(shí)現(xiàn)百萬級(jí)物件、億級(jí)片面的數(shù)字世界的實(shí)時(shí)渲染。

如何優(yōu)化大場(chǎng)景實(shí)時(shí)渲染?HMS Core 3D Engine這么做

一千個(gè)物件實(shí)時(shí)動(dòng)態(tài)更新

為了實(shí)現(xiàn)上述的操作,3D Engine使用了一種隱式編碼樹的空間層次結(jié)構(gòu)——“Hi-Mesh Tree”。不同于傳統(tǒng)基于鏈表形式的空間結(jié)點(diǎn)樹的方式,3D Engine通過一種常量級(jí)性能的構(gòu)造和遍歷方法,相較現(xiàn)有的商業(yè)引擎,大規(guī)模場(chǎng)景的實(shí)時(shí)渲染性能可提升15%~120%。此外,還可以大幅提升三維空間場(chǎng)景組織結(jié)構(gòu)的生成效率,甚至達(dá)到毫秒級(jí),大大降低了工作流的時(shí)間成本。

如何優(yōu)化大場(chǎng)景實(shí)時(shí)渲染?HMS Core 3D Engine這么做

數(shù)據(jù)來源: 華為內(nèi)部實(shí)驗(yàn)室測(cè)試結(jié)果

同時(shí),3D Engine還使用了基于GPU驅(qū)動(dòng)的Cluster Rendering (GDCR)繪制技術(shù)。

GPU驅(qū)動(dòng)在業(yè)界已有一些探索和應(yīng)用,其理想目標(biāo)是用一個(gè)Draw Call(DC)來繪制整個(gè)場(chǎng)景,以充分發(fā)揮GPU的并行流水線能力,實(shí)現(xiàn)渲染性能的提高。下圖是Ubisoft 在Siggraph 15上提出的GPU驅(qū)動(dòng)管線的架構(gòu)圖,其核心思想就是將原本基于CPU的可視性檢測(cè)處理遷徙到GPU上,利用GPU的并行和可編程能力,提供高并發(fā)、不同粒度的可視性檢測(cè)能力,從而大幅提高渲染性能。

如何優(yōu)化大場(chǎng)景實(shí)時(shí)渲染?HMS Core 3D Engine這么做

3D Engine為了更充分的實(shí)現(xiàn)GPU驅(qū)動(dòng)的效率,對(duì)GPU驅(qū)動(dòng)的管線節(jié)點(diǎn)、數(shù)據(jù)傳輸、圖形資產(chǎn)進(jìn)行深度優(yōu)化和耦合,將場(chǎng)景下的所有3D物件在GPU上進(jìn)行各個(gè)維度(包圍盒、實(shí)例、片區(qū)、三角面)的可視性剔除,配合多層的重組(材質(zhì)、頂點(diǎn)),從而實(shí)現(xiàn)以最少量的繪制指令來實(shí)現(xiàn)場(chǎng)景的光柵化和著色,同等規(guī)模場(chǎng)景下相比傳統(tǒng)模式的渲染性能實(shí)現(xiàn)了翻倍。

如何優(yōu)化大場(chǎng)景實(shí)時(shí)渲染?HMS Core 3D Engine這么做

同等規(guī)模場(chǎng)景下渲染性能對(duì)比

可以預(yù)見,未來的數(shù)字世界無論是元宇宙、數(shù)字孿生、還是開放大世界,趨于龐大的豐富多彩場(chǎng)景都將會(huì)是不可或缺的組成部分。在Hi-Mesh技術(shù)的加持下,3D Engine得以通過高效的空間層級(jí)結(jié)構(gòu)和GPU友好的繪制管線,大幅提高大規(guī)模數(shù)字場(chǎng)景下的實(shí)時(shí)渲染能力,使場(chǎng)景中的3D內(nèi)容“盡情放”、“更快看”、“少等待”,幫助開發(fā)者大大提升生產(chǎn)力。

關(guān)于HMS Core 3D Engine

3D Engine是HMS Core面向行業(yè)伙伴推出的重要圖形能力,不僅提供高性能、高畫質(zhì)、高擴(kuò)展性的實(shí)時(shí)3D引擎,配合低代碼的可視化開發(fā),能夠幫助開發(fā)者便捷高效地創(chuàng)造出高品質(zhì)的3D內(nèi)容和體驗(yàn)。

(本內(nèi)容屬于網(wǎng)絡(luò)轉(zhuǎn)載,文中涉及圖片等內(nèi)容如有侵權(quán),請(qǐng)聯(lián)系編輯刪除。市場(chǎng)有風(fēng)險(xiǎn),選擇需謹(jǐn)慎!此文僅供參考,不作買賣及投資依據(jù)。)

原創(chuàng)文章,作者:陳晨,如若轉(zhuǎn)載,請(qǐng)注明出處:http://m.2079x.cn/article/566216.html

陳晨陳晨管理團(tuán)隊(duì)

相關(guān)推薦