張澍 張歆
摘要:為解決BIM大規(guī)模三維場景給WebGL管線帶來的渲染壓力,結(jié)合水電站地下洞室群的結(jié)構(gòu)、分布特點對數(shù)據(jù)動態(tài)調(diào)度策略進行了調(diào)整和優(yōu)化。通過對比分析BIM和GIS中的LOD處理方式,設(shè)計了兼顧模型詳細(xì)程度和發(fā)展程度的雙重LOD處理機制;通過研究傳統(tǒng)金字塔型索引的結(jié)構(gòu)特點和空間劃分方式,設(shè)計了綜合多種樹結(jié)構(gòu)的能夠自動調(diào)整邊界的空間索引結(jié)構(gòu)。在此基礎(chǔ)上設(shè)計了基于漸近加載的動態(tài)調(diào)度算法,測試表明該方法提高了大規(guī)模BIM模型在WebGL上的渲染效率和穩(wěn)定性。
關(guān)鍵詞:地下洞室群; 模型加載; 模型渲染; BIM; LOD; WebGL; Cesium
中圖法分類號: TV738
文獻標(biāo)志碼: A
DOI:10.16232/j.cnki.1001-4179.2024.04.023
0引 言
BIM技術(shù)貫穿了工程的設(shè)計、施工、運維等各個階段,為實現(xiàn)水利水電工程的智慧化管理提供了堅實助力[1-4]。隨著計算機行業(yè)的發(fā)展,借助互聯(lián)網(wǎng)WebGL技術(shù),將大規(guī)模地下洞室群的BIM模型通過Web瀏覽器進行展示,成為地下工程BIM技術(shù)發(fā)展的趨勢。通過BIM與WebGL技術(shù)結(jié)合,構(gòu)建WebBIM工程可視化云平臺,可以幫助用戶脫離專業(yè)軟件平臺和客戶端的限制,降低BIM技術(shù)應(yīng)用的門檻,借助互聯(lián)網(wǎng)實現(xiàn)數(shù)據(jù)的跨平臺實時共享[5-7]。盡管BIM模型有以上優(yōu)點,但在網(wǎng)絡(luò)端的傳輸、渲染效率方面的問題也亟待解決。
BIM模型的輕量化方面已經(jīng)比較成熟,常用做法是將模型轉(zhuǎn)換為3d Tiles并通過Cesium的接口加載,以解決BIM模型在網(wǎng)絡(luò)端的傳輸問題[8-10]。但以目前的網(wǎng)絡(luò)寬帶和客戶端設(shè)備性能而言,一次性加載和渲染大量的模型數(shù)據(jù),常常造成GPU負(fù)載過重頁面卡頓甚至畫面撕裂,因此提高渲染效率和穩(wěn)定性非常重要。
集成BIM與WebGL技術(shù)開發(fā)的三維可視化平臺已有不少成功的案例,但大多數(shù)應(yīng)用于民用建筑領(lǐng)域,而針對地下洞室群這種大規(guī)模、多跨度、結(jié)構(gòu)復(fù)雜的三維場景,加載策略需要進一步研究。很多學(xué)者都在其平臺構(gòu)建過程中通過加入LOD處理、空間索引結(jié)構(gòu)等策略,提高模型的渲染效率。但其實驗對象多為城市建筑模型[11-12],而地下洞室群在建筑結(jié)構(gòu)、空間分布上都有其自身的特點,直接套用這些策略可能無法滿足工程可視化的需求。
為了減少大規(guī)模三維場景給WebGL管線的渲染壓力,本文面向Web瀏覽器,把LOD處理、空間索引結(jié)構(gòu)與三維場景數(shù)據(jù)動態(tài)調(diào)度算法相結(jié)合,對模型的加載和渲染過程進行優(yōu)化設(shè)計。
1地下洞室群模型LOD處理
對于地下洞室群模型這類大規(guī)模的三維場景來說,用戶往往會更加關(guān)注某一區(qū)域的建筑結(jié)構(gòu)或者設(shè)備情況,因此可以對整體模型數(shù)據(jù)采取分塊組織的形式。而針對不同區(qū)域模型存在的重要度差異問題,LOD技術(shù)會根據(jù)人體視覺獲取物體特征的特點,對距離場景相機視點較遠的區(qū)域模型進行模糊化處理,采用細(xì)節(jié)少的低精度瓦片進行渲染;而對于距離相機視點近、需要重點觀察的區(qū)域模型則采用細(xì)節(jié)豐富的高精度瓦片進行渲染,從而加快場景的渲染效率,實現(xiàn)模型的平滑過渡。本文對BIM和GIS領(lǐng)域中LOD劃分的特點和差異進行對比和分析,并結(jié)合地下洞室群模型的結(jié)構(gòu)特點,提出符合實際工程需求的LOD處理機制。
1.1建筑信息模型LOD
在BIM領(lǐng)域中,LOD定義為模型的發(fā)展程度,即Level of Development。BIM Forum編制了專門的建筑信息模型LOD規(guī)范,對于各級LOD的定義見表1。
1.2地理信息模型LOD與BIM領(lǐng)域不同,GIS領(lǐng)域?qū)OD的定義為模型的詳細(xì)程度,即Level of Details。GIS行業(yè)的通用數(shù)據(jù)標(biāo)準(zhǔn)CityGML(City Geometry Mark Language)將建筑模型的LOD分為LOD0~LOD4,共5種不同細(xì)節(jié)層次的表達方式[13],具體定義見表2。
1.3兩種LOD對比
(1) BIM對模型LOD的劃分側(cè)重于對模型發(fā)展階段的表示,但對于可視化而言,這種精細(xì)度很高的模型在渲染過程中會給系統(tǒng)或瀏覽器帶來沉重的負(fù)擔(dān);而GIS對模型LOD的劃分則更側(cè)重于可視化展示,主要關(guān)注模型結(jié)構(gòu)間的聯(lián)系而忽略了屬性信息的差異。因此將GIS中LOD的概念引入,結(jié)合兩者的優(yōu)勢會更有效地提高三維空間數(shù)據(jù)的可視化效率和質(zhì)量。
(2) 與應(yīng)用于BIM和GIS領(lǐng)域的工民建類建筑模型相比,水電站的地下洞室群在空間地理分布以及建筑結(jié)構(gòu)特征上都存在著很大的差異。首先,在地理分布方面,工民建領(lǐng)域主要以城市建筑或住宅模型為主,這些模型往往位于平原等視野開闊的地區(qū),有地圖影像作為形狀及位置的依據(jù),各建筑物之間獨立存在,方便構(gòu)建矢量模型;而水電站的地下洞室群一般位于山體之中,并以洞室群的形式呈現(xiàn),建筑物之間的聯(lián)系較為緊密,不宜構(gòu)建矢量模型。
(3) 在建筑結(jié)構(gòu)方面,工民建領(lǐng)域中無論是商業(yè)建筑還是居民住宅,受到環(huán)境影響較小,在結(jié)構(gòu)安全的基礎(chǔ)上,更加重視建筑的美觀性,在建筑物外部存在很多的門、窗、幕墻、天窗等結(jié)構(gòu),因此在LOD的劃分中需要分為粗糙輪廓模型和精細(xì)輪廓模型;而地下洞室群由于處于山腹之中,需要考慮地應(yīng)力以及滲流水壓力的影響,因此更加重視結(jié)構(gòu)的安全性,建筑物外部也以“密封”形式為主,因此無需進行外部輪廓精細(xì)度的區(qū)分。
1.4雙重LOD處理機制設(shè)計
在對地下洞室群特點進行充分剖析的基礎(chǔ)上,結(jié)合地質(zhì)模型將整個地下洞室群建筑信息模型劃分為5個LOD等級,分別用于關(guān)注模型中的不同組成部分,如圖1所示,各級LOD定義和用途見表3。
2地下洞室群空間索引結(jié)構(gòu)設(shè)計
雙重LOD處理機制將整個地下洞室群模型劃分為5個不同層級的模型瓦片,但是不同層級的瓦片間沒有明確的關(guān)聯(lián)關(guān)系,同一層級瓦片內(nèi)部的模型分布又處于散亂的狀態(tài)。若使用這樣無序組織的數(shù)據(jù)進行場景繪制,在場景發(fā)生變換時需要耗費大量的空間運算才能確定當(dāng)前視域內(nèi)的數(shù)據(jù)集合,難以達到快速、穩(wěn)定的展示效果,影響用戶的可視化體驗。因此,針對地下洞室群工程這樣的大規(guī)模、復(fù)雜三維場景,需要建立高效的空間索引為數(shù)據(jù)調(diào)度提供支持,以提高數(shù)據(jù)的查詢和可視化效率。
2.1傳統(tǒng)空間索引結(jié)構(gòu)
目前,較為常用的空間索引為金字塔型結(jié)構(gòu)[14],這種索引結(jié)構(gòu)可以在實現(xiàn)數(shù)據(jù)快速調(diào)度的同時,準(zhǔn)確表達數(shù)據(jù)間的關(guān)聯(lián)關(guān)系。金字塔型索引結(jié)構(gòu)按照空間劃分方式可以細(xì)分為四叉樹、K-d樹和八叉樹等主要結(jié)構(gòu)。Cesium采用的3dTiles一般采用八叉樹或四叉樹結(jié)構(gòu)[15-17]。
2.2多元自適應(yīng)型空間索引結(jié)構(gòu)設(shè)計
地下洞室群受到地質(zhì)賦存環(huán)境的影響,主要洞室(如廠房洞、主變洞)的位置會特意避開斷層和裂隙作用帶,同時為了滿足發(fā)電需求,要求進水口和機組之間擁有一定的高程差和較長的壓力管道,因此整個模型在空間上并不是均勻分布。另外,地下洞室群建筑物內(nèi)的模型聯(lián)系十分緊密,而傳統(tǒng)樹結(jié)構(gòu)嚴(yán)格的子空間劃分方式導(dǎo)致模型被多個子空間割裂,在多個子空間瓦片內(nèi)部重復(fù)存儲。
在考慮地下洞室群空間分布特點的情況下,設(shè)計出具有自適應(yīng)性的空間索引結(jié)構(gòu)。這種新型結(jié)構(gòu)在多種樹結(jié)構(gòu)靈活組合的基礎(chǔ)上,對其空間劃分方式進行修改,使其能夠靈活地改變空間邊界,避免模型割裂現(xiàn)象的產(chǎn)生,提高存儲空間的利用效率。其設(shè)計原理如圖2所示。主要步驟如下:
(1) 初始化根節(jié)點。獲取場景中包含所有地下洞室群建筑模型的最小包圍體,即包含LOD0~LOD4級模型在內(nèi)的六面體包圍盒,其邊界與Revit坐標(biāo)軸平行,記錄該包圍盒的信息并與LOD0級模型瓦片一起組成根部節(jié)點。
(2) 快速定位主要功能建筑。采用八叉樹結(jié)構(gòu)對根節(jié)點的包圍盒進行空間劃分,定位主要建筑物(如:主廠房、副廠房、主變室、調(diào)壓室、壓力管道、交通井等)的位置,記錄劃分后的子空間包圍盒并與其中的LOD1級模型瓦片組成一級子節(jié)點。
(3) 快速定位建筑層級結(jié)構(gòu)??紤]到地下洞室群中主要建筑(如主廠房、副廠房及主變室)都為多樓層結(jié)構(gòu),因此采用二叉樹結(jié)構(gòu)在高程方向?qū)σ患壸庸?jié)點的包圍盒進行空間劃分,定位不同樓層結(jié)構(gòu)的高程位置,記錄劃分后的子空間包圍盒并與其中的LOD2級模型瓦片組成二級子節(jié)點。
(4) 劃分層間模型區(qū)域。由于樓層中模型的高程分布相對統(tǒng)一,因此采用四叉樹結(jié)構(gòu)在樓層所在的高程平面上對二級子節(jié)點的包圍盒進行空間劃分,對層間的機電設(shè)備模型進行區(qū)域劃分,記錄劃分后的子空間包圍盒并與其中的LOD3級機電模型瓦片組成三級子節(jié)點。
(5) 快速定位單體模型位置。在三級節(jié)點的包圍盒中仍存在多種類型的模型構(gòu)件,由于他們都在一個樓層平面上,因此繼續(xù)采用四叉樹結(jié)構(gòu)對該包圍盒進行劃分,直至包圍盒的大小達到閾值或包圍盒內(nèi)的模型不可再分。記錄此時的子包圍盒并與LOD4級的高精度單體模型瓦片組成葉子節(jié)點,完成整個空間索引樹結(jié)構(gòu)的構(gòu)建。
2.3包圍盒邊界自適應(yīng)調(diào)整算法
在空間劃分過程中,針對模型割裂的現(xiàn)象,設(shè)計自適應(yīng)算法對包圍盒的邊界進行調(diào)整。算法設(shè)計原理如圖3所示。主要步驟如下:
(1) 將父包圍盒等分為若干個體積相同的子包圍盒,用每個子包圍盒去獲取所有形心在其內(nèi)部的模型集合。
(2) 對于子包圍盒內(nèi)的模型幾何進行遍歷,獲取每個模型的包圍盒信息,組成一個包含所有模型在內(nèi)的最小包圍盒。
(3) 根據(jù)得到的最小包圍盒對子包圍盒進行邊界調(diào)整。調(diào)整后的包圍盒邊界更適合地下洞室群中建筑物非均勻分布的實際情況,并且允許子包圍盒的部分空間重合。此外,調(diào)整后的包圍盒邊界避免了對模型的割裂,也減少了樹結(jié)構(gòu)中的空白區(qū)域,提高了數(shù)據(jù)存儲的效率。
3漸進加載設(shè)計
在完成模型雙重LOD處理的基礎(chǔ)上,采用漸進加載的方法可以幫助GPU動態(tài)選擇合適可視化層級的瓦片進行繪制,進一步減輕渲染的負(fù)擔(dān)[18-19]。
漸進加載本質(zhì)上是一種基于視錐體的渲染優(yōu)化策略,它會根據(jù)視錐體內(nèi)部三維瓦片與相機視點的距離決定其加載的分辨率級別。相機視點拉近,屏幕中的模型數(shù)量變少,精度提高,需要更高LOD等級的三維瓦片;相機視點拉遠,屏幕中模型數(shù)量變多,精度下降,可以使用較低LOD等級的瓦片來減輕渲染壓力。在系統(tǒng)運行時,采用屏幕空間誤差作為瓦片更換的判斷依據(jù)[20],其計算原理如圖5所示。
在相機視點變化的過程中,計算機會不斷計算瓦片的屏幕空間誤差e,并與設(shè)定閾值ε(本文設(shè)定為2個像素)相比,當(dāng)e>ε時,則加載下一LOD等級的瓦片來替換當(dāng)前瓦片;當(dāng)e<ε時,則保留當(dāng)前瓦片進行渲染。
在漸進加載的基礎(chǔ)上,采用以增加為主、替換為輔的方式來進行過渡。在地下洞室群模型加載的過程中,首先只加載LOD0的地質(zhì)模型,隨著視點的逐漸拉近,會在地質(zhì)模型的基礎(chǔ)上再逐步增加地下洞室群的外部結(jié)構(gòu)模型(LOD1)、內(nèi)部結(jié)構(gòu)模型(LOD2)以及機電設(shè)備模型(LOD3);當(dāng)視角完全集中在某個模型構(gòu)件時,會用更高精度的單體模型來替換當(dāng)前模型,并且會將模型的語義信息綁定在高精度模型上,從而實現(xiàn)模型信息的全方位感知,如圖6所示。這種將增加與替換結(jié)合的LOD策略,不僅能夠減少場景加載過程中三角面片的繪制數(shù)量,而且能更好地實現(xiàn)模型的平滑過渡,給人以更好的可視化體驗。但是由于視角內(nèi)能夠觀察到的模型有限,因此還需要對每個LOD層級的模型(LOD1~LOD4)進行分塊處理,來實現(xiàn)模型的分區(qū)展示。
4實例驗證
采用Cesium,選取精細(xì)度中等的glTF模型切片制作的地下洞室群三維瓦片,對本文提出的模型加載與渲染優(yōu)化設(shè)計進行驗證。模型如圖7所示。
首先對模型分別進行LOD處理和劃分空間索引結(jié)構(gòu),將得到的模型在瀏覽器客戶端中加載,觀察其加載過程中的幀率變化,如圖8所示。其中系列1為模型直接加載,系列2為模型劃分空間結(jié)構(gòu)后加載,系列3為模型LOD處理后加載,系列4為模型LOD處理和劃分空間結(jié)構(gòu)后加載。
從圖8可以看出:LOD處理后的模型在場景繪制過程中很快(2 s內(nèi))就達到了幀率峰值60FPS附近,并一直保持在穩(wěn)定的峰值水平;而未經(jīng)LOD處理的模型在場景繪制過程中幀率緩慢上升,直到10 s時才接近幀率峰值,并且還會出現(xiàn)掉幀的現(xiàn)象,由此可以證明LOD處理在加快模型渲染效率、提高可視化水平方面起到了重要的作用。
然后在場景幀率穩(wěn)定之后,對不同處理方式得到的模型分別進行縮放、漫游等操作,按照外部山體-山體內(nèi)部建筑-廠房內(nèi)部-機電設(shè)備的漫游路線,觀察場景切換過程中的幀率變化情況,如圖9所示。
從圖9可以看出:劃分空間索引結(jié)構(gòu)和采用漸進加載后的模型在場景變換時幀率的變化波動更小,并且?guī)史逯档姆€(wěn)定方面也表現(xiàn)得更好,由此可以證明合理的空間結(jié)構(gòu)劃分對于保持場景的渲染水平、提高可視化水平具有重要的作用。
5結(jié) 論
(1) 本文分析了BIM和GIS中的LOD處理方式,結(jié)合地下洞室群空間分布不均勻和內(nèi)部聯(lián)系緊密的特點,提出兼顧模型詳細(xì)程度和發(fā)展程度的雙重LOD處理機制,實現(xiàn)了不同層級重點關(guān)注不同的模型。
(2) 通過研究傳統(tǒng)金字塔型索引的結(jié)構(gòu)特點和空間劃分方式,在綜合多種樹結(jié)構(gòu)的基礎(chǔ)上,本文設(shè)計了能夠自動調(diào)整邊界的空間索引結(jié)構(gòu),能夠靈活地改變空間邊界,避免模型割裂現(xiàn)象的產(chǎn)生,提高存儲空間的利用效率和渲染效果。
(3) 采用漸進加載等數(shù)據(jù)動態(tài)調(diào)度方法,可對模型渲染過程進一步優(yōu)化,進一步提高了渲染的效率和穩(wěn)定性,有助于減輕瀏覽器負(fù)擔(dān),提升可視化效果。
參考文獻:
[1]補舒棋,毛擁政,鄭湘文,等.BIM協(xié)同設(shè)計在三河口電站供水發(fā)廠房系統(tǒng)中的應(yīng)用[J].水利水電快報,2020,41(10):30-35.
[2]張鵬利,崔超,賈寧霄.BIM在黃金峽水利樞紐工程設(shè)計中的應(yīng)用研究[J].人民長江,2022,53(5):149-155.
[3]鄢江平,翟海峰.楊房溝水電站建設(shè)質(zhì)量智慧管理系統(tǒng)的研發(fā)及應(yīng)用[J].長江科學(xué)院院報,2020,37(12):169-175,182.
[4]周相,段斌,靳玉鵬,等.基于BIM的地下洞室三維可視化地質(zhì)預(yù)報方法研究[J].人民長江,2022,53(增2):64-66,79.
[5]傅蜀燕,趙志勇,楊碩文,等.基于三維BIM+WebGIS技術(shù)的區(qū)域數(shù)字水庫構(gòu)建[J].長江科學(xué)院院報,2018,35(4):134-136,142.
[6]胡夏愷,陳俊濤,楊聃,等.基于Revit二次開發(fā)的BIM+WebGIS融合應(yīng)用研究[J].中南大學(xué)學(xué)報(自然科學(xué)版),2021,52(11):3930-3942.
[7]潘飛,張社榮.基于3D WebGIS的土木水利工程BIM集成和管理研究[J].計算機應(yīng)用與軟件,2018,35(4):69-74,136.
[8]安指揚.建筑信息模型的輕量化研究與應(yīng)用[D].邯鄲:河北工程大學(xué),2021.
[9]孫源,王國光,趙杏英,等.BIM模型輕量化技術(shù)研究與實現(xiàn)[J].人民長江,2021,52(12):229-235.
[10]紀(jì)傳波,周建中,馮快樂,等.基于輕量級WebGIS的流域仿真平臺設(shè)計與實現(xiàn)[J].人民長江,2022,53(6):228-234.
[11]程慧.基于Cesium的城市三維模型非仿真動態(tài)可視化研究[D].南京:南京財經(jīng)大學(xué),2020.
[12]周楊,胡校飛,靳彩嬌,等.圖形圖像融合的海量建筑繪制[J].中國圖象圖形學(xué)報,2018,23(7):1072-1080.
[13]GRGER G,KOLBE T H,NAGEL C,et al.OGC city geography markup language (CityGML) encoding standard,version 2.0.0[R].[S.l.]:Open Geospatial Consortium,2012.
[14]曾祥釗,李傳榮,張正,等.面向海量點云快速顯示的疊加型金字塔索引結(jié)構(gòu)研究[J].遙感技術(shù)與應(yīng)用,2015,30(3):534-539.
[15]曹浩澤.3D Tiles定義解析與生產(chǎn)規(guī)范設(shè)計[D].武漢:武漢大學(xué),2018.
[16]孟天杭.基于Cesium的大規(guī)模三維場景瓦片構(gòu)建與可視化[D].北京:北京建筑大學(xué),2021.
[17]劉振宇.GIS結(jié)合BIM下的異構(gòu)建模融合方法研究[D].西安:西安電子科技大學(xué),2022.
[18]袁思林.面向Web端的建筑信息模型輕量化展示研究[D].西安:西安電子科技大學(xué),2022.
[19]尹培培,陳慶,陳小佩,等.基于漸進式傳輸與增量繪制的地理大數(shù)據(jù)可視化方法[J].地理空間信息,2020,18(12):70-74,7.
[20]黃欣然,江文萍,劉一飛,等.Cesium環(huán)境中三維場景數(shù)據(jù)的加載優(yōu)化策略[J].測繪地理信息,2022,47(增1):94-98.
(編輯:鄭 毅)