隨著 WebBIM 和3D-GIS技術(shù)的大力發(fā)展,建筑模型的復(fù)雜度與構(gòu)件數(shù)量呈幾何倍數(shù)增長(zhǎng),其中管廊復(fù)雜網(wǎng)格是影響模型輕量化和在線渲染速率的一個(gè)關(guān)鍵性問(wèn)題。為有效減少管廊復(fù)雜網(wǎng)格模型的數(shù)據(jù)量及復(fù)雜度,本文針對(duì)一般圓柱體形管廊,復(fù)雜網(wǎng)格的彎管管廊模型及中空管廊網(wǎng)格模型,提出了一套輕量級(jí)參數(shù)化算法。該算法對(duì)場(chǎng)景中的管廊模型進(jìn)行參數(shù)化重繪并輔助以多細(xì)節(jié)層次等視覺(jué)優(yōu)化手段,以減輕 WebBIM 場(chǎng)景中的管廊模型渲染負(fù)擔(dān),其在擁有大量管廊模型的場(chǎng)景中應(yīng)用成功,具有較強(qiáng)的工程實(shí)踐意義。
近年來(lái),網(wǎng)絡(luò)技術(shù)的發(fā)展突飛猛進(jìn),人類正向高度信息化的社會(huì)邁進(jìn)。BIM在國(guó)內(nèi)建筑業(yè)形成一股熱潮,盡管擁有了政府和社會(huì)的大力支持,Web 端的 BIM 大規(guī)模場(chǎng)景應(yīng)用開發(fā)仍然面臨許多巨大的挑戰(zhàn):
一、網(wǎng)頁(yè)存儲(chǔ)瓶頸問(wèn)題:隨著 BIM場(chǎng)景規(guī)模的增加,建筑內(nèi)部空間結(jié)構(gòu)復(fù)雜度不斷提升,管廊結(jié)構(gòu)的模型體量不斷增加,BIM 數(shù)據(jù)未來(lái)可能達(dá)到城市級(jí)別(100 TB 以上),通常來(lái)說(shuō),PC 端的瀏覽器能夠使用的內(nèi)存僅為 1.5 至 2 GB,稍大的 BIM模型就可能會(huì)導(dǎo)致瀏覽器的崩潰。
二、計(jì)算渲染瓶頸問(wèn)題:傳統(tǒng)加載方式中,IFC構(gòu)件被逐一添加在場(chǎng)景中,管廊模型擁有的三角化面片數(shù)量多,導(dǎo)致整個(gè)初始加載速度慢,且場(chǎng)景中FPS 較低,瀏覽建筑模型容易出現(xiàn)明顯卡頓情況。
在以上問(wèn)題的基礎(chǔ)上,尤其是管廊管線這類構(gòu)件往往在城市建筑模型中占有了一定的比重,例如水管,通風(fēng)管道等,且建筑物內(nèi)部管廊模型排列往往具有一定的復(fù)雜性,優(yōu)化這部分管廊模型的參數(shù),能夠有效減少場(chǎng)景中的三角面片數(shù)量,幫助提升模型加載速率,對(duì)改善上述的兩個(gè)瓶頸問(wèn)題起到了積極的作用。
因此針對(duì)上述問(wèn)題,本文提出了一套三維管廊復(fù)雜網(wǎng)格參數(shù)化算法,首先通過(guò)語(yǔ)義分析和幾何分析,提取大規(guī)模 IFC 場(chǎng)景中的管廊網(wǎng)格模型構(gòu)件類。然后針對(duì)一般圓柱體形管廊網(wǎng)格模型,彎管管廊模型以及中空管廊模型三種不同的特征,對(duì)其在服務(wù)端
分類進(jìn)行參數(shù)化處理,并將參數(shù)結(jié)果返回給網(wǎng)頁(yè)端進(jìn)行渲染。為了降低網(wǎng)頁(yè)端的渲染負(fù)載,實(shí)例化管廊模型的同時(shí)輔助以基于 LOD 多細(xì)節(jié)層次技術(shù)的漸進(jìn)式自適應(yīng)渲染方法,有效降低場(chǎng)景中管廊模型部分的總數(shù)據(jù)量及其三角面片數(shù)量,加快場(chǎng)景初始加載時(shí)間以及提升場(chǎng)景總體加載的幀速率,為輕量化BIM 大規(guī)模管廊模型場(chǎng)景的在線可視化提供了支持。
1 相關(guān)研究
1.1 管廊的參數(shù)化原理
通常的直線管廊網(wǎng)格模型的構(gòu)造圖如圖 1 所示,具體渲染方法為:將直線三維管廊網(wǎng)格模型抽象為正圓柱體,管線中心抽象為正圓柱體的中軸線,管線中心線起止點(diǎn)為正圓柱體上下底面圓圓心,圓柱體半徑為管徑。
提取到了以上的管廊模型參數(shù)信息后,在瀏覽器 端 渲 染 時(shí) 可 以 利 用 Three.js 提 供 的THREE.Cylinder Geometry 對(duì)象對(duì)管廊進(jìn)行批量建模。利用 THREE.Cylinder Geometry 對(duì)象進(jìn)行圓柱體建模時(shí)可接收多個(gè)參數(shù), 而在實(shí)際建模過(guò)程中主要用到三個(gè)參數(shù), 分別是:頂面半徑、底面半徑以及圓柱體的高度, 分別對(duì)應(yīng)三位管線的半徑以及管線長(zhǎng)度。生成管線模型的幾何對(duì)象之后,還需利用 THREE.Material 為其貼上合適的紋理,通過(guò)THREE.Mesh(geometry,material)生成完整的管線段
模型。
1.2 管廊多細(xì)節(jié)層次技術(shù)(LOD)
LOD 的主要想法是降低復(fù)雜性,當(dāng)視點(diǎn)遠(yuǎn)離3D模型對(duì)象時(shí),根據(jù)人的視覺(jué)系統(tǒng),遠(yuǎn)處對(duì)象會(huì)變小或者變得模糊不清,這時(shí)我們可以使用該對(duì)象的簡(jiǎn)化版本。對(duì)象簡(jiǎn)化版本的實(shí)現(xiàn)多種多樣,通常是通過(guò)較少三角形的數(shù)據(jù)或者替代幾何模型的幾何特征和紋理來(lái)實(shí)現(xiàn)。不管簡(jiǎn)化版本的實(shí)現(xiàn)方法如何,其策略的最終結(jié)果是將一個(gè)相比原模型壓力較小的對(duì)象交給 GPU 去處理,降低渲染復(fù)雜度,提高場(chǎng)景加載的速率針對(duì)管廊網(wǎng)格模型,多細(xì)節(jié)層次技術(shù)主要調(diào)整的是參數(shù)化后的管廊網(wǎng)格切割塊數(shù),當(dāng)攝像機(jī)視角靠近的時(shí)候,切割塊數(shù)增多,三維管廊模型越精細(xì),而當(dāng)攝像機(jī)視角原理時(shí),可以減少模型的切割塊數(shù),管廊模型呈現(xiàn)較粗糙。
1.3 大規(guī)模 BIM模型在線實(shí)時(shí)渲染
“互聯(lián)網(wǎng)+”時(shí)代的到來(lái)為 BIM 信息的傳遞和共享提供了更為廣闊的舞臺(tái),“互聯(lián)網(wǎng)+BIM”的融合、發(fā)展也是勢(shì)不可擋。網(wǎng)頁(yè)瀏覽器是移動(dòng)互聯(lián)網(wǎng)上最為廣泛通用的信息共享平臺(tái),直接在網(wǎng)頁(yè)瀏覽器上將 BIM 場(chǎng)景可視化地再現(xiàn)出來(lái)就變得更有
吸引力。用戶們只需要點(diǎn)擊瀏覽網(wǎng)頁(yè)就可以訪問(wèn)大規(guī)模 BIM 場(chǎng)景與之交互。尤其是正在流行的HTML5/WebGL 提供了一種無(wú)插件安裝的 Web3D開發(fā)平臺(tái),這大大便捷了互聯(lián)網(wǎng) BIM 的可視化共享瀏覽,所以 WebBIM 在線可視化將成為“互聯(lián)
網(wǎng)+BIM 可視化”的主流發(fā)展趨勢(shì)。
但是由于大規(guī)模的 BIM 場(chǎng)景存在實(shí)時(shí)響應(yīng)速度慢、渲染能力弱、數(shù)據(jù)傳輸緩慢等問(wèn)題,WebBIM 在線可視化將會(huì)受到因網(wǎng)頁(yè)瀏覽器緩存受限而導(dǎo)致的存取不暢、尤其是管廊模型較多的大規(guī)模 BIM 建筑,數(shù)據(jù)量較大可能導(dǎo)致瀏覽器的癱瘓。因互聯(lián)網(wǎng)帶寬受限而導(dǎo)致的傳輸緩滯、因網(wǎng)頁(yè)瀏覽器渲染能力受限而導(dǎo)致的漫游延遲的影響,這些影響將會(huì)嚴(yán)重阻礙 WebBIM 大規(guī)模場(chǎng)景的在線實(shí)時(shí)可視化共享。因此,本文所研究的管廊復(fù)雜網(wǎng)格模型的參數(shù)化方法及其在線可視化技術(shù)能夠針對(duì)網(wǎng)頁(yè)的在線渲染問(wèn)題做出改善,具有重要的實(shí)踐意義。
綜上所述,本文的創(chuàng)新點(diǎn)主要體現(xiàn)在針對(duì)大規(guī)模 WebBIM 模型的加載和渲染瓶頸提出了一種基于管廊網(wǎng)格模型的參數(shù)化算法,能夠根據(jù)管廊網(wǎng)格模型不同的分類進(jìn)行參數(shù)化處理,在瀏覽器端采用一種基于 LOD 的漸進(jìn)式加載方式,緩解了瀏覽器
端的數(shù)據(jù)壓力,提升了模型的渲染效率,為擁有大規(guī)模三維管廊網(wǎng)格的 WebBIM 建筑模型的模型解析與在線渲染提供了新的優(yōu)化方向。
2 技術(shù)路線
本文所采用的技術(shù)路線如圖 3 所示。在服務(wù)器端,需要完成工作包括從語(yǔ)義分析以及幾何分析角度進(jìn)行管廊模型構(gòu)件的提取,以及基于圓柱體形管廊網(wǎng)格構(gòu)件的參數(shù)化算法研究,進(jìn)一步拓展彎管三維管廊模型的參數(shù)化算法以及基于布爾運(yùn)算的中空復(fù)
雜管廊模型的參數(shù)化算法。
3 關(guān)鍵技術(shù)
整個(gè)三維管廊模型對(duì)象的抽取過(guò)程如圖 4 中所示,從構(gòu)件語(yǔ)義分析提取構(gòu)件是從以上多種不同的IFC 構(gòu)件類型中,提取可能是管廊管片管線等圓柱體型模型的構(gòu)件的過(guò)程。而從語(yǔ)義分析角度,往往可能存在誤差,比如把非圓柱體形的拉伸體模型誤認(rèn)為是管廊模型。
在此基礎(chǔ)上,從幾何角度分析則是從三維管廊模型的形態(tài)上對(duì)構(gòu)件進(jìn)行分析,判斷構(gòu)件是否具有圓柱體形構(gòu)件包圍盒的特征,且根據(jù)模型上的頂點(diǎn)信息能夠計(jì)算出上下底面與中心軸等參數(shù),進(jìn)而歸納其類型,最終提取出了一類可以進(jìn)行管廊網(wǎng)格參數(shù)化處理的目標(biāo)模型。
3.2 三維管廊網(wǎng)格模型參數(shù)化
3.2.1 圓柱體形管廊網(wǎng)格模型參數(shù)化
由此可知,對(duì)于一個(gè)原始的復(fù)雜管廊網(wǎng)格模型,其往往有上百個(gè),甚至上千頂點(diǎn),同時(shí)三角網(wǎng)格數(shù)量較多。針對(duì)大型建筑模型,一旦管廊模型的數(shù)據(jù)量較大,對(duì)模型的初始渲染和加載效率一定會(huì)存在較大的影響,因此,本文針對(duì)圓柱體形管廊網(wǎng)格模型,提出了參數(shù)重繪的方式,使用 ThreeJS 的圓柱體進(jìn)行實(shí)例化,能夠有效簡(jiǎn)化模型數(shù)據(jù)量,且提升場(chǎng)景渲染速率。
本文所使用的一般圓柱體形管廊模型參數(shù)化是從原始管廊網(wǎng)格模型的頂點(diǎn)以及三角面片信息中有效提取出其上下底面圓的圓心以及半徑,并且求出其中軸線的長(zhǎng)度以及方向,并能夠在場(chǎng)景中重繪出該構(gòu)件的過(guò)程。擬合后的標(biāo)準(zhǔn)化圓柱體與源
數(shù)據(jù)對(duì)比如圖 5(a)源數(shù)據(jù)-非標(biāo)準(zhǔn)化三角化側(cè)面和5(b)擬合后-標(biāo)準(zhǔn)化三角化側(cè)面所示。由于使用了圓柱體模型的參數(shù)化方式,重繪圓柱體需要的數(shù)據(jù)量因此大大降低。
由于原始管廊網(wǎng)格模型存在三角化方式無(wú)規(guī)律,如圖 5(c)源數(shù)據(jù)-非標(biāo)準(zhǔn)化三角化底面和 5(d)擬合后-標(biāo)準(zhǔn)化三角化底面所示,三維GIS參數(shù)化的過(guò)程也是一個(gè)將管廊網(wǎng)格模型標(biāo)準(zhǔn)化的過(guò)程,為后續(xù)圓柱體形管廊構(gòu)件的在線應(yīng)用提供基礎(chǔ)。上下底面的分
割塊數(shù)決定著圓柱體模型在場(chǎng)景中的精細(xì)程度。
3.2.2 彎管管廊網(wǎng)格模型參數(shù)化
除了一般的圓柱體形管廊模型外,建筑模型中還存在較大一部分的彎管管廊模型,如圖 6 所示。這部分模型通常是排水管道和通風(fēng)管道的接口處,在管廊網(wǎng)格模型中占有一定的比重,在參數(shù)化過(guò)程中要與一般直線的圓柱體形管廊模型做出區(qū)分。本
文使用二次貝賽爾曲線擬合彎管管廊構(gòu)件,實(shí)驗(yàn)對(duì)象為如圖 6 所示的一段彎管圓形管線模型。
首先根據(jù)圓柱體模型參數(shù)求出兩個(gè)端面的圓心,兩個(gè)圓心作為貝塞爾曲線的控制點(diǎn) P0 和 P2,設(shè)其控制點(diǎn)為 P1,該擬合模型的中軸線應(yīng)滿足以下二次貝塞爾曲線公式:
B( t ) = (1-t) P+ 2 t(1 ?t) P +t P, t ?[ 0 , 1]
通過(guò)改變控制點(diǎn)的參數(shù),如果彎管三維管廊模型上的點(diǎn)到該擬合中軸線的距離最短,則可認(rèn)為是最佳擬合曲線,在進(jìn)行參數(shù)化繪制的時(shí)候,由于管廊模型的對(duì)稱性,彎管模型上的訂單到中軸線的距離即為半徑,以一個(gè)端面為圓心,該半徑畫圓,然后沿
著擬合的貝塞爾曲線進(jìn)行拉伸,即可得到該彎管模型的參數(shù)化拉伸體擬合模型。且由于拉伸體的特性,該擬合模型的分割塊數(shù)也能夠進(jìn)行動(dòng)態(tài)地調(diào)整,有效降低模型的三角網(wǎng)格數(shù)量。
3.2.3 中空復(fù)雜管廊網(wǎng)格模型參數(shù)化
針對(duì)如圖 8(a)所示的內(nèi)部中空管廊拉伸體模型,采用上述的解決方案,首先進(jìn)行整個(gè)模型的參數(shù)讀取,然后通過(guò)模型的幾何特征分離其模型外部與內(nèi)部參數(shù),其邊緣提取的效果如圖 8(b)所示,在得到了邊緣提取的結(jié)果之后,將模型區(qū)分為 1 個(gè)大實(shí)心圓柱體管廊模型以及 7 個(gè)空心圓柱體三維管廊模型,對(duì)大的實(shí)心圓柱體形管廊模型進(jìn)行布爾運(yùn)算,參數(shù)化后的重繪的中空管廊模型如圖 8(c)所示。
3.3 漸進(jìn)式 LOD 在線實(shí)時(shí)渲染
針對(duì)一般圓柱體形管廊網(wǎng)格模型,自適應(yīng)調(diào)整的是其端面的分割塊數(shù),從 LOD0的 3 塊,到 LOD1 的 8 塊,再到 LOD2 的 16 塊。針對(duì)彎管管廊模型,自適應(yīng)調(diào)整的是中軸線的分割塊數(shù),從 LOD0 的 5 塊,到 LOD1 的 10 塊,再到LOD2 的 20 塊,可以看到模型的網(wǎng)格越來(lái)越密集。而針對(duì)中空管廊網(wǎng)格模型,在 LOD0 以及 LOD1的階段,即距離攝像機(jī)較遠(yuǎn)時(shí),渲染中空管廊模型時(shí)只按照?qǐng)A柱體形管廊進(jìn)行渲染,不進(jìn)行布爾運(yùn)算,遠(yuǎn)處看到的是一般圓柱體形管廊網(wǎng)格模型,只在攝像機(jī)靠近模型達(dá)到 LOD2 距離范圍內(nèi)時(shí),渲染中空的管廊網(wǎng)格模型,該步驟可以優(yōu)化渲染效率,提高場(chǎng)景 FPS,降低瀏覽器的負(fù)載。
為了減少 WebBIM 模型場(chǎng)景的總數(shù)據(jù)量以及提升在線渲染效率,本文提出了一套管廊復(fù)雜網(wǎng)格模型參數(shù)化方法,對(duì)擁有大量管廊網(wǎng)格的 BIM 模型首先通過(guò) IFC 解析,經(jīng)過(guò)語(yǔ)義分析和幾何分析的手段,提取出能夠進(jìn)行管廊模型參數(shù)化的類。然后
針對(duì)一般圓柱體形管廊模型,彎管管廊模型以及復(fù)雜中空管廊模型均提出了參數(shù)化方案并驗(yàn)證其有效性。最后在網(wǎng)頁(yè)端使用了基于 LOD 的輕量化漸進(jìn)式渲染模式,輔助以基于管廊參數(shù)化結(jié)果的切割模型應(yīng)用。
原文:http://m.rfhs888.com/blog/index.php/article/15.html