王占軍 王 鵬 呂 婧 劉 榮
(1、成都金隧自動(dòng)化工程有限責(zé)任公司,四川 成都610031 2、內(nèi)蒙古交通設(shè)計(jì)研究院有限責(zé)任公司,內(nèi)蒙古 呼和浩特010010)
建筑信息模型(Building Information Modeling, BIM)是以計(jì)算機(jī)信息技術(shù)表達(dá)建筑物幾何、材質(zhì)、地理等特性的方式。地理信息系統(tǒng)(Geographic Information System,GIS)是一種具有信息系統(tǒng)空間專業(yè)形式的數(shù)據(jù)管理系統(tǒng),能集中、存儲(chǔ)、操作和顯示地理空間信息。在基礎(chǔ)設(shè)施運(yùn)維管理中,GIS 可用于設(shè)施外部環(huán)境宏觀尺度的管理,BIM 用于設(shè)施內(nèi)部微觀尺度精細(xì)化的管理。建立BIM+3D GIS 信息管理平臺(tái)是土木工程行業(yè)信息化發(fā)展的趨勢。首先,BIM模型的建模軟件用于創(chuàng)建復(fù)雜的3D 場景和模型,根據(jù)創(chuàng)建軟件系列的不同而采用不同的文件格式,這些數(shù)據(jù)格式的解析依賴專業(yè)軟件,很難直接在網(wǎng)絡(luò)中渲染顯示。其次,大多數(shù)BIM應(yīng)用場景都是建筑群或特大高復(fù)雜度模型,模型體量非常大,以城市三維空間數(shù)據(jù)為例,其三維空間數(shù)據(jù)的數(shù)據(jù)量就可高達(dá)幾個(gè)Tb。大體量的BIM數(shù)據(jù)與3D GIS 數(shù)據(jù)在Web 端集成會(huì)受限于網(wǎng)絡(luò)寬帶和服務(wù)器性能,當(dāng)計(jì)算機(jī)處理海量的三維數(shù)據(jù)時(shí)會(huì)出現(xiàn)加載時(shí)間過長、系統(tǒng)崩壞等問題[1]。
本文針對BIM+3D GIS 在網(wǎng)絡(luò)端集成所面臨的技術(shù)問題和海量BIM 數(shù)據(jù)在Web 瀏覽器端的高效加載顯示的技術(shù)要求,提出一種可以直接應(yīng)用于應(yīng)用程序界面,解析時(shí)間短,重量輕,開放性和統(tǒng)一性高的3D 數(shù)據(jù)格式,最終實(shí)現(xiàn)海量BIM模型在web 端快速加載和高效渲染。
1.1 需求定義。本文通過BIM+3D GIS 在Web 端集成顯示作為主要功能性需求,旨在利用WebGL 技術(shù)實(shí)現(xiàn)3D模型在瀏覽器的動(dòng)態(tài)瀏覽和交互。所設(shè)計(jì)的展示平臺(tái)需要具有如下功能:
(1)實(shí)現(xiàn)BIM數(shù)據(jù)和GIS 數(shù)據(jù)在Web 端的渲染和展示。解除BIM模型文件的解析對專業(yè)建模軟件的依賴,可使用電腦、平板、手機(jī)端等通用設(shè)備進(jìn)行模型顯示。
(2)實(shí)現(xiàn)瀏覽器端BIM數(shù)據(jù)和GIS 數(shù)據(jù)兩種不同構(gòu)造的數(shù)據(jù)類型融合。BIM+3D GIS 的融合是一種互補(bǔ)的關(guān)系,對實(shí)現(xiàn)智慧城市建設(shè)發(fā)揮了不可替代的作用。
(3)實(shí)現(xiàn)瀏覽器端海量BIM數(shù)據(jù)的高效傳輸與渲染。BIM三維模型數(shù)據(jù)量大,通常僅一個(gè)室內(nèi)場景的三維模型數(shù)據(jù)量就可達(dá)數(shù)百兆,需要占用大量的寬帶資源進(jìn)行數(shù)據(jù)傳輸與圖形渲染展示。
1.2 實(shí)施流程。綜合上述需求,現(xiàn)階段GIS 數(shù)據(jù)已經(jīng)廣泛地被部署在Web 網(wǎng)絡(luò)端,可在瀏覽器中直接顯示,本文主要考慮含有BIM 模型的GIS 數(shù)據(jù)網(wǎng)絡(luò)端的集成與高速渲染的流程。GIS 和BIM 數(shù)據(jù)可以通過轉(zhuǎn)換或直接整合兩種手段集成,而BIM 與傳統(tǒng)的3D GIS 數(shù)據(jù)格式有很大差別,無法直接與3D GIS 信息進(jìn)行無縫融合,目前可行的方案采是將BIM數(shù)據(jù)格式轉(zhuǎn)換為可解析、易融合的數(shù)據(jù)文件格式。BIM在網(wǎng)絡(luò)端共享流程如圖1 所示。
圖1 BIM 從桌面端到瀏覽器端的共享流程
該流程主要由數(shù)據(jù)轉(zhuǎn)換部分和數(shù)據(jù)傳輸部分組成:數(shù)據(jù)轉(zhuǎn)換部分完成由專業(yè)建模軟件建立的精細(xì)化三維模型數(shù)據(jù)格式轉(zhuǎn)變?yōu)榭晒┚W(wǎng)絡(luò)傳輸和解析的中間數(shù)據(jù)格式;數(shù)據(jù)傳輸部分完成從中間數(shù)據(jù)格式出發(fā),經(jīng)過網(wǎng)絡(luò)傳輸在客戶端進(jìn)行模型加載重構(gòu)與渲染顯示工作。在流程中通過考慮BIM輕量化技術(shù)可以實(shí)現(xiàn)將BIM 模型從桌面端顯示傳輸?shù)綖g覽器端高效顯示的功能。
BIM模型大部分以特有的數(shù)據(jù)格式存儲(chǔ),需要在桌面客戶端以專有的軟件完成模型的渲染顯示,加之三維數(shù)據(jù)格式文件體量大的特點(diǎn),其在網(wǎng)路中傳輸和加載的難度大。要實(shí)現(xiàn)BIM數(shù)據(jù)在網(wǎng)絡(luò)端應(yīng)用需要采用高效輕量可解析的傳輸數(shù)據(jù)格式。JSON(JavaScript Object Notation,JavaScript 對象標(biāo)記語言)是JavaScript 輕量級(jí)的數(shù)據(jù)存儲(chǔ)格式,可以同時(shí)存儲(chǔ)三維模型文件的模型信息和屬性信息,適合做Web 端的數(shù)據(jù)交換(三維建筑模型WebGL 顯示及優(yōu)化)。glTF (GL Transmission Format) 是面向?qū)崟r(shí)渲染應(yīng)用的一種3D 內(nèi)容的格式標(biāo)準(zhǔn),以JSON 文本文件作為整個(gè)數(shù)據(jù)的核心,描述場景結(jié)構(gòu),通過提供一種高效,易擴(kuò)展,可協(xié)作的格式,填補(bǔ)了3D 建模工具和現(xiàn)代GL 應(yīng)用之間的空白,可以被選為中間數(shù)據(jù)格式。
glTF 的核心是一個(gè)JSON 文件,如圖2 所示。該文件描述了3D 場景的全部內(nèi)容。它由場景結(jié)構(gòu)本身的描述組成,由定義場景圖的節(jié)點(diǎn)層次結(jié)構(gòu)組成。scene 是存儲(chǔ)在glTF 的場景描述的入口點(diǎn);node 是在場景圖層次中的一個(gè)可包含幾何變換的節(jié)點(diǎn),節(jié)點(diǎn)可以引用其他節(jié)點(diǎn);攝像機(jī)(camera)描述渲染器的視圖配置;accessor 被用作任意數(shù)據(jù)的抽象源,用于訪問其他節(jié)點(diǎn)的數(shù)據(jù)源本身;material 包含定義對象在呈現(xiàn)時(shí)的外觀的參數(shù),用于模型的渲染。
圖2 gltf JSON 結(jié)構(gòu)元素之間的概念關(guān)系
通用的3D 模型格式(如obj 等)都可以用對應(yīng)的轉(zhuǎn)換工具轉(zhuǎn)換為glTF,對于BIM軟件創(chuàng)建的三維格式文件,借助BIM 系列產(chǎn)品提供API(Application Programming Interface)進(jìn)行二次開發(fā),自定義轉(zhuǎn)換器將BIM模型進(jìn)行數(shù)據(jù)轉(zhuǎn)換并導(dǎo)出為glTF 格式。在轉(zhuǎn)換插件設(shè)計(jì)時(shí),可以通過考慮參數(shù)化幾何描述、減面優(yōu)化、實(shí)例化圖元描述、數(shù)據(jù)壓縮等輕量化技術(shù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換,在保證三維數(shù)據(jù)格式glTF 完整的情況下,減少數(shù)據(jù)量,提高后續(xù)傳輸和解析的速度。
glTF 3D 模型格式有兩種:*.gltf 是一個(gè)基于JSON 的文本文件,通常引用外部文件,如紋理貼圖和二進(jìn)制網(wǎng)格數(shù)據(jù)。*.glb是二進(jìn)制版本,將*.gltf、*.bin、*png、*.jpg 整合封裝在一起,是對*.gltf 格式文件的進(jìn)一步壓縮,通常較小且獨(dú)立,如圖3 所示。
圖3 兩種glTF 格式文件
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展和HTML5 標(biāo)準(zhǔn)的成熟,使用網(wǎng)頁技術(shù)渲染三維圖形成為可能。WebGL(Web Graphics Library)是瀏覽器3D 渲染的核心技術(shù),目前用WebGL 封裝的三維 可 視 化 引 擎 包 括Three.js、OpenWebGlobe、WebGLEarth 和Cesium 等[2]。其中Cesium 是AGI(Analytical Graphics Inc)公司研發(fā)的三維地球虛擬平臺(tái)[3],是目前WEB 端3DGIS 應(yīng)用中最常用的工具庫。
盡管Cesium 自成立以來就支持glTF 文件加載,但是直接渲染大體量glTF 文件在目前的硬件條件下還不可行,而大體量3D 模型的加載和渲染是目前3DGIS 和智慧城市等應(yīng)用中的最大難點(diǎn)。
3D Tiles 格式是開放的規(guī)范,任何人都可以參與定義內(nèi)容的討論,其用于傳輸海量的異構(gòu)三維模型數(shù)據(jù)集,可使建筑物數(shù)據(jù)集、BIM模型、點(diǎn)云和攝影測量模型等在Web 端進(jìn)行流暢的瀏覽展示。3D Tiles 在2019 年2 月被開放地理空間聯(lián)盟(OGC)納入社區(qū)標(biāo)準(zhǔn)。
3D Tiles 數(shù)據(jù)由配置文件和瓦片數(shù)據(jù)結(jié)構(gòu)組成,類似二維地圖中的地圖瓦片加載。配置文件是一個(gè)樹結(jié)構(gòu)的對象,通過JSON 文件記錄其所有的節(jié)點(diǎn)信息,可以通過遍歷得到所有瓦片的信息;瓦片數(shù)據(jù)結(jié)構(gòu)包含了具體的模型信息,針對模型的數(shù)據(jù)格式為批處理3D 模型(Batched 3D Model,后綴名為*.b3dm),批處理3D 模型允許離線批處理異構(gòu)的3D 模型(例如城市中的不同建筑物),以高效地流式傳輸?shù)絎eb 客戶端以進(jìn)行渲染和交互。
在3D Tiles 中,一個(gè)tileset 就是一系列空間數(shù)據(jù)結(jié)構(gòu)(樹)組織下的一組瓦片(tiles)。一個(gè)瓦片索引一個(gè)或者一系列要素,比如表達(dá)建筑物或樹木的三維模型,點(diǎn)云中的點(diǎn),矢量數(shù)據(jù)集中點(diǎn)線面要素。這些要素需要捆綁在一起,形成單獨(dú)的一個(gè)要素,來減少客戶端加載時(shí)間,防止WebGL 的繪制請求過載。tile以具有空間連貫性的樹形結(jié)構(gòu)來組織空間索引,結(jié)合了詳細(xì)層次結(jié)構(gòu)(Hierarchical Level of Detail,HLOD)的概念,可最佳呈現(xiàn)空間數(shù)據(jù)。每個(gè)tile 都有一個(gè)邊界體積,定義了一個(gè)完全包圍其內(nèi)容的空間范圍,子圖塊的內(nèi)容完全在父級(jí)的邊界體積內(nèi)。tilesets 可以使用類似于柵格和矢量等提供預(yù)定義的多細(xì)節(jié)級(jí)別(或縮放級(jí)別)的2D 空間切片索引方案(例如Web 地圖切片服務(wù)(WMTS)或XYZ 方案),但是,由于tileset 的內(nèi)容通常是不一致的,或者可能不容易僅在二維上組織,因此3D Tiles 索引結(jié)構(gòu)樹可以是具有空間一致性的任何空間數(shù)據(jù)結(jié)構(gòu),包括k-d樹,四叉樹,八叉樹和網(wǎng)格,如圖4 所示。
圖4 樹形空間索引結(jié)構(gòu)
4.1 流程歸納。BIM網(wǎng)絡(luò)端共享需要將BIM模型文件進(jìn)行多次文件格式的轉(zhuǎn)換與優(yōu)化工作,中間數(shù)據(jù)格式采用可解析的、通用的與API 無關(guān)的運(yùn)行時(shí)三維資產(chǎn)交付格式glTF 文件格式對BIM模型數(shù)據(jù)進(jìn)行特殊化的數(shù)據(jù)存儲(chǔ),采用用于流式傳輸和渲染海量異構(gòu)3D 內(nèi)容的開放標(biāo)準(zhǔn)格式3D Tiles 進(jìn)行網(wǎng)絡(luò)端傳輸,選擇合適的空間索引機(jī)制進(jìn)行瀏覽器端渲染。如圖5所示。
圖5 完整的BIM 模型網(wǎng)絡(luò)共享方案
4.2 案例演示
本文選取了一段鋼架橋的絎架作為實(shí)例來驗(yàn)證3DTiles 在BIM模型網(wǎng)絡(luò)共享和可視化中的效果,BIM模型圖如圖6。
圖6
原BIM 模型為250M 左右,轉(zhuǎn)換后的glTF 模型體積只有3M,示例中將絎架重復(fù)了10 次,模型中有1000 多個(gè)螺釘實(shí)例,這也是BIM模型體積大的主要緣故。原模型在Autodesk Revit中只能編輯一段,而且在本文使用的機(jī)器環(huán)境(Intel i7 + Nvida GTX 1060)下已經(jīng)比較卡頓。經(jīng)過3DTile 處理后,在150M無線局域網(wǎng)測試環(huán)境中3 秒內(nèi)就能完成模型的加載,重復(fù)10 份之后能保證在10 秒內(nèi)完成模型渲染顯示。在瀏覽器中的展示效果如圖7。
圖7
BIM和GIS 的融合應(yīng)用是當(dāng)前信息化技術(shù)的熱點(diǎn)。兩者的優(yōu)勢互補(bǔ),構(gòu)建了一種多層次多尺度全方位的空間模式,是建立智慧城市的可視化基礎(chǔ),能更好的支持大規(guī)模市政交通工程的協(xié)同分析和共享應(yīng)用,也能提升基礎(chǔ)設(shè)施結(jié)構(gòu)運(yùn)行維護(hù)管理的效率。從研究中我們發(fā)現(xiàn)三維數(shù)據(jù)的動(dòng)態(tài)獲取、可視化技術(shù)發(fā)展、海量數(shù)據(jù)的儲(chǔ)存分析都取得了重大的進(jìn)展。本文探討了基于數(shù)據(jù)轉(zhuǎn)換、傳輸和網(wǎng)絡(luò)端渲染等技術(shù)等可以實(shí)現(xiàn)BIM模型和GIS 模型在瀏覽器端的集成。探索了構(gòu)建BIM+3D GIS 可視化平臺(tái)方法。結(jié)果表明,經(jīng)過一些列的數(shù)據(jù)格式轉(zhuǎn)換的方法能夠?qū)崿F(xiàn)多源異構(gòu)數(shù)據(jù)在網(wǎng)絡(luò)端的完美融合和共享。
參考文件
[1]徐照,張路,索華,等.基于工業(yè)基礎(chǔ)類的建筑物3D Tiles 數(shù)據(jù)可視化[J].浙江大學(xué)學(xué)報(bào)(工學(xué)版),2019,53(6):1047-1056.
[2]高云成.基于Cesium 的WebGIS 三維客戶端實(shí)現(xiàn)技術(shù)研究[D].西安:西安電子科技大學(xué),2014.
[3]朱栩逸,苗放.基于Cesium 的三維WebGIS 研究及開發(fā)[J].科技創(chuàng)新導(dǎo)報(bào),2015,12(34):9-11.