吳紅燕,張學(xué)全
(1.武昌理工學(xué)院 信息工程學(xué)院,湖北 武漢 430223;2.武漢大學(xué) 資源與環(huán)境學(xué)院,湖北 武漢 430079)
虛擬現(xiàn)實(shí)技術(shù)(virtual reality,VR)是近年來(lái)發(fā)展極為迅速的計(jì)算機(jī)技術(shù),具有較強(qiáng)的三維沉浸感和交互性,對(duì)于現(xiàn)實(shí)仿真和場(chǎng)景模擬具有重要的意義。地下管網(wǎng)是城市規(guī)劃、建設(shè)和管理的重要基礎(chǔ)信息,也是城市基礎(chǔ)設(shè)施建設(shè)管理工作中尤為重要的一環(huán)[1]。管網(wǎng)三維自動(dòng)建模能夠快速構(gòu)建VR三維場(chǎng)景,逼真地展現(xiàn)管網(wǎng)的形態(tài)和地下分布,對(duì)于管理和維護(hù)管網(wǎng)設(shè)施具有重要作用。當(dāng)前VR技術(shù)和數(shù)字城市技術(shù)都向精細(xì)化和大場(chǎng)景兩個(gè)方向發(fā)展[2]。因此,快速精細(xì)地構(gòu)建大范圍的地下管網(wǎng)三維虛擬場(chǎng)景顯得尤為重要。
針對(duì)基于VR的管網(wǎng)三維建模,國(guó)外較早地開展了相關(guān)研究工作并得到了實(shí)際應(yīng)用。ESRI公司推出的ArcFM(arc facility manager)可以為市政、電力、供水等部門合力規(guī)劃、設(shè)計(jì)和維護(hù)電力、煤氣以及給排水等地下管網(wǎng)[3]。隨著建筑信息模型(building information modeling,BIM)的研究,基于BIM的三維管網(wǎng)建模得到廣泛應(yīng)用[4]。國(guó)內(nèi)關(guān)于三維管網(wǎng)系統(tǒng)的研究起步較晚,但也已經(jīng)有很多成果,主要可以分為三種類型:一是基于AutoCAD、ArcGIS、Skyline、CityMaker等國(guó)內(nèi)外大型三維地理信息系統(tǒng)軟件平臺(tái)進(jìn)行二次開發(fā)的管網(wǎng)系統(tǒng)[5-7],二是基于OSG、VTK、OGRE等開源三維軟件平臺(tái)開發(fā)的管網(wǎng)系統(tǒng)[8-10],三是基于OpenGLDirect 3D等圖形API構(gòu)建的三維地下管網(wǎng)系統(tǒng)[11-12]。綜合研究以上管網(wǎng)系統(tǒng),主要存在兩個(gè)問題:(1)管網(wǎng)模型不夠精細(xì),管網(wǎng)模型之間不能較好地銜接。已有的三維管道系統(tǒng)中,管道接頭通常采取調(diào)用標(biāo)準(zhǔn)件模型庫(kù)的方法。由于管道接頭標(biāo)準(zhǔn)件模型庫(kù)是三維建模人員事先根據(jù)相關(guān)形狀、尺寸、朝向等屬性建立的一套接頭模型,而地下管網(wǎng)矢量數(shù)據(jù)中形狀、尺寸、朝向等屬性具有不確定性,因此調(diào)用標(biāo)準(zhǔn)模型庫(kù)往往造成接頭模型與待連接管道不匹配的問題,存在明顯的局限性。(2)大范圍三維地下管網(wǎng)建模和渲染效率較低。由于管網(wǎng)中很多部件需要手工建模完成,需要消耗大量的人力。另外,不同的模型相互獨(dú)立,很多資源(如紋理等)不能共用,導(dǎo)致管網(wǎng)數(shù)據(jù)量增加。
針對(duì)以上問題,文中提出一種基于VR的管網(wǎng)三維自動(dòng)模型方法。通過數(shù)據(jù)處理提取管網(wǎng)建模參數(shù)信息,并根據(jù)金字塔四叉樹劃分將數(shù)據(jù)分布存儲(chǔ)到對(duì)應(yīng)的瓦片索引XML文件中。當(dāng)用戶漫游到管網(wǎng)時(shí),動(dòng)態(tài)載入瓦片索引文件并快速自動(dòng)建模,不僅實(shí)現(xiàn)了管道和接頭的自動(dòng)建模,而且能夠流暢地漫游大范圍地下管網(wǎng)三維場(chǎng)景。
根據(jù)管網(wǎng)的幾何屬性,可以將管網(wǎng)模型劃分為管道模型和管道接頭模型。其中管道包括圓管和方管,管道接頭包括二通、三通和四通模型。
基于3D-GIS平臺(tái)進(jìn)行管網(wǎng)三維自動(dòng)建模,流程如圖1所示。
圖1 管網(wǎng)自動(dòng)建模流程
先對(duì)地下管網(wǎng)矢量數(shù)據(jù)進(jìn)行特征點(diǎn)采樣和四叉樹瓦片分割,然后基于瓦片索引數(shù)據(jù)構(gòu)建三角網(wǎng)模型和紋理貼圖,最后將其從局部坐標(biāo)系轉(zhuǎn)換到三維GIS全局坐標(biāo)系中。
城市地下管網(wǎng)的矢量數(shù)據(jù)通常包含有幾萬(wàn)甚至幾十萬(wàn)個(gè)管線和管點(diǎn),構(gòu)建Mesh三角網(wǎng)都包含上百個(gè)三角形,這樣的數(shù)據(jù)量是極為龐大的,無(wú)論是計(jì)算機(jī)內(nèi)存還是渲染流水線都難以滿足實(shí)時(shí)渲染的需求。因此文中基于四叉樹動(dòng)態(tài)調(diào)度策略實(shí)現(xiàn)管網(wǎng)動(dòng)態(tài)自動(dòng)建模。
圖2 四叉樹組織示意
如圖2所示,四叉樹空間索引的基本思想是將待研究的地理空間范圍按照遞歸的方式進(jìn)行劃分,將劃分的結(jié)果按照四叉樹的層次結(jié)構(gòu)進(jìn)行存儲(chǔ),樹的葉子節(jié)點(diǎn)用于保存實(shí)際地物實(shí)體[13]。在構(gòu)建地下管網(wǎng)模型之前,首先對(duì)管網(wǎng)矢量數(shù)據(jù)進(jìn)行處理,包括數(shù)據(jù)采樣和四叉樹剖分?;谒牟鏄浞指睿瑢⒐芫W(wǎng)矢量不同要素劃分到不同的四叉樹瓦片中,并提取矢量數(shù)據(jù)的幾何和屬性信息,將三維建模相關(guān)的參數(shù)存儲(chǔ)到對(duì)應(yīng)的瓦片索引文件中,如圖3所示。當(dāng)三維GIS平臺(tái)進(jìn)行動(dòng)態(tài)漫游時(shí),根據(jù)當(dāng)前視點(diǎn)的比例和范圍動(dòng)態(tài)讀取四叉樹索引文件并進(jìn)行快速建模,同時(shí)銷毀內(nèi)存中原有的管網(wǎng)模型,從而優(yōu)化了系統(tǒng)內(nèi)存分配,實(shí)現(xiàn)了大范圍地下管網(wǎng)場(chǎng)景仿真。
圖3 四叉樹瓦片索引文件
文中基于管道中心軸線和縱向模板平移的方法構(gòu)建管道,具體思路為:假設(shè)給定一個(gè)二維圖形,例如圓形或矩形,是該圖形的中心點(diǎn)沿著給定的管道中心軸線運(yùn)動(dòng),在運(yùn)動(dòng)過程中該圖形所在平面與中心軸線的切線垂直,該圖形在空間中的運(yùn)動(dòng)軌跡則為管道的三角網(wǎng)頂點(diǎn)坐標(biāo)。
圖4 管線三角網(wǎng)頂點(diǎn)示意
如圖4所示,在圓環(huán)C沿著管道中心軸線MN的運(yùn)動(dòng)過程中,圓環(huán)每次前進(jìn)一段距離,就需要記錄圓環(huán)上點(diǎn)所對(duì)應(yīng)的空間位置信息。根據(jù)需要構(gòu)網(wǎng)的管道頂點(diǎn)的空間分布規(guī)律可以直接指定相鄰兩個(gè)圓環(huán)的構(gòu)網(wǎng)規(guī)律,則任何兩個(gè)相鄰的圓環(huán)按照這種規(guī)律構(gòu)建起來(lái)的三角網(wǎng)便在空間組成了一個(gè)管道三角網(wǎng)。假設(shè)存在任意一條管線要素?cái)?shù)據(jù),按照上面的三角網(wǎng)頂點(diǎn)計(jì)算算法計(jì)算得到n個(gè)空間圓環(huán)C1,C2,…,Cn。則三維管道三角網(wǎng)構(gòu)網(wǎng)算法步驟為:
(1)從第一個(gè)圓環(huán)Ci開始,依次選相鄰兩個(gè)圓環(huán),對(duì)兩個(gè)圓環(huán)上所屬頂點(diǎn)進(jìn)行構(gòu)網(wǎng)。假設(shè)圓環(huán)Ci上的點(diǎn)為Ci,1,Ci,2,…,Ci,n,圓環(huán)Ci+1上的點(diǎn)為Ci+1,1,Ci+1,2,…,Ci+1,n,根據(jù)Delaunay[14]三角網(wǎng)算法,構(gòu)網(wǎng)規(guī)則如圖5所示。
圖5 三角網(wǎng)側(cè)面展開
(2)將計(jì)算得到的三角形依次存儲(chǔ),待所有三角形生成完畢,所得三角形集合即管道三角網(wǎng),將其轉(zhuǎn)換成為Mesh對(duì)象,得到管線模型Mesh,如圖6所示。
圖6 管道Mesh示意
考慮到已有的直管三維建模方法,用微分的方法將彎管分割為多個(gè)直管段來(lái)模擬。彎管自動(dòng)建模的原理是將彎管劃分為多段,每段用直管建模的方式建立斜棱柱進(jìn)行模擬,最后將各段模型合并即為彎管。如圖7所示,其中彎管起點(diǎn)為E,終點(diǎn)為F,彎管圓弧半徑為R,夾角為α,切片數(shù)為n。
圖7 彎管建模
構(gòu)建彎管三角網(wǎng)的具體過程如下:
(1)將彎管EF分為n段,其中第1段為O1O2,O1O和O2O的夾角為α/n。構(gòu)建以O(shè)O1為x軸,垂直于OO1設(shè)為y軸的局部坐標(biāo)系。則第i個(gè)點(diǎn)的坐標(biāo)為:
(1)
(2)將O1O2當(dāng)作直管處理,依次計(jì)算以O(shè)1和O2為圓心的斜截面圓上的采樣點(diǎn)坐標(biāo),方法與直管相同。
(3)根據(jù)O1和O2斜截面頂點(diǎn)坐標(biāo),構(gòu)建斜棱柱三角網(wǎng)模型,方法與直管模型類似。
(4)依次計(jì)算n個(gè)斜棱柱最后合并。
地下管網(wǎng)不僅包括管道,還有各種管道接頭。常見的管道接頭包括二通(彎頭)、三通(T型、Y型等接頭)和四通。
根據(jù)已有的直管和彎管自動(dòng)構(gòu)網(wǎng)方法,接頭可以分解為多個(gè)直管和彎管來(lái)處理,如圖8所示。二通,也稱為彎頭,即連接兩段管道的部分,可以將它分解為半徑稍大于待連接管道的兩段直管和一段彎管。三通是連接三段管道之間的接頭,可以將三通分解為半徑稍大于待連接管道的一段直管和一個(gè)二通。四通,即連接四段管道之間的接頭,可以將四通分解為兩個(gè)半徑稍大于待連接管道的二通來(lái)處理。
圖8 接頭模型分解示意
對(duì)于二通而言,待連接的管道一般尺寸相同,但三通和四通各段則不一定相同。以三通為例,難點(diǎn)在于獲取待連接三段中哪兩段構(gòu)成一個(gè)二通,另一段為直管。一般而言,三通包括一個(gè)主管道和一個(gè)次管道。其中主管道用二通模擬建模,次管道用直管模擬建模。為了判斷主次管道需要比較三段管線的幾何尺寸和屬性信息。滿足以下條件的兩段管線末端用二通相連:(1)兩段管線性質(zhì)相同,例如都是給水管道;(2)兩段管線幾何尺寸相同,即都為圓管或方管,且橫截面尺寸相同。
運(yùn)用以上接頭構(gòu)網(wǎng)方法創(chuàng)建的二通、三通和四通三角網(wǎng)模型如圖9所示,均存在各分解部分內(nèi)部交叉的情況。對(duì)于一般的管道仿真系統(tǒng),完全可以忽視模型內(nèi)部的交叉多余面,并不影響可視化效果。而對(duì)于需要模擬管道內(nèi)部,進(jìn)行管道流量分析等,則需要裁剪接頭內(nèi)部交叉面。
圖9 管道接頭三角網(wǎng)
紋理貼圖是虛擬現(xiàn)實(shí)中增強(qiáng)場(chǎng)景真實(shí)感的技術(shù)基礎(chǔ)[15]。它是將一幅圖像映射到多邊形表面,能夠使該多邊形發(fā)生變化或繪制時(shí),映射到多邊形表面的圖像也相應(yīng)地做出改變。由于管道的紋理具有重復(fù)特性,選用REPEAT方式進(jìn)行貼圖。設(shè)一個(gè)管道側(cè)面展開,長(zhǎng)度分段為L(zhǎng),管線橫截面圓周的分段為H,若橫縱方向紋理貼圖的數(shù)目分別為m和n,那么位置(i,j)的紋理坐標(biāo)為:
(2)
實(shí)驗(yàn)數(shù)據(jù)選用了福州市地下管網(wǎng)實(shí)測(cè)矢量數(shù)據(jù),數(shù)據(jù)為shapefile矢量數(shù)據(jù),包括管線和管點(diǎn)兩種幾何類型。實(shí)驗(yàn)數(shù)據(jù)覆蓋福州市主城區(qū),范圍介于北緯26.041 1°~26.067 8°,東經(jīng)119.236 5°~119.269 2°。管線類型主要包括給水管道、雨水管道、電力管道和電信管道四種,包括15 000多條管線段,10 000多個(gè)管點(diǎn),數(shù)據(jù)量大,數(shù)據(jù)類型復(fù)雜。
實(shí)驗(yàn)硬件環(huán)境:CPU為Intel Core i3,內(nèi)存4G,顯卡NVIDIA GeForce GT 240;系統(tǒng)為Windows 10 X64,軟件開發(fā)語(yǔ)言為Visual C#語(yǔ)言和DirectX 9.0 SDK,開發(fā)環(huán)境為Visual Studio 2010,基于開源三維GIS平臺(tái)WorldWind開發(fā)。
利用基于VR的地下管網(wǎng)三維自動(dòng)建模[16]方法開發(fā)的福州市三維地下管網(wǎng)虛擬仿真系統(tǒng)各部分自動(dòng)建模成果如圖10所示,整體三維場(chǎng)景效果如圖11所示。從圖中可以看出,地下管網(wǎng)模型較為精細(xì),管道之間銜接良好,紋理較為逼真。
圖10 地下管網(wǎng)自動(dòng)建模各部分成果
圖11 地下管網(wǎng)系統(tǒng)整體效果
三維地下管網(wǎng)虛擬仿真系統(tǒng)相關(guān)運(yùn)行參數(shù)如表1所示。實(shí)驗(yàn)參數(shù)結(jié)果表明,管網(wǎng)三維場(chǎng)景渲染效率在30幀以上,內(nèi)存在400 M以下,系統(tǒng)運(yùn)行流暢穩(wěn)定。因此,提出的基于VR的地下管網(wǎng)三維自動(dòng)建模方法穩(wěn)定可靠,管網(wǎng)模型可視化效果較好,管道銜接精確無(wú)誤,可以流暢地實(shí)現(xiàn)大范圍城市地下管網(wǎng)的三維虛擬仿真。
表1 三維地下管網(wǎng)系統(tǒng)運(yùn)行參數(shù)
研究基于VR的管網(wǎng)三維自動(dòng)建模方法對(duì)于直觀高效地管理維護(hù)城市地下管網(wǎng)設(shè)施和模擬施工場(chǎng)景具有重要的意義。提出的管網(wǎng)三維自動(dòng)建模方法可以快速地構(gòu)建大范圍地下管網(wǎng)虛擬場(chǎng)景,管網(wǎng)模型精確美觀,管道之間銜接良好。該研究成果在城市地下建設(shè)、城市災(zāi)害管理和智慧城市等方面具有重要的實(shí)際應(yīng)用價(jià)值。但文中只研究了管道和管道之間最基本的接頭建模,對(duì)于閥門、水表、井室等銜接方式的三維建模還有待進(jìn)一步研究。