王占軍 王 鵬 呂 婧 劉 榮
(1、成都金隧自動化工程有限責任公司,四川 成都610031 2、內蒙古交通設計研究院有限責任公司,內蒙古 呼和浩特010010)
建筑信息模型(Building Information Modeling, BIM)是以計算機信息技術表達建筑物幾何、材質、地理等特性的方式。地理信息系統(Geographic Information System,GIS)是一種具有信息系統空間專業形式的數據管理系統,能集中、存儲、操作和顯示地理空間信息。在基礎設施運維管理中,GIS 可用于設施外部環境宏觀尺度的管理,BIM 用于設施內部微觀尺度精細化的管理。建立BIM+3D GIS 信息管理平臺是土木工程行業信息化發展的趨勢。首先,BIM模型的建模軟件用于創建復雜的3D 場景和模型,根據創建軟件系列的不同而采用不同的文件格式,這些數據格式的解析依賴專業軟件,很難直接在網絡中渲染顯示。其次,大多數BIM應用場景都是建筑群或特大高復雜度模型,模型體量非常大,以城市三維空間數據為例,其三維空間數據的數據量就可高達幾個Tb。大體量的BIM數據與3D GIS 數據在Web 端集成會受限于網絡寬帶和服務器性能,當計算機處理海量的三維數據時會出現加載時間過長、系統崩壞等問題[1]。
本文針對BIM+3D GIS 在網絡端集成所面臨的技術問題和海量BIM 數據在Web 瀏覽器端的高效加載顯示的技術要求,提出一種可以直接應用于應用程序界面,解析時間短,重量輕,開放性和統一性高的3D 數據格式,最終實現海量BIM模型在web 端快速加載和高效渲染。
1.1 需求定義。本文通過BIM+3D GIS 在Web 端集成顯示作為主要功能性需求,旨在利用WebGL 技術實現3D模型在瀏覽器的動態瀏覽和交互。所設計的展示平臺需要具有如下功能:
(1)實現BIM數據和GIS 數據在Web 端的渲染和展示。解除BIM模型文件的解析對專業建模軟件的依賴,可使用電腦、平板、手機端等通用設備進行模型顯示。
(2)實現瀏覽器端BIM數據和GIS 數據兩種不同構造的數據類型融合。BIM+3D GIS 的融合是一種互補的關系,對實現智慧城市建設發揮了不可替代的作用。
(3)實現瀏覽器端海量BIM數據的高效傳輸與渲染。BIM三維模型數據量大,通常僅一個室內場景的三維模型數據量就可達數百兆,需要占用大量的寬帶資源進行數據傳輸與圖形渲染展示。
1.2 實施流程。綜合上述需求,現階段GIS 數據已經廣泛地被部署在Web 網絡端,可在瀏覽器中直接顯示,本文主要考慮含有BIM 模型的GIS 數據網絡端的集成與高速渲染的流程。GIS 和BIM 數據可以通過轉換或直接整合兩種手段集成,而BIM 與傳統的3D GIS 數據格式有很大差別,無法直接與3D GIS 信息進行無縫融合,目前可行的方案采是將BIM數據格式轉換為可解析、易融合的數據文件格式。BIM在網絡端共享流程如圖1 所示。

