,,,
(1.中國地質大學(武漢)數學地質遙感地質研究所,湖北 武漢 430074; 2.中交第二公路勘察設計研究院有限公司,湖北 武漢 430052)
在工程地質中,地質信息的直接表達多借助于地表地形和地下地層,而地表地形和地下地層的顯示和分析都局限于二維圖,但二維圖所包含的信息量有限,描述一定的空間位置關系需要多張二維圖(徐元進等,2007),對直接、全面、準確分析工程設施周圍地表自然形態和地下地質情況造成一定的困難(朱大培等,2001)。三維圖形的應用使傳統二維靜態平面地形和平面地層向虛擬三維空間方向發展,實現工程設施周圍地表地形及地下地層的三維模擬,能夠最大限度地增強工程地質分析的直觀性和準確性,這對實際工程設計和建設具有重要的參考意義。
利用三維圖表達工程地質的地表地形和地下信息得到了很多專家學者的重視。許國等(2013)利用GOCAD建立的三維地質可視化模型成功應用于水電巖土工程中;朱良峰等(2012)提出了工程地質空間多場耦合構模技術,并在三維地質建模和可視化的實例應用中取得了良好的效果;徐文杰等(2007)使用CAD軟件完成了云南某高速公路周圍工程地質體的三維模型;熊祖強等(2007a)采用TIN模型,借助GIS 技術,開發了工程地質三維建模及分析系統;李建華等(2003)提出了一種面向對象的三維矢量與柵格混合模型,對工程地質研究的主要對象進行了三維空間建模。從以上研究可以看出,三維模型及其可視化技術已成為工程地質應用的重要手段。
本研究使用開源的三維造型引擎OpenCASCADE(OCC),進行工程地質中相關功能的開發。OCC是由法國Matra Datavision公司推出的面向對象的圖形開發包,并提供針對三維圖形開發處理的多種算法,多用于解決CAD系統、仿真應用程序、三維建模程序等的三維幾何造型問題。OCC擁有強大的三維建模功能,并提供了點、線、面、體和復雜形體的顯示和交互操作,利用OCC可實現紋理、光照、圖元填充、渲染等圖形操作和放大、縮小、旋轉等動態操作(丁偉等,2010)。
利用OCC三維圖形建模技術,結合工程設施實例——橋梁工程,模擬了橋梁周圍地表地形和地下地層三維模型,并在VC++環境下開發了相應的三維可視化平臺。這項研究的獨特之處是利用高度逼真的曲面模擬技術建立連續、光滑、細膩的地形和地層層面表面模型,在相同數據量的基礎上,這是傳統的三角網建模技術難以做到的。
三維地表模型模擬多基于數字地面模型(DTM)。DTM是描述地面特征空間分布有序數值陣列,帶有空間位置特征和地表屬性特征描述。DTM可通過地表等高線及地表屬性多邊形信息,采用適當等高線內插擬合方法,生成真實表述地表實際特征的數字高程模型(DEM)(萬建華等,2005)。利用區域DEM數據和地表已知點高程,對地表進行三維構建。
地表高程數據除了地形圖中的DEM外,還有野外實測高程數據。野外數據一般都是橋梁附近鉆孔實測的地表高程值,因而具有點間距小、范圍小、精度較高的特點。為確保三維地表模型模擬的真實性,首先獲取地形圖中的DEM值,然后使用精度較高的野外實測地形高程數據對地形圖中相同范圍的DEM值進行數據合并,得到地表離散高程點數據。
地表離散高程點數據中,DEM數據以等高線為基準進行獲取,用等高線獲取的DEM數據有2個較為明顯的缺點:一個是等高線的臺階痕跡造成DEM高程點數據的臺階痕跡分布;另一個是等高線的不均勻性造成DEM高程點數據的不均勻分布,這2個缺點導致DEM一些區域的數據很密集,一些區域的數據很稀少。傳統的三角網建模雖具有高精度、易于處理地性線(如斷裂線、構造線等)等特點(潘勝玲等,2007;張敏等,2009;毛先成等,2013),但在數據密集區域會出現三角網數量太多,影響程序運行速度(宋效東等,2012;余淑娟等,2013);并且隨著圖形的放大,特別是數據稀少區域三角網形態變得清晰(圖1),地表造型是不光滑連續的,影響整體效果。

