隨着 WebBIM 和三維GIS技術的大力發展,建築模型的複雜度與構件數量呈幾何倍數增加,其中管廊複雜網格是影響模型輕量化和在線渲染速率的一個關鍵性問題。爲有效減小管廊複雜網格模型的數據量及複雜度,本文針對通常圓柱體形管廊,複雜網格的彎管管廊模型及中空管廊網格模型,提出了一套輕量級參數化算法。該算法對場景中的管廊模型進行參數化重繪並輔助以多細節層次等視覺優化手段,以減輕 WebBIM 場景中的管廊模型渲染負擔,其在擁有大量管廊模型的場景中應用成功,具備較強的工程實踐意義。 php
近年來,網絡技術的發展日新月異,人類正向高度信息化的社會邁進。BIM在國內建築業造成一股熱潮,儘管擁有了政府和社會的大力支持,Web 端的 BIM 大規模場景應用開發仍然面臨許多巨大的挑戰:html
1、網頁存儲瓶頸問題:隨着 BIM場景規模的增長,建築內部空間結構複雜度不斷提高,管廊結構的模型體量不斷增長,BIM 數據將來可能達到城市級別(100 TB 以上),一般來講,PC 端的瀏覽器可以使用的內存僅爲 1.5 至 2 GB,稍大的 BIM模型就可能會致使瀏覽器的崩潰。算法
2、計算渲染瓶頸問題:傳統加載方式中,IFC構件被逐一添加在場景中,管廊模型擁有的三角化面片數量多,致使整個初始加載速度慢,且場景中FPS 較低,瀏覽建築模型容易出現明顯卡頓狀況。api
在以上問題的基礎上,尤爲是管廊管線這類構件每每在城市建築模型中佔有了必定的比重,例如水管,通風管道等,且建築物內部管廊模型排列每每具備必定的複雜性,優化這部分管廊模型的參數,可以有效減小場景中的三角面片數量,幫助提高模型加載速率,對改善上述的兩個瓶頸問題起到了積極的做用。 瀏覽器
所以針對上述問題,本文提出了一套三維管廊複雜網格參數化算法,首先經過語義分析和幾何分析,提取大規模 IFC 場景中的管廊網格模型構件類。而後針對通常圓柱體形管廊網格模型,彎管管廊模型以及中空管廊模型三種不一樣的特徵,對其在服務端
分類進行參數化處理,並將參數結果返回給網頁端進行渲染。爲了下降網頁端的渲染負載,實例化管廊模型的同時輔助以基於 LOD 多細節層次技術的漸進式自適應渲染方法,有效下降場景中管廊模型部分的總數據量及其三角面片數量,加快場景初始加載時間以及提高場景整體加載的幀速率,爲輕量化BIM 大規模管廊模型場景的在線可視化提供了支持。 緩存
1 相關研究服務器
1.1 管廊的參數化原理 網絡
一般的直線管廊網格模型的構造圖如圖 1 所示,具體渲染方法爲:將直線三維管廊網格模型抽象爲正圓柱體,管線中心抽象爲正圓柱體的中軸線,管線中心線起止點爲正圓柱體上下底面圓圓心,圓柱體半徑爲管徑。app
提取到了以上的管廊模型參數信息後,在瀏覽器 端 渲 染 時 可 以 利 用 Three.js 提 供 的THREE.Cylinder Geometry 對象對管廊進行批量建模。利用 THREE.Cylinder Geometry 對象進行圓柱體建模時可接收多個參數, 而在實際建模過程當中主要用到三個參數, 分別是:頂面半徑、底面半徑以及圓柱體的高度, 分別對應三位管線的半徑以及管線長度。生成管線模型的幾何對象以後,還需利用 THREE.Material 爲其貼上合適的紋理,經過THREE.Mesh(geometry,material)生成完整的管線段
模型。 大數據
1.2 管廊多細節層次技術(LOD)
LOD 的主要想法是下降複雜性,當視點遠離3D 模型對象時,根據人的視覺系統,遠處對象會變小或者變得模糊不清,這時咱們可使用該對象的簡化版本。對象簡化版本的實現多種多樣,一般是經過較少三角形的數據或者替代幾何模型的幾何特徵和紋理來實現。無論簡化版本的實現方法如何,其策略的最終結果是將一個相比原模型壓力較小的對象交給 GPU 去處理,下降渲染複雜度,提升場景加載的速率針對管廊網格模型,多細節層次技術主要調整的是參數化後的管廊網格切割塊數,當攝像機視角靠近的時候,切割塊數增多,三維管廊模型越精細,而當攝像機視角原理時,能夠減小模型的切割塊數,管廊模型呈現較粗糙。
1.3 大規模 BIM模型在線實時渲染
「互聯網+」時代的到來爲 BIM 信息的傳遞和共享提供了更爲廣闊的舞臺,「互聯網+BIM」的融合、發展也是勢不可擋。網頁瀏覽器是移動互聯網上最爲普遍通用的信息共享平臺,直接在網頁瀏覽器上將 BIM 場景可視化地再現出來就變得更有
吸引力。用戶們只須要點擊瀏覽網頁就能夠訪問大規模 BIM 場景與之交互。尤爲是正在流行的HTML5/WebGL 提供了一種無插件安裝的 Web3D開發平臺,這大大便捷了互聯網 BIM 的可視化共享瀏覽,因此 WebBIM 在線可視化將成爲「互聯
網+BIM 可視化」的主流發展趨勢。
可是因爲大規模的 BIM 場景存在實時響應速度慢、渲染能力弱、數據傳輸緩慢等問題,WebBIM 在線可視化將會受到因網頁瀏覽器緩存受限而致使的存取不順暢、尤爲是管廊模型較多的大規模 BIM 建築,數據量較大可能致使瀏覽器的癱瘓。因互聯網帶寬受限而致使的傳輸緩滯、因網頁瀏覽器渲染能力受限而致使的漫遊延遲的影響,這些影響將會嚴重阻礙 WebBIM 大規模場景的在線實時可視化共享。所以,本文所研究的管廊複雜網格模型的參數化方法及其在線可視化技術可以針對網頁的在線渲染問題作出改善,具備重要的實踐意義。
綜上所述,本文的創新點主要體如今針對大規模 WebBIM 模型的加載和渲染瓶頸提出了一種基於管廊網格模型的參數化算法,可以根據管廊網格模型不一樣的分類進行參數化處理,在瀏覽器端採用一種基於 LOD 的漸進式加載方式,緩解了瀏覽器
端的數據壓力,提高了模型的渲染效率,爲擁有大規模三維管廊網格的 WebBIM 建築模型的模型解析與在線渲染提供了新的優化方向。
2 技術路線
本文所採用的技術路線如圖 3 所示。在服務器端,須要完成工做包括從語義分析以及幾何分析角度進行管廊模型構件的提取,以及基於圓柱體形管廊網格構件的參數化算法研究,進一步拓展彎管三維管廊模型的參數化算法以及基於布爾運算的中空復
雜管廊模型的參數化算法。
3 關鍵技術
整個三維管廊模型對象的抽取過程如圖 4 中所示,從構件語義分析提取構件是從以上多種不一樣的IFC 構件類型中,提取多是管廊管片管線等圓柱體型模型的構件的過程。而從語義分析角度,每每可能存在偏差,好比把非圓柱體形的拉伸體模型誤認爲是管廊模型。
在此基礎上,從幾何角度分析則是從三維管廊模型的形態上對構件進行分析,判斷構件是否具備圓柱體形構件包圍盒的特徵,且根據模型上的頂點信息可以計算出上下底面與中心軸等參數,進而概括其類型,最終提取出了一類能夠進行管廊網格參數化處理的目標模型。
3.2 三維管廊網格模型參數化
3.2.1 圓柱體形管廊網格模型參數化
由此可知,對於一個原始的複雜管廊網格模型,其每每有上百個,甚至上千頂點,同時三角網格數量較多。針對大型建築模型,一旦管廊模型的數據量較大,對模型的初始渲染和加載效率必定會存在較大的影響,所以,本文針對圓柱體形管廊網格模型,提出了參數重繪的方式,使用 ThreeJS 的圓柱體進行實例化,可以有效簡化模型數據量,且提高場景渲染速率。
本文所使用的通常圓柱體形管廊模型參數化是從原始管廊網格模型的頂點以及三角面片信息中有效提取出其上下底面圓的圓心以及半徑,而且求出其中軸線的長度以及方向,並可以在場景中重繪出該構件的過程。擬合後的標準化圓柱體與源
數據對好比圖 5(a)源數據-非標準化三角化側面和5(b)擬合後-標準化三角化側面所示。因爲使用了圓柱體模型的參數化方式,重繪圓柱體須要的數據量所以大大下降。
因爲原始管廊網格模型存在三角化方式無規律,如圖 5(c)源數據-非標準化三角化底面和 5(d)擬合後-標準化三角化底面所示,參數化的過程也是一個將管廊網格模型標準化的過程,爲後續圓柱體形管廊構件的在線應用提供基礎。上下底面的分
割塊數決定着圓柱體模型在場景中的精細程度。
3.2.2 彎管管廊網格模型參數化
除了通常的圓柱體形管廊模型外,建築模型中還存在較大一部分的彎管管廊模型,如圖 6 所示。這部分模型一般是排水管道和通風管道的接口處,在管廊網格模型中佔有必定的比重,在參數化過程當中要與通常直線的圓柱體形管廊模型作出區分。本
文使用二次貝賽爾曲線擬合彎管管廊構件,實驗對象爲如圖 6 所示的一段彎管圓形管線模型。
首先根據圓柱體模型參數求出兩個端面的圓心,兩個圓心做爲貝塞爾曲線的控制點 P0 和 P2,設其控制點爲 P1,該擬合模型的中軸線應知足如下二次貝塞爾曲線公式:
B( t ) = (1-t) P+ 2 t(1 −t) P +t P, t [ 0 , 1]
經過改變控制點的參數,若是彎管三維管廊模型上的點到該擬閤中軸線的距離最短,則可認爲是最佳擬合曲線,在進行參數化繪製的時候,因爲管廊模型的對稱性,彎管模型上的訂單到中軸線的距離即爲半徑,以一個端面爲圓心,該半徑畫圓,而後沿
着擬合的貝塞爾曲線進行拉伸,便可獲得該彎管模型的參數化拉伸體擬合模型。且因爲拉伸體的特性,該擬合模型的分割塊數也可以進行動態地調整,有效下降模型的三角網格數量。
3.2.3 中空複雜管廊網格模型參數化
針對如圖 8(a)所示的內部中空管廊拉伸體模型,採用上述的解決方案,首先進行整個模型的參數讀取,而後經過模型的幾何特徵分離其模型外部與內部參數,其邊緣提取的效果如圖 8(b)所示,在獲得了邊緣提取的結果以後,將模型區分爲 1 個大實心圓柱體管廊模型以及 7 個空心圓柱體三維管廊模型,對大的實心圓柱體形管廊模型進行布爾運算,參數化後的重繪的中空管廊模型如圖 8(c)所示。