圖1 BIM 從桌面端到瀏覽器端的共享流程
該流程主要由數據轉換部分和數據傳輸部分組成:數據轉換部分完成由專業建模軟件建立的精細化三維模型數據格式轉變為可供網絡傳輸和解析的中間數據格式;數據傳輸部分完成從中間數據格式出發,經過網絡傳輸在客戶端進行模型加載重構與渲染顯示工作。在流程中通過考慮BIM輕量化技術可以實現將BIM 模型從桌面端顯示傳輸到瀏覽器端高效顯示的功能。
BIM模型大部分以特有的數據格式存儲,需要在桌面客戶端以專有的軟件完成模型的渲染顯示,加之三維數據格式文件體量大的特點,其在網路中傳輸和加載的難度大。要實現BIM數據在網絡端應用需要采用高效輕量可解析的傳輸數據格式。JSON(JavaScript Object Notation,JavaScript 對象標記語言)是JavaScript 輕量級的數據存儲格式,可以同時存儲三維模型文件的模型信息和屬性信息,適合做Web 端的數據交換(三維建筑模型WebGL 顯示及優化)。glTF (GL Transmission Format) 是面向實時渲染應用的一種3D 內容的格式標準,以JSON 文本文件作為整個數據的核心,描述場景結構,通過提供一種高效,易擴展,可協作的格式,填補了3D 建模工具和現代GL 應用之間的空白,可以被選為中間數據格式。
glTF 的核心是一個JSON 文件,如圖2 所示。該文件描述了3D 場景的全部內容。它由場景結構本身的描述組成,由定義場景圖的節點層次結構組成。scene 是存儲在glTF 的場景描述的入口點;node 是在場景圖層次中的一個可包含幾何變換的節點,節點可以引用其他節點;攝像機(camera)描述渲染器的視圖配置;accessor 被用作任意數據的抽象源,用于訪問其他節點的數據源本身;material 包含定義對象在呈現時的外觀的參數,用于模型的渲染。

圖2 gltf JSON 結構元素之間的概念關系
通用的3D 模型格式(如obj 等)都可以用對應的轉換工具轉換為glTF,對于BIM軟件創建的三維格式文件,借助BIM 系列產品提供API(Application Programming Interface)進行二次開發,自定義轉換器將BIM模型進行數據轉換并導出為glTF 格式。在轉換插件設計時,可以通過考慮參數化幾何描述、減面優化、實例化圖元描述、數據壓縮等輕量化技術進行數據轉換,在保證三維數據格式glTF 完整的情況下,減少數據量,提高后續傳輸和解析的速度。
glTF 3D 模型格式有兩種:*.gltf 是一個基于JSON 的文本文件,通常引用外部文件,如紋理貼圖和二進制網格數據。*.glb是二進制版本,將*.gltf、*.bin、*png、*.jpg 整合封裝在一起,是對*.gltf 格式文件的進一步壓縮,通常較小且獨立,如圖3 所示。

圖3 兩種glTF 格式文件
隨著互聯網技術的飛速發展和HTML5 標準的成熟,使用網頁技術渲染三維圖形成為可能。WebGL(Web Graphics Library)是瀏覽器3D 渲染的核心技術,目前用WebGL 封裝的三維 可 視 化 引 擎 包 括Three.js、OpenWebGlobe、WebGLEarth 和Cesium 等[2]。其中Cesium 是AGI(Analytical Graphics Inc)公司研發的三維地球虛擬平臺[3],是目前WEB 端3DGIS 應用中最常用的工具庫。
盡管Cesium 自成立以來就支持glTF 文件加載,但是直接渲染大體量glTF 文件在目前的硬件條件下還不可行,而大體量3D 模型的加載和渲染是目前3DGIS 和智慧城市等應用中的最大難點。
3D Tiles 格式是開放的規范,任何人都可以參與定義內容的討論,其用于傳輸海量的異構三維模型數據集,可使建筑物數據集、BIM模型、點云和攝影測量模型等在Web 端進行流暢的瀏覽展示。3D Tiles 在2019 年2 月被開放地理空間聯盟(OGC)納入社區標準。
3D Tiles 數據由配置文件和瓦片數據結構組成,類似二維地圖中的地圖瓦片加載。配置文件是一個樹結構的對象,通過JSON 文件記錄其所有的節點信息,可以通過遍歷得到所有瓦片的信息;瓦片數據結構包含了具體的模型信息,針對模型的數據格式為批處理3D 模型(Batched 3D Model,后綴名為*.b3dm),批處理3D 模型允許離線批處理異構的3D 模型(例如城市中的不同建筑物),以高效地流式傳輸到Web 客戶端以進行渲染和交互。
在3D Tiles 中,一個tileset 就是一系列空間數據結構(樹)組織下的一組瓦片(tiles)。一個瓦片索引一個或者一系列要素,比如表達建筑物或樹木的三維模型,點云中的點,矢量數據集中點線面要素。這些要素需要捆綁在一起,形成單獨的一個要素,來減少客戶端加載時間,防止WebGL 的繪制請求過載。tile以具有空間連貫性的樹形結構來組織空間索引,結合了詳細層次結構(Hierarchical Level of Detail,HLOD)的概念,可最佳呈現空間數據。每個tile 都有一個邊界體積,定義了一個完全包圍其內容的空間范圍,子圖塊的內容完全在父級的邊界體積內。tilesets 可以使用類似于柵格和矢量等提供預定義的多細節級別(或縮放級別)的2D 空間切片索引方案(例如Web 地圖切片服務(WMTS)或XYZ 方案),但是,由于tileset 的內容通常是不一致的,或者可能不容易僅在二維上組織,因此3D Tiles 索引結構樹可以是具有空間一致性的任何空間數據結構,包括k-d樹,四叉樹,八叉樹和網格,如圖4 所示。