圖1 三角網法三維地表圖
為了避免因插值增加計算量、因取值降低精度,本研究使用原始DEM數據,通過填充曲面進行模擬,這是OCC提供的一種先進曲面建模技術,也叫空洞填充、約束填充。該方法在生成曲面時需滿足幾個約束條件。
(1) 點約束。曲面必須通過給定的點。
(2) 點約束與相切約束,還有給定曲率(可選項),加上相對于另一個曲面的Gn(表示2個幾何對象的實際連續程度)連續要求。
(3) 曲線約束。曲面必須通過給定的曲線。
(4) 具有相切約束的曲線,加上相對于另一個曲面的Gn連續要求。
構建填充曲面的主算法是OCC中的 GeomPlate_BuildPlateSurface類庫所包含的曲面建模算法,算法首先利用原始數據的空間坐標在平面(這里是指XY平面)上投影生成初始平面,然后通過給定點約束條件對應的初始平面投影坐標約束生成曲面模型。使用OCC曲面建模方法構建地表模型,只需要有限的高程點(高程點的順序沒有要求),不需要其他更多的地表面信息,當遇到復雜地表面或者高程點數據不完整(存在數據疏密差別較大、數據空洞)時,使用該方法更具有優勢。該方法建模結果如圖2,從圖2中可看出,曲面建模所得三維地表模型在連續程度、光滑度、細膩度上,效果明顯好于圖1。

圖2 OCC曲面建模技術三維地表圖
填充曲面建模核心代碼如下:
//myPlane為初始平面
Plate_PinpointConstraint PCst(pntXY,aVec.XYZ());//點約束
myPlate.Load(PCst);// myPlate為Plate_Plate對象
Handle(GeomPlate_Surface) myPlateSurf=new GeomPlate_Surface(myPlane,myPlate);
GeomPlate_MakeApprox aMKS(myPlateSurf,Precision::Approximation(),4,7,0.001,0);
myGround=aMKS.Surface();
三維地層建模是建立在以巖(土)性為要素的單一體劃分的基礎之上的(王純祥等,2003)。三維地層構建的原始數據大多是鉆孔數據,邏輯基礎是地層劃分,因此,準確模擬橋梁地下三維地層模型就需要地質鉆孔、地質分層等相關地學信息。
地層是地質實體和地質構造賦存的物質基礎,是在一定地質時期內形成的層狀堆積物或巖石(張渭軍等,2006),簡單的地層是按一定的層理在空間范圍內連續分布,相鄰的地層之間由地層接觸面(每個地層的層底面或相鄰下伏地層的層頂面都是地層接觸面)加以區分,同一地層具有相同的巖性特征,不同地層依據巖性不同按地層層序垂向疊加,這些特征是進行地層劃分和地層三維模擬的邏輯基礎。
地層劃分主要依據鉆孔資料,鉆孔資料直接反映地下巖(土)層的分布狀況。地層劃分應當建立在適當的地質解釋方法理論之上(賀懷建等,2002),根據鉆孔資料,通過解譯、推斷來確定地層的空間分布。地層劃分的主要步驟如下。
(1) 分析所有鉆孔資料,確定研究區域的鉆孔地層總數以及層間空間位置和接觸關系。將研究區所有鉆孔資料中鉆孔所通過巖(土)層層數最大、沉積層序最完整的鉆孔地層層數作為研究區地層總數,根據鉆孔地層巖性不同及鉆孔地層空間位置分布,巖性相同并在垂直空間上位置相近的鉆孔看作一層,然后依據巖性的垂向層序關系(即鉆孔所通過巖(土)層的上下關系)對所有鉆孔分層排序,確定鉆孔地層分層順序。
(2) 處理缺失的鉆孔地層。按照鉆孔地層分層順序,參照步驟(1) 所確定層數最大、沉積層序最完整的鉆孔(后文稱為標準鉆孔),與標準鉆孔逐個比較,判斷鉆孔地層是否缺失,如果某個鉆孔中所有地層巖(土)層與標準鉆孔的地層巖性相同,并且所處空間位置相似,則可判斷這個鉆孔無地層缺失;否則,認為該鉆孔缺失地層,并將鉆孔中缺失地層現象視為尖滅現象。處理方法是通過鉆孔地層層面相交處理的方式來消除,即使該鉆孔地層的厚度為0,也就是使該鉆孔地層層面的高程和相鄰上覆鉆孔地層層底面高程相同(如圖3所示的1和2層,3和4層,5和6層處理結果)。
(3) 確定鉆孔地層層面編號。按照鉆孔地層空間組成順序,由頂至底、逐層遞增對每個鉆孔的地層層頂面進行編號,即鉆孔最頂層的地層層頂面編號為1,然后按照順序逐層遞增,直至最后一層,并對該層層底面進行編號;對于鉆孔中缺失的地層,按步驟(2)方法處理,確保所有鉆孔地層的層頂面編號維數相同(圖3)。

