邊根慶,陳蔚韜
面向Web的建筑三維模型可視化方法研究
邊根慶,陳蔚韜
(西安建筑科技大學(xué)信息與控制工程學(xué)院,陜西 西安 710055)
針對當(dāng)前工業(yè)基礎(chǔ)類(IFC)標準文件與WebGL框架集成方案存在模型語義完整性差及數(shù)據(jù)互操性弱等問題,提出一套建筑信息模型(BIM)數(shù)據(jù)網(wǎng)絡(luò)可視化實施方案。該方案以IFC標準文件作為輸入數(shù)據(jù)源,首先對BIM模型進行重構(gòu),并提出基于IFC結(jié)構(gòu)樹的構(gòu)件實例層次拆分策略將原始IFC文件實施數(shù)模分離;然后,將重構(gòu)后的IFC模型文件向glTF格式文件進行轉(zhuǎn)換,并在轉(zhuǎn)換過程中完成幾何空間和語義屬性的雙重關(guān)系映射;最后,提出基于層次包圍體(BVH)結(jié)構(gòu)的BS-AB場景構(gòu)件可視性檢測算法對建筑構(gòu)件進行可見性剔除。實驗結(jié)果表明:該方法能夠顯著減少BIM模型數(shù)據(jù)冗余,且高效完成了對復(fù)雜BIM場景不可見構(gòu)件的剔除工作,降低了渲染管線的開銷,為基于IFC標準與WebGL框架集成方案的BIM模型數(shù)據(jù)網(wǎng)絡(luò)可視化提供了一種可行的參考方案。
三維可視化;建筑信息模型;工業(yè)基礎(chǔ)類;WebGL;可見性剔除
建筑信息模型(building information model,BIM)以其為建設(shè)項目全生命周期信息化管理提供了先進的數(shù)字化工具和信息共享平臺的特點[1],解決了傳統(tǒng)設(shè)施工程所面臨的信息傳遞斷層和數(shù)據(jù)共享困難的問題,已廣泛應(yīng)用于建筑、工程、施工及設(shè)施管理(architecture,engineering and construction/facility management,AEC/FM)行業(yè)[2]。BIM的最大價值在于多參與方以及多專業(yè)之間的高效協(xié)同[3],而隨著建筑規(guī)模的不斷增大及建筑信息數(shù)據(jù)的越加復(fù)雜,其模型可視化和海量數(shù)據(jù)管理[4]變得越加困難,以致于無法滿足當(dāng)前工程建設(shè)信息數(shù)據(jù)管理、共享和同步的BIM本地化應(yīng)用需求。顯然,在滿足多用戶在不同設(shè)備和不同操作系統(tǒng)下隨時隨地訪問需求的同時,有效確保BIM模型的完整語義性和數(shù)據(jù)的互操作性[5-6]尤為重要。
近年來,WebGL的發(fā)展為BIM模型基于B/S架構(gòu)顯示過程中所遇到的硬件性能不足問題提供了良好的解決方案,基于WebGL技術(shù)的三維圖形顯示也隨之成為當(dāng)前BIM模型在線可視化首選方案。文獻[7-8]通過將Revit模型直接轉(zhuǎn)換到WebGL所支持的文檔層面(如OBJ、JSON、FBX等)以實現(xiàn)BIM模型在線可視化。但在網(wǎng)絡(luò)傳輸及瀏覽器性能限制下,此方法無法解決Web端海量BIM數(shù)據(jù)加載及模型渲染問題。文獻[9-12]從相似性幾何對象實例檢測及壓縮和BIM產(chǎn)品切片模型三角剖分及并行計算等方向?qū)IM模型數(shù)據(jù)輕量化進行研究,簡化了BIM模型,及提升了模型解析速率。但輕量化后的海量BIM模型數(shù)據(jù)因輕量化程度及渲染性能受限仍無法在Web端實現(xiàn)快速加載。由此,眾多學(xué)者從渲染場景管理角度進行研究,以降低Web端模型數(shù)據(jù)加載量。文獻[13-14]在基于雙層稀疏體素的BIM模型室內(nèi)外空間混合索引結(jié)構(gòu)構(gòu)建和基于增量興趣視錐的多粒度數(shù)據(jù)漸進式裝載等方面進行了深入探索。文獻[15]集成多細節(jié)層次(level of details,LOD)與視錐體剔除(view-frustum culling)技術(shù)動態(tài)調(diào)整場景物體內(nèi)存分配,降低了GPU內(nèi)存開銷。然而,這些方法可見性檢測效率及準確性低,仍存在巨大渲染管線開銷。文獻[16]對壓縮后的LOD模型進行基于稀疏體素的射線投射可見性交互測試,避免了大量不正確的可見性測試結(jié)果。然而,構(gòu)建高分辨率的體素較球體等包圍盒將占有更多的內(nèi)存空間。
鑒于此,本文針對三維模型數(shù)據(jù)加載量大及場景構(gòu)件可見性檢測準確率低導(dǎo)致渲染幀率低的問題,提出一套面向網(wǎng)絡(luò)的BIM在線可視化實施方案。該方案選取glTF格式作為模型轉(zhuǎn)換目標格式,在保證模型網(wǎng)絡(luò)化顯示前提下,實現(xiàn)模型數(shù)據(jù)高效壓縮;此外,引入BS-AB算法對場景構(gòu)件進行可見性檢測,在保證模型高性能渲染前提下,實現(xiàn)場景構(gòu)件有效剔除。實驗結(jié)果表明,與BIMviews等可視化系統(tǒng)相比,本文方法在保證模型語義完整性及數(shù)據(jù)互操性前提下,其模型渲染及交互更為順暢。
本文結(jié)合當(dāng)前IFC標準文件與WebGL框架集成方案存在模型語義完整性差及數(shù)據(jù)互操性弱等問題,對IFC標準文件及WebGL可支持文檔進行了分析,并通過比對模型渲染場景管理策略優(yōu)劣,提出一套面向網(wǎng)絡(luò)的BIM在線可視化實施方案。該方案以IFC標準文件作為輸入數(shù)據(jù)源,首先對BIM模型進行重構(gòu),構(gòu)建基于IFC結(jié)構(gòu)樹的構(gòu)件實例層次拆分策略,對原始IFC文件實施數(shù)模分離,拆分為儲存建筑幾何空間信息的IFC模型文件和儲存建筑構(gòu)件語義屬性的JSON文件;然后,構(gòu)造IFC-glTF轉(zhuǎn)換框架,將重構(gòu)后的IFC模型文件向glTF格式文件進行轉(zhuǎn)換,并在轉(zhuǎn)換過程中完成IFC幾何空間及JSON語義屬性到glTF的雙重關(guān)系映射;最后,通過同時引入球體(bounding sphere,BSphere)和軸對齊包圍盒(axis-aligned bounding box,AABB)碰撞檢測算法,構(gòu)建基于BVH的BS-AB場景構(gòu)件可視性檢測算法,對渲染場景中的建筑構(gòu)件進行可見性剔除,從而實現(xiàn)三維模型數(shù)據(jù)Web端快速加載和高效渲染。研究方法與流程如圖1所示。
IFC因其具有很強的兼容性和伸縮性,成為AEC/FM行業(yè)數(shù)據(jù)交換及共享的通用數(shù)據(jù)文件格式[17],其不能直接作為3D格式用于圖形顯示,需將其轉(zhuǎn)換為WebGL可支持文檔層面以進行模型可視化。glTF是一種面向?qū)崟r渲染應(yīng)用而設(shè)計的圖形語言交換格式。其將節(jié)點層次結(jié)構(gòu)等場景描述信息、模型幾何及動畫圖像等數(shù)據(jù)信息分塊存儲[18],而模型加載時通常只需加載JSON文本格式的glTF文件,其他塊文件可通過外部引入直接傳遞給圖形API而無需額外的解析和轉(zhuǎn)換。可見,glTF格式文件不僅能極大的壓縮原始IFC文件,也能在保證模型語義完整性和數(shù)據(jù)互操性的前提下,實現(xiàn)模型數(shù)據(jù)在Web端的高效傳輸和快速加載。因此,可將glTF作為IFC模型文件轉(zhuǎn)換的目標格式,完成BIM模型的網(wǎng)絡(luò)可視化。其轉(zhuǎn)換思路如圖2所示。
圖1 基于IFC和WebGL的BIM模型數(shù)據(jù)可視化方法流程圖
圖2 IFC-glTF數(shù)據(jù)轉(zhuǎn)換思路示意圖
在實際渲染過程中,一個渲染場景通常存在數(shù)以萬計的建筑物構(gòu)件,而往往網(wǎng)絡(luò)帶寬、內(nèi)存容量及渲染性能受限,如果對渲染場景中的所有構(gòu)件進行無差別渲染繪制,將會對GPU造成極大的性能開銷,從而降低圖形渲染效率。因此,對渲染場景的組織管理和調(diào)度優(yōu)化極為重要。對渲染場景的管理優(yōu)化存在諸多解決方案,如可見性剔除[19]、興趣區(qū)域設(shè)定[20]、LOD索引結(jié)構(gòu)[21]以及批次調(diào)用繪制。
瀏覽器模型數(shù)據(jù)視野范圍是通過視點位置及視錐體構(gòu)成的,通常只是整個渲染場景的一部分。因此,通過可見性剔除進行渲染場景組織管理是一種應(yīng)用比較廣泛的場景管理方法。視錐體剔除、背面剔除(back face culling)和遮擋剔除(occlusion culling)是3種應(yīng)用較多的可見性剔除技術(shù),其技術(shù)對比如圖3所示。
圖3 渲染過程中常見可見性剔除技術(shù)對比示意圖
背面剔除在光柵化階段進行,通過剔除背向視點的片元以提高渲染性能,是原生OpenGL所支持的可見性剔除算法;遮擋剔除能剔除被可視物體遮擋的不可視物體,雖可降低渲染管線及GPU性能開銷,但其基于硬件實現(xiàn),且需收集被遮擋物體和遮擋物體的位置信息,占用CPU資源。視錐體剔除在很多實時渲染中都存在,用以剔除掉視錐體視域外的多邊形或物體而只渲染視錐體視域內(nèi)的幾何圖形,從而提高圖形渲染效率。相對來說,視錐體剔除算法適合應(yīng)用于渲染場景組織管理。本文通過引入BSphere體和AABB盒碰撞檢測算法構(gòu)建基于BVH的視錐體剔除算法,其算法原理如圖4所示。
圖4 基于BVH的BS-AB場景構(gòu)件可視性檢測流程
2.1.1 數(shù)模分離
原始IFC文件中,通常包含幾何信息(空間位置及空間關(guān)系等)和非幾何信息(屬性類型及材質(zhì)貼圖等),而在模型的轉(zhuǎn)換過程中,會經(jīng)常造成建筑物語義屬性信息缺失,導(dǎo)致模型信息完整性不足。因此,需要將BIM模型進行數(shù)模分離,分開存儲并加載幾何空間信息與語義屬性信息,從而確保BIM模型的完整語義性。
IFC以樹的結(jié)構(gòu)形式將BIM模型的建筑以及構(gòu)件信息組織并管理起來。每個建筑構(gòu)件實例均為IFC結(jié)構(gòu)樹上的一個節(jié)點,而每個節(jié)點又與其父類節(jié)點或通過其父類節(jié)點和其他子節(jié)點之間存在包含、關(guān)聯(lián)等空間或?qū)傩躁P(guān)系。比如,每個IfcWall實例作為子節(jié)點被包含在IfcWall父類節(jié)點中,而同理IfcWall父類節(jié)點又作為子節(jié)點因同被包含在IfcBuildingElement中與IfcDoor關(guān)聯(lián)。通過遞歸訪問IFC結(jié)構(gòu)樹的每一個節(jié)點,將建筑構(gòu)件實例的幾何屬性信息或其他BIM場景信息分層次導(dǎo)出,不僅能有效管理IFC文件,降低IFC數(shù)據(jù)冗余,也能為構(gòu)件批繪制奠定基礎(chǔ)。基于IFC結(jié)構(gòu)樹的構(gòu)件實例層次導(dǎo)出具體見算法1。
算法1.基于IFC結(jié)構(gòu)樹的構(gòu)件實例層次導(dǎo)出算法。
Input:建筑模型中所有構(gòu)件實例。
Output:建筑模型中具有建筑關(guān)系的構(gòu)件實例集。
BIMServer提供了IFC文件管理、數(shù)據(jù)解析、格式化輸出等功能,本文也將通過BIMServer對整個建筑模型進行層次關(guān)系遍歷檢索[22],通過對IFC結(jié)構(gòu)樹的遞歸訪問,將建筑模型拆分為互相對應(yīng)的IFC模型文件和JSON文本文件。IFC模型文件儲存BIM空間和幾何信息,而JSON文本文件存儲BIM屬性和類型信息。數(shù)模分離過程如圖5所示。
圖5 數(shù)模分離過程
Fig. 5 Digital-analog separation process
2.1.2 數(shù)據(jù)轉(zhuǎn)換
在過去研究中,將IFC格式文件轉(zhuǎn)換為GLTF格式文件存在諸多解決方案[23-24],例如文獻[24]選取OBJ文件作為中間格式過度,首先調(diào)用IfcOpenShell庫中的IfcConvert工具將IFC文件轉(zhuǎn)換為OBJ文件,然后通過AGI(Analytical Graphics,Inc.)公司推出的obj2gltf工具將OBJ轉(zhuǎn)換為GLTF格式文件,從而實現(xiàn)IFC到glTF的整體轉(zhuǎn)換;本文通過調(diào)用Revit API,繼承IExternal Command (外部命令)和IExternal Application (外部應(yīng)用)接口,構(gòu)建基于C#語言的IFC-glTF轉(zhuǎn)換框架,通過Revit2gltf實現(xiàn)glTF模型文件輸出。數(shù)據(jù)轉(zhuǎn)換過程如圖6所示。
圖6 數(shù)據(jù)轉(zhuǎn)換過程
2.1.3 數(shù)據(jù)映射
通常,在BIM模型轉(zhuǎn)換過程中需要完成幾何信息到WebGL的空間關(guān)系映射。這是由于IFC文件中的構(gòu)件位置坐標信息由IfcLocalPlacement屬性定義,通常采用局部坐標系,而WebGL為全局坐標系。因此,IFC模型構(gòu)件與WebGL相機建立聯(lián)系必須進行坐標系空間轉(zhuǎn)換,主要包括模型變換和視變換。從局部坐標系到世界坐標系的坐標轉(zhuǎn)換實際上是空間幾何圖形經(jīng)平移、縮放和旋轉(zhuǎn)單獨或組合變換而成。考慮笛卡爾坐標系統(tǒng)采用右手法則,此處以繞軸為例,如圖7所示。
圖7 空間圖形平移、縮放和旋轉(zhuǎn)示意圖
若該圖形如圖7所示繞軸旋轉(zhuǎn),因所示繞值不變,可忽略值變換。此時設(shè)為原點到點Local(,,)的距離,為軸旋轉(zhuǎn)到該點的角度。依據(jù)三角函數(shù)方程即可得點Local(,,)繞軸旋轉(zhuǎn)角度時的旋轉(zhuǎn)矩陣,即
同理可得繞軸旋轉(zhuǎn)角度時的旋轉(zhuǎn)矩陣和繞軸旋轉(zhuǎn)角度時的旋轉(zhuǎn)矩陣。
綜上,IFC模型文件幾何信息可通過式(5)進行空間坐標系轉(zhuǎn)換,完成構(gòu)件幾何信息到WebGL的空間關(guān)系映射,即
其中,=為頂點繞坐標軸旋轉(zhuǎn)時的旋轉(zhuǎn)轉(zhuǎn)換矩陣。經(jīng)數(shù)模分離及數(shù)據(jù)轉(zhuǎn)換后,在Three.js中通過構(gòu)造函數(shù)“Loader”將glTF模型文件和JSON語義屬性文件引入至同一場景對象中,完成幾何模型和語義屬性信息在WebGL的加載。
2.2.1 視錐體剔除
視錐體剔除通過運用渲染場景中的空間相關(guān)性來判斷場景模型是否在視錐體內(nèi)部或者與視錐體相交來進行剔除操作。視錐本身通常由6個裁剪面構(gòu)成,其裁剪面右剖面如圖8所示。為視錐體垂直方向的張口角度;D和D分別為視點到近裁剪面和遠裁剪面的距離;H和H分別為近裁剪面和遠裁剪面的高度。
圖8 視錐體右裁剪面剖面圖
假設(shè)攝像機的縱橫比為,右裁剪面?zhèn)饶稠旤c(0,0,0)。根據(jù)幾何關(guān)系,可通過式(6)計算該頂點到右裁剪面的距離,從而判斷該頂點與右裁剪面的空間關(guān)系,即
若<0,則頂點在視錐體外側(cè);若≥0,則頂點在視錐體內(nèi)側(cè)。這是因為涉及裁剪空間變化時,左右手坐標系發(fā)生更改,裁剪面法向量指向視錐體內(nèi)。根據(jù)某構(gòu)件所有頂點與裁剪面的空間關(guān)系,可確定整個構(gòu)件與視錐體是否存在內(nèi)含、相交或外離關(guān)系,從而確定是否對構(gòu)件進行加載渲染。
2.2.2 基于BVH的BS-AB場景構(gòu)件可視性檢測算法
使用具有層次結(jié)構(gòu)的空間數(shù)據(jù)結(jié)構(gòu)組織場景并構(gòu)建體積略大但幾何特征相對簡單的包圍盒近似描述構(gòu)件,是解決復(fù)雜場景線性數(shù)組遍歷低效和復(fù)雜構(gòu)件視錐相交測試困難的有利途徑。層次包圍體BVH是一種常用的空間數(shù)據(jù)結(jié)構(gòu)。其將場景中的物體進行基于空間信息的層次樹狀結(jié)構(gòu)組織管理,從根節(jié)點往下依次包含內(nèi)部節(jié)點和葉子節(jié)點。
因此,BVH結(jié)構(gòu)樹可以根據(jù)IFC構(gòu)件樹進行創(chuàng)建。在此,將視錐場景視為一個根節(jié)點,每一個IfcBuildingElement (如IfcWall、IfcDoor等)作為一個類別放置在內(nèi)部節(jié)點中,則每個類別下的族即為葉子節(jié)點。當(dāng)葉子節(jié)點內(nèi)部仍存在不同構(gòu)件時,可依照族、族類型繼續(xù)構(gòu)建BVH樹,直至葉子節(jié)點中包含族實例。
在場景中添加包圍體的目的是通過精確的碰撞檢測對包圍盒外幾何體過濾。常用的包圍體有BSphere體、AABB盒。BSphere體算法是基于球體半徑與球心到視錐裁剪面距離實現(xiàn)。若<-,則球體與視錐體外離,不進行加載;若||<,則球體與視錐體相交,進行加載;若>,則球體在視錐體內(nèi),進行加載,其結(jié)構(gòu)如圖9所示。AABB盒算法是基于包圍盒頂點與視錐裁剪面距離實現(xiàn),通過判斷包圍盒頂點是否在視錐體內(nèi)或某兩點之間連線是否穿過視錐體確定是否對包圍盒進行加載,其結(jié)構(gòu)如圖10所示。
圖9 球體層次包圍盒樹結(jié)構(gòu)示意圖((a)利用球體包圍場景構(gòu)件;(b)層次結(jié)構(gòu)樹)
圖10 AABB層次包圍盒樹結(jié)構(gòu)示意圖((a)利用AABB盒包圍場景構(gòu)件; (b)層次結(jié)構(gòu)樹)
BSphere體構(gòu)造及相交測試雖簡單,但緊密性太差;AABB盒雖支持動態(tài)更新且檢測更為準確,但更新效率太低。由此,本文提出先對場景構(gòu)件進行BSphere體預(yù)檢測,剔除粗略松散的構(gòu)件,再通過AABB盒檢測,進一步篩選,快速達到最優(yōu)檢測結(jié)果。具體見算法2。
算法2.基于BVH的BS-AB場景構(gòu)件可視性檢測算法。
Input:場景內(nèi)所有構(gòu)件。
Output:場景內(nèi)可視構(gòu)件。
當(dāng)視錐體與層次包圍體進行碰撞檢測時,先進行BSphere體預(yù)檢測,從根結(jié)點開始依次對每一個節(jié)點進行遞歸訪問,剔除掉外離的內(nèi)部節(jié)點和葉子節(jié)點,將內(nèi)含的內(nèi)部節(jié)點以及與視錐體相交的內(nèi)部節(jié)點內(nèi)含的葉子節(jié)點進行加載。另外,對與視錐體相交的內(nèi)部節(jié)點內(nèi)仍與視錐體相交的葉子節(jié)點進行AABB盒檢測,剔除掉與視錐體外離的包圍盒。利用此算法在保證視錐體剔除效率的基礎(chǔ)上,不僅降低了渲染管線性能開銷,也提高了可視構(gòu)件檢測的準確性。
為了驗證模型轉(zhuǎn)換策略和場景管理策略的有效性,本文從公開數(shù)據(jù)集Open IFC Model Repository和各BIM模型數(shù)據(jù)庫中收集了10個建筑物場景組成實驗數(shù)據(jù)進行實例驗證。本實例驗證以配置為Intel(R) Core(TM) i7-8700@3.20GHZ 六核處理器、16 GB內(nèi)存、NVIDIA GeForce GTX 1060顯卡以及64位Windows10操作系統(tǒng)的筆記本電腦,基于Chrome瀏覽器和Three.js框架實現(xiàn)。實驗中所有測試數(shù)據(jù)的IFC版本均為IFC2X3,具體見表1。
表1 實驗測試數(shù)據(jù)集
本文針對文獻[7-8]中模型轉(zhuǎn)換后三維模型數(shù)據(jù)加載量大且加載時間長問題,提出以glTF作為模型轉(zhuǎn)換目標格式實現(xiàn)網(wǎng)絡(luò)加載。對此,本文對去語義屬性的IFC模型文件進行了模型轉(zhuǎn)換實驗。
從圖11中可以發(fā)現(xiàn),隨著模型文件體量增大,glTF體積緩慢增長,而obj增長較塊,且遠大于glTF文件。這是由于原始IFC文件經(jīng)數(shù)模分離及格式轉(zhuǎn)換后,僅有少量信息被存儲在glTF文件中,而大部分信息保存在bin文件下。
圖11 轉(zhuǎn)換后模型文件大小
從表2中可以發(fā)現(xiàn),盡管由于建筑場景的不同,轉(zhuǎn)換后的模型整體文件大小及轉(zhuǎn)換所需要的時間有所差別,但glTF格式壓縮率均在90%以上,相較于obj格式有明顯的壓縮優(yōu)勢。因此,將gLTF作為模型轉(zhuǎn)換目標格式對降低三維模型數(shù)據(jù)加載量有效,也將更利于Web端三維模型數(shù)據(jù)快速加載。
本文針對場景構(gòu)件可見性檢測效果差導(dǎo)致渲染幀率低問題,提出利用基于BVH的BS-AB場景構(gòu)件可視性檢測算法對建筑構(gòu)件進行可見性檢測及剔除。對此,本文以Medel 10作為實驗對象,設(shè)置了10個同一角度、同一視點但視點與模型距離不一的視錐場景,如圖12所示。之后在不同視錐場景下,分別從FPS值及畫面單次渲染時間等參數(shù)方面與其他渲染系統(tǒng)進行性能比較,從而驗證本文策略是否對場景可視構(gòu)件管理工作有效。
表2 模型轉(zhuǎn)換結(jié)果
圖12 場景視點設(shè)置示意圖
實驗中,BIMviews所依賴的BIMServer服務(wù)器版本為BIMServer1.5.88。Chrome網(wǎng)頁瀏覽器為64位的84.0.4147.89版本。實驗過程中,通過開啟Chrome瀏覽器Rendering監(jiān)聽器中的FPS mater對3D場景繪制區(qū)域進行FPS監(jiān)聽;借用stats.js庫對場景區(qū)域進行Rendering time監(jiān)測。此外,BIMviews加載IFC模型文件,其他方法均加載glTF文件。實驗結(jié)果如圖13、14所示。
從圖13可以發(fā)現(xiàn),隨著視點與模型的距離縮小,視錐體內(nèi)構(gòu)件數(shù)量降低,整體FPS值均在逐漸上升,但其他2種方法增幅較小且不夠穩(wěn)定。且在Distance 5之后,視錐體內(nèi)構(gòu)件數(shù)量大幅降低,本文方法視錐體剔除效果明顯,渲染幀率穩(wěn)步上升。從圖14可以發(fā)現(xiàn),在Distance 5之前,2種方法下的畫面單次渲染時間差別不大,但在Distance 5之后,本文所用方法下的畫面渲染時間下降明顯。通過實驗對比,驗證了本文BS-AB場景構(gòu)件可視性檢測算法的可行性和場景管理策略的有效性,可以滿足BIM模型數(shù)據(jù)網(wǎng)絡(luò)可視化的流暢需求。此外,在實驗過程中發(fā)現(xiàn),BIMviews加載實驗對象IFC文件及獲取模型數(shù)據(jù)較慢,平均在40 s左右,卡頓明顯。而利用Three.js加載glTF文件至Web 3D完整顯示平均只需要7 s左右,再次驗證了glTF格式比IFC格式更適合BIM模型數(shù)據(jù)基于Web三維顯示及交互。
圖13 FPS對比分析
圖14 畫面渲染時間對比分析
本文針對三維模型數(shù)據(jù)加載量大導(dǎo)致Web端加載緩慢以及場景可視性構(gòu)件檢測準確率低導(dǎo)致畫面渲染卡頓問題,提出將glTF作為模型轉(zhuǎn)換目標格式,并通過基于BVH的BS-AB場景構(gòu)件可視性檢測算法對場景構(gòu)件進行可視性剔除。實驗結(jié)果表明,該方法大幅度降低了BIM模型數(shù)據(jù)量,且提高了模型可視構(gòu)件檢測準確率,有較好的Web端模型加載及渲染效果。但是,本文方法無法對被遮擋構(gòu)件進行可視性檢測,且對模型構(gòu)件類型(如建筑或機電)檢測效果有所差別。后續(xù)工作將從LOD及遮擋剔除算法[25]著手,對渲染場景視錐體剔除后渲染管線和GPU性能開銷仍不理想的問題進一步優(yōu)化。此外,將考慮結(jié)合Three.js和Cesium.js,以更好的實現(xiàn)三維模型與實景融合。
[1] CHEN H M, CHANG K C, LIN T H. A cloud-based system framework for performing online viewing, storage, and analysis on big data of massive BIMs[J]. Automation in Construction, 2016, 71: 34-48.
[2] OZTURK G B. Interoperability in building information modeling for AECO/FM industry[J]. Automation in Construction, 2020, 113: 103122.
[3] 徐照, 徐夏炎, 李啟明, 等. 基于WebGL與IFC的建筑信息模型可視化分析方法[J]. 東南大學(xué)學(xué)報: 自然科學(xué)版, 2016, 46(2): 444-449.
XU Z, XU X Y, LI Q M, et al. Combining WebGL and IFC to create 3D visualization for building information models[J]. Journal of Southeast University: Natural Science Edition, 2016, 46(2): 444-449 (in Chinese).
[4] CHEN C, TANG L. BIM-based integrated management workflow design for schedule and cost planning of building fabric maintenance[J]. Automation in Construction, 2019, 107: 102944: 1-10294: 12.
[5] ZHANG J P, LIU Q, HU Z Z, et al. A multi-server information-sharing environment for cross-party collaboration on a private cloud[J]. Automation in Construction, 2017, 81: 180-195.
[6] HU Z Z, ZHANG X Y, WANG H W, et al. Improving interoperability between architectural and structural design models: an industry foundation classes-based approach with web-based tools[J]. Automation in Construction, 2016, 66: 29-42.
[7] XU Z, ZHANG Y, XU X Y. 3D visualization for building information models based upon IFC and WebGL integration[J]. Multimedia Tools and Applications, 2016, 75(24): 17421-17441.
[8] 晁陽, 牛志偉, 齊慧君. 基于WebGL的BIM模型可視化研究[J]. 水電能源科學(xué), 2020, 38(9): 79-82.
CHAO Y, NIU Z W, QI H J. Research on visualization of BIM model based on WebGL[J]. Water Resources and Power, 2020, 38(9): 79-82 (in Chinese).
[9] ZHOU X P, ZHAO J C, WANG J, et al. Parallel computing-based online geometry triangulation for building information modeling utilizing big data[J]. Automation in Construction, 2019, 107: 102942:1-102942:11.
[10] ZHOU X P, ZHAO J C, WANG J, et al. Towards product-level parallel computing of large-scale building information modeling data using graph theory[J]. Building and Environment, 2020, 169: 106558:1-106558:11.
[11] ZHOU X P, WANG J, GUO M, et al. Cross-platform online visualization system for open BIM based on WebGL[J]. Multimedia Tools and Applications, 2019, 78(20): 28575-28590.
[12] 王佳, 蘇鼎丁, 周小平, 等. BIM模型相似度計算方法[J]. 圖學(xué)學(xué)報, 2020, 41(4): 624-631.
WANG J, SU D D, ZHOU X P, et al. Similarity calculation method of BIM model[J]. Journal of Graphics, 2020, 41(4): 624-631 (in Chinese).
[13] 劉小軍, 賈金原. 面向手機網(wǎng)頁的大規(guī)模WebBIM場景輕量級實時漫游算法[J]. 中國科學(xué): 信息科學(xué), 2018, 48(3): 274-292.
LIU X J, JIA J Y. Mobile web-based lightweight and real-time roaming algorithm for large-scale WebBIM scenes[J]. Scientia Sinica: Informationis, 2018, 48(3): 274-292 (in Chinese).
[14] LIU X J, XIE N, TANG K, et al. Lightweighting for Web3D visualization of large-scale BIM scenes in real-time[J]. Graphical Models, 2016, 88: 40-56.
[15] DONG Y Z, PENG C. Real-time large crowd rendering with efficient character and instance management on GPU[J]. International Journal of Computer Games Technology, 2019, 2019: 1-15.
[16] XUE J J, ZHAO G, XIAO W L. Efficient GPU out-of-core visualization of large-scale CAD models with voxel representations[J]. Advances in Engineering Software, 2016, 99: 73-80.
[17] KRIJNEN T, BEETZ J. An IFC schema extension and binary serialization format to efficiently integrate point cloud data into building models[J]. Advanced Engineering Informatics, 2017, 33: 473-490.
[18] XU Z, ZHANG L, LI H, et al. Combining IFC and 3D tiles to create 3D visualization for building information modeling[J]. Automation in Construction, 2020, 109: 102995:1-102995:16.
[19] JOHANSSON M, ROUPé M, BOSCH-SIJTSEMA P. Real-time visualization of building information models (BIM)[J]. Automation in Construction, 2015, 54: 69-82.
[20] 賈金原, 王偉, 王明飛, 等. 基于多層增量式可擴展扇形興趣區(qū)域的大規(guī)模DVE場景對等漸進式傳輸機制[J]. 計算機學(xué)報, 2014, 37(6): 1324-1334.
JIA J Y, WANG W, WANG M F, et al. Multi-layered incremental & scalable sector of interest(MISSOI)based efficient progressive transmission of large-scale DVE scenes[J]. Chinese Journal of Computers, 2014, 37(6): 1324-1334 (in Chinese).
[21] ZHANG S R, HOU D J, WANG C, et al. Integrating and managing BIM in 3D web-based GIS for hydraulic and hydropower engineering projects[J]. Automation in Construction, 2020, 112: 103-114.
[22] 徐照, 張路, 索華, 等. 基于工業(yè)基礎(chǔ)類的建筑物3D Tiles數(shù)據(jù)可視化[J]. 浙江大學(xué)學(xué)報: 工學(xué)版, 2019, 53(6): 1047-1056.
XU Z, ZHANG L, SUO H, et al. IFC-based data visualization of 3D Tiles for buildings[J]. Journal of Zhejiang University: Engineering Science, 2019, 53(6): 1047-1056 (in Chinese).
[23] CHEN Y Q, SHOORAJ E, RAJABIFARD A, et al. From IFC to 3D tiles: an integrated open-source solution for visualising BIMs on cesium[J]. International Journal of Geo-Information, 2018, 7(10): 393-404.
[24] 徐敬海, 卜蘭, 杜東升, 等. 建筑物BIM與實景三維模型融合方法研究[J/OL]. 建筑結(jié)構(gòu)學(xué)報. [2021-01-30]. https://doi. org/10.14006/j.jzjgxb.2019.0739.
XU J H, BU L, DU D S, et al. Research on fusion method of building bim and reality 3D model[J/OL]. Journal of Building Structures. [2021-01-30].https://doi.org/10.14006/j.jzjgxb.2019. 0739 (in Chinese).
[25] BITTNER J, WIMMER M, PIRINGER H, et al. Coherent hierarchical culling: hardware occlusion queries made useful[J]. Computer Graphics Forum, 2004, 23(3): 615-624.
Research on web-oriented visualization method of 3D architectural model
BIAN Gen-qing, CHEN Wei-tao
(School of Information and Control Engineering, Xi’anUniversity of Architecture and Technology, Xi’an Shaanxi 710055, China)
Aiming at the problems of poor model semantic integrity and weak data interoperability in the current industrial foundation class (IFC) standard file and WebGL framework integration scheme, a set of building information model (BIM) data network visualization implementation schemes are proposed. The program uses IFC standard files as the input data source, first reconstructs the BIM model, and proposes a component instance hierarchical split strategy based on the IFC structure tree to implement the digital and analog separation of the original IFC file. Then, the reconstructed IFC model file is converted to the glTF format file, and the dual relational mapping of geometric space and semantic attributes is completed in the conversion process. Finally, the BS-AB scene component visibility detection algorithm based on the Bounding Volume Hierachy (BVH) structure is proposed to perform the construction component Visibility culling. The experimental results show that this method can significantly reduce BIM model data redundancy, efficiently complete the elimination of invisible components in complex BIM scenes, and reduce the overhead of the rendering pipeline. It is a provides a feasible reference solution for the visualization of BIM model data based on the IFC standard and WebGL framework integration scheme. Network visualization provides a feasible reference solution.
3D visualization; building information model; industrial foundation class; WebGL; visibility culling
TU 17
10.11996/JG.j.2095-302X.2021050823
A
2095-302X(2021)05-0823-10
2020-12-11;
2021-03-23
11 December,2020;
23 March,2021
住房和城鄉(xiāng)建設(shè)部軟科學(xué)研究項目(2019-R-022);陜西省軟科學(xué)研究計劃項目(2019KRM195)
Soft Science Research Project of the Ministry of Housing and Urban-Rural Development (2019-R-022);Shaanxi Province Soft Science Research Project (2019KRM195)
邊根慶(1968–),男,浙江浦江人,教授,博士。主要研究方向為BIM技術(shù)。E-mail:bgq_00@163.com
BIAN Gen-qing (1968–), male, professor, Ph.D. His main research interest covers BIM technology. E-mail:bgq_00@163.com