圖4 樹形空間索引結構
4.1 流程歸納。BIM網絡端共享需要將BIM模型文件進行多次文件格式的轉換與優化工作,中間數據格式采用可解析的、通用的與API 無關的運行時三維資產交付格式glTF 文件格式對BIM模型數據進行特殊化的數據存儲,采用用于流式傳輸和渲染海量異構3D 內容的開放標準格式3D Tiles 進行網絡端傳輸,選擇合適的空間索引機制進行瀏覽器端渲染。如圖5所示。

圖5 完整的BIM 模型網絡共享方案
4.2 案例演示
本文選取了一段鋼架橋的絎架作為實例來驗證3DTiles 在BIM模型網絡共享和可視化中的效果,BIM模型圖如圖6。

圖6
原BIM 模型為250M 左右,轉換后的glTF 模型體積只有3M,示例中將絎架重復了10 次,模型中有1000 多個螺釘實例,這也是BIM模型體積大的主要緣故。原模型在Autodesk Revit中只能編輯一段,而且在本文使用的機器環境(Intel i7 + Nvida GTX 1060)下已經比較卡頓。經過3DTile 處理后,在150M無線局域網測試環境中3 秒內就能完成模型的加載,重復10 份之后能保證在10 秒內完成模型渲染顯示。在瀏覽器中的展示效果如圖7。

圖7
BIM和GIS 的融合應用是當前信息化技術的熱點。兩者的優勢互補,構建了一種多層次多尺度全方位的空間模式,是建立智慧城市的可視化基礎,能更好的支持大規模市政交通工程的協同分析和共享應用,也能提升基礎設施結構運行維護管理的效率。從研究中我們發現三維數據的動態獲取、可視化技術發展、海量數據的儲存分析都取得了重大的進展。本文探討了基于數據轉換、傳輸和網絡端渲染等技術等可以實現BIM模型和GIS 模型在瀏覽器端的集成。探索了構建BIM+3D GIS 可視化平臺方法。結果表明,經過一些列的數據格式轉換的方法能夠實現多源異構數據在網絡端的完美融合和共享。
參考文件
[1]徐照,張路,索華,等.基于工業基礎類的建筑物3D Tiles 數據可視化[J].浙江大學學報(工學版),2019,53(6):1047-1056.
[2]高云成.基于Cesium 的WebGIS 三維客戶端實現技術研究[D].西安:西安電子科技大學,2014.
[3]朱栩逸,苗放.基于Cesium 的三維WebGIS 研究及開發[J].科技創新導報,2015,12(34):9-11.