圖3 鉆孔地層劃分方法
對于地層三維建模,首先根據地層各層之間的接觸界面生成地層模型的各個層面,然后在各地層層面模型的基礎上構造出層面輪廓,進而形成三維地層實體。
(1) 構建三維地層層面。根據鉆孔地層劃分結果,按照鉆孔地層層面編號并對應鉆孔XY平面坐標,記錄所有鉆孔各層層面空間高程數據值。將所有鉆孔第一層層面高程數據和前期所得地表離散高程點數據作為點約束條件,采用上述OCC曲面建模方法——填充曲面建模。① 首先完成地層最頂層層面模型(即地表三維模型,以下稱為“標準層面模型”)的構建。將標準層面模型的外邊界作為約束范圍,確定三維地層建模范圍:沿著鉆孔深度由上至下拖延至建模范圍的全部地層,確保各個層面具有上下一致的、確定的拓撲關系。 ② 按照鉆孔到鄰近鉆孔和標準層面模型的外邊界之間的范圍作為該鉆孔約束范圍的原則,將該鉆孔約束范圍對應的地表離散高程點數據所記錄高程值逐層減去該鉆孔各層層厚的累加值,就得到該鉆孔約束范圍所對應地層各層的離散高程點數據。例如,地表某一局部小范圍高程值減去地層第1層厚度,得到編號為2的地層層面高程值,減去第1層和第2層厚度累加值就得到編號為3的地層層面高程值。依此原理,逐個計算所有鉆孔的約束范圍,獲得地層各層面的離散點高程數據。 ③ 利用填充曲面建模完成三維地層各層面曲面模型的構建。
(2) 生成三維地層實體。在三維地層層面模型的基礎之上,通過外圍輪廓線重構,將上下相鄰的地層層面的曲面模型在垂直方向上進行縫合(鄭坤等,2013;周良辰等,2013),即可生成完整的三維地層實體模型。地層層面模型縫合成地層實體主要是通過OCC提供的三維幾何體造型類庫中的BRepOffsetAPI_ThruSections類所包含的算法來實現,該算法創建封閉實體就是通過一系列具有基本拓撲關系的網格縫合而成的,而上下相鄰的地層層面模型的外圍輪廓線即是具有上下一致的、確定的拓撲關系網格,利用該算法將其縫合,即可得到該層地層的三維實體模型,對其他地層均采用上述方法生成所有地層的三維地層實體模型,最后將所有三維地層實體模型進行合并,即得到整個研究區的三維地層模型。
三維地層實體模型構建核心代碼如下:
BRepOffsetAPI_ThruSections generator(Standard_True,Standard_True);
generator.AddWire(aMKw1.Wire());//aMKw1.Wire()為某一地層的層頂面輪廓網格
generator.AddWire(aMKw2.Wire());}//aMKw2.Wire()為該地層的層底面輪廓網格
generator.Build();
TopoDS_Shape myLayerShape=generator.Shape();
三維可視化屬于三維建模的后期表現過程,是在三維模型建立的基礎之上,采用計算機圖形技術,將幾何描述以三維真實圖像形式予以表現(熊祖強等,2007b)。本次研究基于OCC在VC++平臺下開發了良好的三維模型可視化平臺,并實現平臺的多種三維場景控制功能,包括旋轉、移動、放大、縮小、全屏顯示等三維操作常用功能。此外,還有三維圖層控制功能,包括“實體顯示”、線框顯示以及“透視顯示”3種模式,實現了對地質信息的真實三維表達。結合已有橋梁三維模型,通過三維可視化可以直觀、清晰地描述橋梁和地表之間的空間位置關系、地層之間位置關系、地層和橋梁樁基之間的位置關系、地層和鉆孔之間的位置關系以及地層厚度等信息。在此,以旋轉、透視和顏色標示為例分析三維可視化的關鍵技術及其原理。
旋轉是三維模型可視化中的重要組成部分。三維圖旋轉的實現既能避免二維圖缺乏整體感不利于觀察的缺點,又能避免有限角度觀察三維圖作結論可靠性差的缺點(徐元進等,2007),實現三維模型空間上的自由旋轉,以便用戶從任意角度細致地觀察模型的結構,獲得直觀的感性認識。結合已有橋梁三維模型,通過旋轉,可從不同方位直接觀察到橋梁和地表地形之間的空間位置。
旋轉功能是指模型圍繞指定中心點和向量旋轉單個或多個點或極點,相關代碼如下:
gp_Trsf theTransformation;
theTransformation.SetRotation(點或向量,角度);
透視功能在三維模型可視化中是不可或缺的。基于“透視顯示”模式,通過旋轉等命令,可分析橋梁樁基與地層之間的空間位置關系及接觸關系,并可直接獲取橋梁樁基底部位于哪個巖土層中,最大限度增加了模型的直觀性。相關代碼如下:
m_pOCCViewer->SetTransparency(5);
地層屬性三維標示主要包括地層顏色顯示、地層三維材質顯示等。顏色可以直觀地顯示三維信息,顯示三維地質體內部不同的屬性(巖性、地層接觸關系)變化(熊祖強等,2007b)。適當的顏色可對不同地層加以區分,這里以顏色顯示為例,主要代碼如下:
//i表示地層序號
Handle(TPrsStd_AISPresentation)prs=TPrsStd_AISPresentation::Set(groundLabel, TNaming_NamedShape::GetID());
prs->SetColor(enum Quantity_NameOfColor(i));//顏色標示
利用中交第二公路勘察設計研究院有限公司提供的道新(道真—新寨高速公路)項目推薦線——具合村大橋的實例數據,完成具合村大橋橋體周圍特定范圍內地表地形和地下地層三維模型構建,并將結果作以下展示(說明:圖中地層最底層層面為虛擬層面,黑色細柱狀為鉆孔模型)。圖4展示的是通過OCC建模技術構建的三維地層實體模型,圖5所展示的是透明模式下的三維地層模型,圖4和圖5所展示的三維地層模型的最頂層表面模型是利用等高線數據通過OCC曲面建模技術構建的三維地表地形模型;圖6所展示的是線框模式下的三維地層模型,圖4所展示的平臺為實現的三維可視化平臺。實際工程應用表明:利用三維可視化平臺的旋轉、縮放、移動、透明、線框模式、實體模式和地層屬性等功能,不僅能很好地顯示橋梁部分地質體的整體輪廓和地下地質環境,而且更能從視圖任意方位清晰地觀察地表形態和橋梁在地表的空間位置,以及橋梁樁基在地層的相對位置。

