呂婧 金浩然 譚軍 王鵬



摘? 要:BIM以數字信息模型為基礎對建筑物整個生命周期進行信息化管理。BIM的最終需求是展示在電腦、移動終端等顯示設備上。冗余海量的建筑信息加上巨大的建筑體量使得BIM數據量非常龐大,對服務器硬件要求非常苛刻。針對上述問題,文章提出一種基于glTF格式的BIM數據輕量化方法,降低BIM數據量,并運用案例進行驗證其可行性。
關鍵詞:glTF;BIM模型;輕量化
中圖分類號:TU17? ? ? ? ?文獻標志碼:A? ? ? ? ?文章編號:2095-2945(2020)06-0174-03
Abstract: BIM carries on the information management to the whole life cycle of the building based on the digital information model. The ultimate requirement of BIM is to display on computers, mobile terminals and other display devices. The huge amount of redundant building information coupled with the huge volume of buildings makes the amount of BIM data very large, and the requirements for server hardware are very stringent. In view of the above problems, this paper proposes a lightweight method of BIM data based on glTF format to reduce the amount of BIM data, and uses a case to verify its feasibility.
Keywords: glTF; BIM model; lightweight
引言
BIM技術已經越來越多地應用于工程建設領域,BIM模型由專門的建模軟件創建,根據創建軟件系列的不同而采用不同的專有文件格式:Autodesk Revit軟件系列的模型存儲為*.rvt格式;Bentley MicroStation系列采用*.dgn文件格式; Catia系列產品使用 *.catPart等,這些BIM數據的解析需要依靠專有的BIM軟件且包含精細的幾何信息與豐富的語義信息,大多數BIM應用場景都是建筑群或特大高復雜度模型,因此模型體量非常大,即使在桌面客戶端運行都需要高頻CPU、大內存、獨立顯卡等較高的計算機配置。HTML5和WebGL等出現的互聯網技術為開發一種不需要瀏覽器擴展功能或插件的虛擬三維應用場景提供了新的可能[1]。但是WebGL 技術在瀏覽器端利用本地客戶端顯卡,內存資源進行圖形渲染,受限于網絡寬帶和服務器性能,當BIM模型體量超過終端設備承受范圍時,容易出現加載時間過長、程序卡死或者系統崩潰等現象。網絡傳輸與瀏覽器端圖形渲染效率低下。因此要實現BIM模型在瀏覽器端的展示,需要將BIM數據格式轉化為一種統一的、圖形引擎可以識別和處理的數據格式。
1 BIM模型輕量化原理
BIM模型輕量化是指在不損失模型真實性的前提下通過先進算法把模型重構并且進行更輕便更靈活地顯示。BIM模型采用WebGL引擎在Web和移動端顯示需要經過圖形數據轉換和瀏覽器渲染處理兩個過程,這兩個過程正好是BIM模型輕量化的關鍵環節。模型數據轉換是指將三維模型數據轉換為可被圖形引擎識別和處理的數據格式,并且在轉換中進行數據壓縮,轉換后的模型數據量可以壓縮到比原始三維網格的數據量小,簡化后的數據格式用于優化存儲和網絡傳輸過程。模型輕量化顯示是指轉換后的模型被圖形引擎解析和顯示過程中通過提升渲染處理速度,達到流暢實時顯示,如圖1所示。
BIM模型主要由幾何信息與非幾何信息組成。非幾何信息是指構件屬性等相關數據,其輕量化方法比較簡單,只要將其剝離于幾何信息存儲和壓縮為DB文件或者JSON文件即可。
圖形數據格式轉換為輕量化的源頭和核心。幾何信息的輕量化方法可以分為:參數化幾何描述,減面優化處理,實例化圖元描述,數據壓縮四種方法。
參數化幾何描述:單個構件的輕量化參數表示,比如一個圓柱體可以使用五個參數來存儲數據。參數1:底面原點坐標(x、y、z,3個小數);參數2:底面半徑(r,1個小數);參數3:柱子高度(h,1個小數);減面優化處理:BIM模型中存在含有三角面的構件,模型越精細,其三角面片含量將越高,使用BIM三角網簡化功能,刪除模型中多余或重疊的點和面,簡化模型構件的三角面片數;實例化圖元描述:BIM模型一般會存在相同幾何圖元的多個實例,通過渲染管線繪制成幾何構件。相同的構件通過添加一個引用和空間坐標來區別繪制在模型內不同地點。使用相似體的識別算法可以大大減少渲染幾何體的數量;數據壓縮:進行數據文件的無損壓縮可以大大減少網絡傳輸時間。Draco是glTF的擴展,用于網格壓縮,用于壓縮和解壓縮3D網格以顯著減小3D內容的大小[2]。它壓縮頂點位置、法線、顏色、紋理坐標以及任何其他通用頂點屬性,從而提高了在Web上傳輸3D內容的效率和速度。
模型輕量化顯示:主要在解析模型文件,渲染繪制于瀏覽器端的過程中進行優化和加速。包括:可視域剔除、多重LOD (Level of Detail)、批量繪制、數據動態調整等技術提升渲染流暢度方法。
多重LOD(Levels of Detail):多重LOD用不同精細級別的幾何體來表示物體,從輪廓模型到精細實體模型等不同的精度。在瀏覽器實時渲染模型中,在不影響視覺效果的前提下根據空間距離變化視點周圍的物體精度,距離越遠加載的模型越粗糙,距離越近加載的模型越精細,從而提高顯示效率并降低存儲。剔除技術是計算機圖形學加速算法之一,包括視錐體剔除,遮擋剔除,背面剔除等方法如圖2[3]。遮擋剔除(Occlusion Culling)是指消耗一小部分CPU來去掉不可見的物體,不改變最終渲染的畫面的同時,降低GPU的負載,如圖2所示。