黃興懷, 畢 翔, 周立國(guó)
(1.中國(guó)能源建設(shè)集團(tuán) 安徽省電力設(shè)計(jì)院有限公司,安徽 合肥 230601;2.合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230009)
?
基于VTK的工程地質(zhì)三維可視化中間件研究
黃興懷1, 畢 翔2, 周立國(guó)1
(1.中國(guó)能源建設(shè)集團(tuán) 安徽省電力設(shè)計(jì)院有限公司,安徽 合肥 230601;2.合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230009)
采用VTK技術(shù),探討工程地質(zhì)三維可視化技術(shù)的實(shí)現(xiàn),通過表面模型和GTP模型構(gòu)建地層模型,將虛擬鉆孔加入到三維模型的構(gòu)建中,有效地處理了地質(zhì)尖滅現(xiàn)象。結(jié)果證明:最終完成一套工程地質(zhì)三維可視化中間件,提供縮放、旋轉(zhuǎn)、平移、切割、剖面提取、鉆孔提取及土方量計(jì)算等功能接口,可以較方便地進(jìn)行二次開發(fā)。
三維地質(zhì);可視化工具(VTK);表面模型;GTP模型;虛擬鉆孔
目前成熟的三維可視化技術(shù)已經(jīng)應(yīng)用在礦產(chǎn)資源勘查、油氣勘探開發(fā)、煤田地質(zhì)勘探、礦山生產(chǎn)和管理及地質(zhì)災(zāi)害治理領(lǐng)域,而對(duì)于工程地質(zhì)三維可視化技術(shù)只表現(xiàn)在三維展示和簡(jiǎn)單的數(shù)據(jù)分析層面上[1]。
因此,本文結(jié)合工程地質(zhì)和巖土工程等學(xué)科的交叉性,探討開發(fā)一套采用VTK (Visualization Tool Kit) 三維可視化工具,基于鉆孔數(shù)據(jù)、物探數(shù)據(jù)及土工實(shí)驗(yàn)數(shù)據(jù)等基礎(chǔ)參數(shù),同時(shí)提供三維展示、圖形數(shù)據(jù)處理、數(shù)據(jù)分析及數(shù)據(jù)查詢等功能接口的三維可視化中間軟件,以方便用戶基于本中間件快速地進(jìn)行工程地質(zhì)三維軟件的二次開發(fā)。
VTK是一個(gè)開放資源的免費(fèi)三維可視化工具,它不僅支持對(duì)幾何體的顯示及渲染,還同時(shí)支持許多圖形和可視化算法及高級(jí)建模技術(shù),將常用算法封裝起來以類庫(kù)的形式提供給使用者,能較大地提高工作效率[2]。
VTK采用管道技術(shù)(也稱流水線)實(shí)現(xiàn)可視化,它包括可視化管道和圖形管道??梢暬艿烙糜跇?gòu)造幾何表達(dá),而后經(jīng)由圖形管道渲染成圖片[3]。
VTK定義14種基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),包括點(diǎn)、線、面、體等幾何元素, VTK數(shù)據(jù)結(jié)構(gòu)的表達(dá)特點(diǎn)是以點(diǎn)為基本元素,即不管多復(fù)雜的幾何單元聚集體,首先由點(diǎn)集組成基本幾何單元,再由基本幾何單元組成任意復(fù)雜的幾何體,能較好地表達(dá)工程地質(zhì)中三維剖面、二維剖面、單孔柱狀圖、地層線及土層分層線等屬性數(shù)據(jù)。因此,三維建模中的可視化數(shù)據(jù)結(jié)構(gòu)可直接使用VTK的數(shù)據(jù)結(jié)構(gòu)。
2.1 表面模型
表面模型是指通過表面信息描述空間對(duì)象,內(nèi)部是空的一種三維空間模型。這種模型的優(yōu)點(diǎn)是數(shù)據(jù)儲(chǔ)存量小,建模速度快,便于顯示和數(shù)據(jù)更新。但是,正是由于它側(cè)重于對(duì)象的視覺三維效果和建模的速度,使其難以進(jìn)行空間分析和操作。
本文研發(fā)的軟件中間件實(shí)現(xiàn)了表面模型,首先根據(jù)鉆孔數(shù)據(jù),將同一土層的上、下面運(yùn)用Delaunay三角網(wǎng)算法構(gòu)成一組三角網(wǎng),由上至下,構(gòu)成垂直分布的多組三角網(wǎng)(相鄰?fù)翆拥慕唤缑婀猛粋€(gè)三角網(wǎng))。然后求出每一組三角網(wǎng)的邊緣,同樣運(yùn)用Delaunay算法構(gòu)建土層的側(cè)面,稱之為側(cè)面三角網(wǎng),進(jìn)而封閉土層。為了實(shí)現(xiàn)土層的正確渲染和切割后自動(dòng)封閉,要求土層3個(gè)三角網(wǎng)(上、下面三角網(wǎng)和側(cè)面三角網(wǎng))中的每個(gè)三角形的法向量指向土層的外部。對(duì)于上、下面三角網(wǎng)較易實(shí)現(xiàn),而側(cè)面三角網(wǎng)由于是環(huán)形的,處理較繁瑣。本文處理方法如下:
(1) 在不考慮法向量的情況下,由側(cè)面三角網(wǎng)構(gòu)建側(cè)面對(duì)象,此時(shí)側(cè)面對(duì)象中的三角片面的法向量并不是統(tǒng)一由土層內(nèi)部指向外部。
(2) 由土層上、下三角網(wǎng)求出土層近似中心點(diǎn)P。
(3) 構(gòu)造一個(gè)由P指向側(cè)面三角網(wǎng)中的三角片面的重心的一個(gè)向量V。
(4) 遍歷側(cè)面對(duì)象中三角片面,若該三角片面法向量和V的夾角大于90°,則將其法向量取反。
2.2 實(shí)體模型
實(shí)體模型側(cè)重于三維空間體的表示,通過對(duì)體的描述實(shí)現(xiàn)三維空間目標(biāo)表示,與表面模型相比較,其數(shù)據(jù)結(jié)構(gòu)更為復(fù)雜,所要求的存儲(chǔ)空間也更大,但實(shí)體模型更適合于空間分析和操作。
本文研發(fā)的軟件中間件采用廣義三棱柱(generalized tri-prism,簡(jiǎn)稱GTP)實(shí)現(xiàn)實(shí)體模型,該模型可以使采集到的地質(zhì)勘探數(shù)據(jù)更容易生成緊密實(shí)際的地質(zhì)模型,能夠更加精細(xì)地表現(xiàn)和靈活地操作土層。GTP模型是一種真三維地質(zhì)建模體元模型,通過棱邊退化為金字塔或四面體模型,可以靈活表達(dá)斷層、褶曲等復(fù)雜構(gòu)造形態(tài),并具有易于擴(kuò)充的特點(diǎn)[4]。
圖1所示為GTP的3種形式,其中圖1(a)為標(biāo)準(zhǔn)的三棱柱體元,3條棱的高度都不為0。圖1(b)和圖1(c)分別是圖1(a)缺失1條棱和2條棱后的變體,這2種三棱柱體元存在于底層的尖滅處。
圖1 三棱柱體元
與表面模型一樣,在構(gòu)建GTP模型的時(shí)候,也要運(yùn)用Delaunay算法構(gòu)造三角網(wǎng),但是它除了構(gòu)建三角網(wǎng)之外,還需要在相鄰的層面之間構(gòu)建一系列三棱柱。
3.1 輔助鉆孔
雖然鉆孔數(shù)據(jù)中記錄了詳盡的信息,但初始鉆孔數(shù)據(jù)常存在地層編號(hào)重復(fù)、地層缺失等數(shù)據(jù)不一致及不完備的情況,所以在進(jìn)行建模和可視化之前,需要對(duì)鉆孔數(shù)據(jù)進(jìn)行一些必要的處理,稱之為鉆孔數(shù)據(jù)的預(yù)處理。
通過構(gòu)建輔助鉆孔,進(jìn)而完成鉆孔地層數(shù)據(jù)的補(bǔ)全,保證各鉆孔地層數(shù)據(jù)的層序完整性,為后續(xù)的三維建模和可視化處理做好準(zhǔn)備[5]。
3.2 虛擬鉆孔
本文所提的虛擬鉆孔是根據(jù)已有的鉆孔數(shù)據(jù),按一定規(guī)則構(gòu)建并參與三維建模,是與實(shí)際鉆孔無差別的一種鉆孔數(shù)據(jù)。
使用輔助鉆孔對(duì)實(shí)際鉆孔進(jìn)行預(yù)處理后,就可以構(gòu)建虛擬鉆孔,其構(gòu)建分為自動(dòng)構(gòu)建和人工手動(dòng)構(gòu)建。自動(dòng)構(gòu)建的原則是在原始鉆孔的基礎(chǔ)上先進(jìn)行三角網(wǎng)化,然后尋找三角形所有的邊,在每條邊的中間插入一個(gè)標(biāo)記為isvirsual=true的鉆孔[6]。如圖2所示,2個(gè)原始鉆孔,初始化三角網(wǎng)時(shí)直線連接,同屬一個(gè)三角形,然后在中間位置直接插入一個(gè)新的鉆孔。如果2個(gè)鉆孔點(diǎn)的高度均不為0,則取這2個(gè)鉆孔該層土層的中間值;如果2個(gè)鉆孔的土層高度有一個(gè)為0,則該土層的高度取0。
圖2 虛擬鉆孔自動(dòng)插入示意圖
手動(dòng)構(gòu)建是由用戶在二維剖面圖中根據(jù)經(jīng)驗(yàn)自主插入一個(gè)虛擬鉆孔,并可調(diào)節(jié)地質(zhì)各層高度,然后反饋到三維模型中,實(shí)現(xiàn)人工對(duì)三維模型的修正功能。圖3中標(biāo)有虛擬鉆孔字樣的鉆孔即為手動(dòng)添加。
圖3 手動(dòng)添加虛擬鉆孔
通過讓虛擬鉆孔參與地質(zhì)的三維建模,能夠有效地解決地質(zhì)尖滅問題,而且手動(dòng)構(gòu)建虛擬鉆孔,可以融合工程師的經(jīng)驗(yàn),對(duì)地質(zhì)三維模型進(jìn)行修正。
地質(zhì)三維建模完成后,運(yùn)用VTK作為三維圖形開發(fā)工具,本文研發(fā)成一套工程地質(zhì)三維可視化中間件,該中間件提供以下功能接口:① 自動(dòng)生成工程地質(zhì)三維模型,包括表面模型和GTP模型,具有尖滅處理能力;② 模型紋理渲染功能;③ 縮放、平移功能;④ 在地質(zhì)體的任意位置布置剖線,查看地質(zhì)體的任意剖面的功能;⑤ 任意平面切割,任意長(zhǎng)方體和四棱臺(tái)提取土方功能;⑥ 預(yù)定范圍土方計(jì)算功能;⑦ 虛擬鉆孔手動(dòng)插入及反向修改功能;⑧ 打點(diǎn)提取地質(zhì)數(shù)據(jù)功能[7];⑨ 通用三維模型(3dmax等)與三維地質(zhì)模型的疊加功能;⑩ 截圖、錄像輸出功能。
(1) 中間件結(jié)構(gòu)。中間件分為3D、2D顯示和數(shù)據(jù)讀取3個(gè)總模塊,如圖4所示。使用時(shí),將圖形顯示與數(shù)據(jù)結(jié)構(gòu)分離開,用于二維和三維交互的模塊為2DView和3DView,這2個(gè)圖形的顯示數(shù)據(jù)輸入為ReadData數(shù)據(jù)源。這樣,使一次ReadData初始化完成,即可用于2個(gè)控件使用,保證數(shù)據(jù)同步刷新。
圖4 總模塊示意圖
(2) 中間件功能。為了演示中間件接口的功能,本文設(shè)計(jì)并實(shí)現(xiàn)一個(gè)簡(jiǎn)單的演示程序,如圖5~圖7所示。
圖5 地層模型圖
圖6 切割及土方提取示意圖
圖7 為鉆孔和任意剖面提取示意圖
本文對(duì)工程地質(zhì)三維建模進(jìn)行討論,所提出的虛擬鉆孔概念,有效地解決了地質(zhì)尖滅的問題。通過運(yùn)用VTK作為三維圖形圖像顯示工具,開發(fā)一套工程地質(zhì)三維可視化中間件,實(shí)現(xiàn)對(duì)地層的三維顯示和操作。同時(shí)提供圖形數(shù)據(jù)處理、數(shù)據(jù)分析及數(shù)據(jù)查詢等功能接口,可以與其他專業(yè)軟件接口進(jìn)行跨專業(yè)數(shù)據(jù)融合和處理,以方便用戶基于中間件快速地進(jìn)行工程地質(zhì)三維軟件的二次開發(fā)。
[1] 王家偉,郭甲騰,張榮兵.含尖滅地層的地質(zhì)剖面圖自動(dòng)生成與2D/3D繪制[J].沈陽(yáng)建筑大學(xué)學(xué)報(bào)(自然科學(xué)版), 2012, 28(3):405~410.
[2] 劉玉芳,王潤(rùn)懷,宋金星.基于 VTK 的三維地層可視化探討[J].河南理工大學(xué)學(xué)報(bào)(自然科學(xué)版), 2009, 28(3):303~306.
[3] 高 琴,洪振剛,李朝暉,等.基于VTK的三維地質(zhì)建模方法研究[J].工程勘察, 2011(4):59~63.
[4] 徐 帥,孫豁然,穆太升,等.三維實(shí)體建模中礦巖尖滅線自動(dòng)生成系統(tǒng)的研究與實(shí)現(xiàn)[J].金屬礦山,2000(11):93~96.
[5] 陳建宏,周智勇,陳 綱,等.基于鉆孔數(shù)據(jù)的勘探線剖面自動(dòng)生成方法[J].中南大學(xué)學(xué)報(bào)(自然科學(xué)版),2005,36(3):486~490.
[6] 賀毅岳,耿國(guó)華,周明全,等.基于VTK的三維模型切割研究[J].計(jì)算機(jī)應(yīng)用研究,2010,27(11):4322~4327.
[7] 董 志.GeoEngine中基于多數(shù)據(jù)源三維地層半自動(dòng)建模技術(shù)的研究[D].北京:中國(guó)地質(zhì)大學(xué),2008.
2016-05-12;修改日期:2016-05-17
黃興懷(1973-),男,安徽安慶人,中國(guó)能源建設(shè)集團(tuán)安徽省電力設(shè)計(jì)院有限公司高級(jí)工程師.
TD672
A
1673-5781(2016)03-0303-03