圖4 三維地層模型和三維可視化平臺

圖5 三維地層模型(透視模式)

圖6 三維地層模型(線框模式)
從三維模型在工程地質中地質信息表達上的優越性出發,分析了利用OCC進行三維地表和地層模型構建的原理和過程,并展示了建模結果在工程方面應用的實例。在地表模型構建方法選擇上,對比傳統的三角網建模方法,展示了OCC曲面建模技術在模型的連續程度、光滑度、細膩度上所表現出的良好效果。在進行地層模型構建時,從分析鉆孔資料、劃分地層、構建地層層面模型到生成地層實體,建立了一套完整的三維地層模型模擬流程。利用OCC幾何造型在VC++環境下實現了模型的可視化,并開發了三維可視化平臺,包括常用的場景控制功能和三維圖層的控制功能。
通過大橋工程實例,完成大橋橋體周圍特定范圍內地表地形和地下地層三維模型構建,并在三維可視化平臺下清晰展示了橋梁部分地質體的整體輪廓和地下地質環境,視圖任意方位下地表形態和橋梁在地表的空間位置,以及橋梁樁基在地層的相對位置,從而有效地提高了工程建設中地質分析和地質解譯的直觀性和可靠性。
丁偉,馮飛,吳維勇.2010.基于OpenCASCADE下的點云數據的研究與實現[J].制造業自動化,32(11):216-218.
賀懷建,白世偉.2002.三維地層模型中地層劃分的探討[J].巖土力學,23(5):637-639.
李建華,邊馥苓.2003.工程地質三維空間建模技術及其應用研究[J].武漢大學學報:信息科學版,28(1):26-30.
毛先成,趙瑩,唐艷華,等.2013.基于TIN的地質界面三維形態分析方法與應用[J].中南大學學報:自然科學版,44(4):1493-1499.
潘勝玲,劉學軍.2007.基于標準差的地形三維表面模型建立方法[J].計算機應用研究,24(11):295-297.
宋效東,劉學軍,湯國安,等.2012.DEM與地形分析的并行計算[J].地理與地理信息科學,28(4):2-3.
王純祥,白世偉,賀懷建.2003.三維地層可視化中地質建模研究[J].巖石力學與工程學報,22(10):1722-1726.
萬建華,劉娜,馬張寶,等.2005.基于OpenGL的三維可視化控件的設計與實現[J].地質與勘探,41(5):69-70.
熊祖強,賀懷建,夏艷華.2007a.工程地質三維建模及分析系統設計研究[J].巖石力學與工程學報,26(2):4177-4182.
熊祖強,賀懷建,夏艷華,等.2007b.工程地質三維建模及分析系統設計研究[J].巖土力學與工程學報,26(2):4178-4182.
徐文杰,胡瑞林,李厚恩,等.2007.CAD軟件在工程地質三維建模中的應用[J].工程地質學報,15(2):280-283.
徐元進,胡光道.2007.基于OpenGL的地學三維圖的設計與實現[J].計算機工程,33(3):259-260.
許國,王長海.2013.萬家口水電站復雜地質體三維模型及其數值模型構建[J].武漢大學學報:工學版,46(4):470-474.
余淑娟,郭飛,李想,等.2013.約束Delaunay四面體剖分在三維地質建模中的應用[J].地理與地理信息科學,29(1):41-44.
朱大培,朱文杰,楊欽,等.2001.地質構造的三維可視化[J].北京:北京航空航天大學學報,27(4):448-450.
張渭軍,王文科.2006.基于鉆孔數據的地層三維建模與可視化研究[J].大地構造與成礦學,30(1):108-113.
張敏,楊武年,羅智勇,等.2009.復雜地質體建模與可視化新技術[J].計算機應用研究,26(6):2390-2392.
朱良峰,李明江,孫建中.2012.工程地質空間多場耦合構模技術研究[J].巖土力學,33(8):2501-2506.
鄭坤,毛維辰,嚴哲,等.2013.一種含斷層的復雜層狀地質體三維自動構模方法研究[J].巖土力學,34(2):546-592.
周良辰,林冰仙,王丹,等.2013.平面地質圖的三維地質體建模方法研究[J].地球信息科學學報,15(1):46-53.