基于OpenGL的三維油藏可視化模型
通過(guò)地震、測(cè)井可得到關(guān)于油藏地層測(cè)試點(diǎn)孔隙度、滲透率等物性參數(shù),但這些數(shù)據(jù)數(shù)量龐大,難以直接進(jìn)行地質(zhì)分析。為了解油層結(jié)構(gòu)和分布,需要將油藏地層模型在計(jì)算機(jī)上再現(xiàn),并對(duì)其進(jìn)行一些交互式操作及初步處理。
系統(tǒng)實(shí)現(xiàn)方法是:首先組織數(shù)據(jù)(幾何頂點(diǎn),物性參數(shù)值等)及提取可視面,并與所需要的目標(biāo)結(jié)合,實(shí)現(xiàn)對(duì)模型的繪制。其次,提供對(duì)模型的分解和剖切方法,實(shí)現(xiàn)由數(shù)據(jù)驅(qū)動(dòng)的對(duì)模型的操作控制。
2 數(shù)據(jù)處理與參數(shù)的顏色索引
2.1 系統(tǒng)的地質(zhì)數(shù)據(jù)
系統(tǒng)讀入的原始網(wǎng)格數(shù)據(jù)示例如下:
第一行數(shù)據(jù)的前3個(gè)數(shù)據(jù)數(shù)據(jù)分別表示X,Y,Z軸方向上的網(wǎng)格個(gè)數(shù),第4~6個(gè)數(shù)據(jù)分別表示X,Y,Z軸方向上的原點(diǎn)坐標(biāo),而第7~8個(gè)數(shù)據(jù)表示沿X,Y軸方向的網(wǎng)格間距大小。第二行數(shù)據(jù)2表示以下是兩列數(shù)據(jù),第一列數(shù)據(jù)(如940.700)表示深度值,第二列數(shù)據(jù)(如73.000)表示對(duì)應(yīng)點(diǎn)的參數(shù)值。
由于網(wǎng)格結(jié)點(diǎn)在xoy平面上是規(guī)則的順序排列,給出已知的沿x,y方向的網(wǎng)格間距dx,dy,網(wǎng)格數(shù)Nx,Ny和幾何坐標(biāo)系原點(diǎn)坐標(biāo)x0,y0,z0,則任一網(wǎng)格結(jié)點(diǎn)Node的空間坐標(biāo)和參數(shù)為:
式中:i的范圍為[O,Nx-1],j的范圍為[0,Ny-1];k為結(jié)點(diǎn)Node(i,j)處深度的序數(shù),其值與深度的排列方式有關(guān)。dpk,sk為第k點(diǎn)處的深度和物性參數(shù)。
2.2 處理原始數(shù)據(jù)
由于原始數(shù)據(jù)采用大地坐標(biāo),為方便繪圖,應(yīng)對(duì)數(shù)據(jù)進(jìn)行坐標(biāo)變換。將X,Y,Z上數(shù)據(jù)范圍變換到-1~1之間,經(jīng)過(guò)縮放變換,才能在視圖區(qū)顯示出圖形。原始數(shù)據(jù)在測(cè)量時(shí)可能存在誤差,因此在讀入數(shù)據(jù)后需對(duì)數(shù)據(jù)進(jìn)行有效性檢驗(yàn)。
2.3 參數(shù)的顏色索引
OpenGL的顏色索引模式通過(guò)建立一個(gè)顏色索引表(又稱(chēng)彩色表)確定所繪制物體的顏色。彩色表的建立可通過(guò)指定彩色表兩端的基色和尾色,插值計(jì)算出中間其它顏色,分別賦予相應(yīng)索引號(hào)。在給模型著色時(shí),將讀人數(shù)據(jù)點(diǎn)對(duì)應(yīng)的參數(shù)值轉(zhuǎn)化成彩色表上的索引號(hào),便可確定參數(shù)的顏色。由于彩色表上的索引號(hào)對(duì)應(yīng)的參數(shù)是離散的,應(yīng)對(duì)參數(shù)值在彩色表中對(duì)應(yīng)的位置作四舍五人以精確給出其索引號(hào)。設(shè)參數(shù)存儲(chǔ)在數(shù)組parameter中,color_num為彩色表長(zhǎng)度。將參數(shù)轉(zhuǎn)化為顏色索引號(hào)p的代碼段如下:
對(duì)應(yīng)的索引號(hào)
以上創(chuàng)建出來(lái)的顏色可能較單調(diào),一些位于中間部分的參數(shù)值對(duì)應(yīng)的顏色區(qū)別不明顯。一種改進(jìn)方法是將彩色表分成4段,每一段只控制一種顏色分量的變化,這樣彩色表的顏色變化種類(lèi)大大增加了,使位于中間部分的參數(shù)值顏色區(qū)分很明顯,可更直觀(guān)的反映出油藏情況。
基色和尾色通常根據(jù)油藏描述的實(shí)際要求指定,例如類(lèi)藍(lán)色(表示水)和類(lèi)紅色(表示油),分別對(duì)應(yīng)物性參數(shù)(如滲透率)的最小值和最大值。
3 建立三維地質(zhì)數(shù)據(jù)模型
3.1 繪制三維地質(zhì)模型的基本思想
實(shí)現(xiàn)三維地質(zhì)模型繪制的關(guān)鍵步驟是對(duì)數(shù)據(jù)體建模。由對(duì)讀入數(shù)據(jù)的排列結(jié)構(gòu)分析可知,原始網(wǎng)格數(shù)據(jù)形成了一個(gè)三維地層模型。除了在垂直方向(Z方向)上的兩個(gè)面有上下起伏外,其余的面均是平行于ZOY,面或ZOX面的平面。如圖1所示。
地層模型的可視面即底面、頂面、左面、右面、前面及后面,因此只畫(huà)這6個(gè)面的外側(cè)就可以繪制出整個(gè)6面體。問(wèn)題便轉(zhuǎn)化成提取這6個(gè)面上的數(shù)據(jù),用OpenGL的繪圖技術(shù)對(duì)每一個(gè)面分別進(jìn)行繪制。
3.2 三維地質(zhì)數(shù)據(jù)體模型的生成
模型立方體的6個(gè)面由很多小4邊形組成,可采用OpenGL畫(huà)連續(xù)4邊形的方法將每一個(gè)面畫(huà)出來(lái)。填充顏色則可采用OpenGL的平滑(SMOOTH)著色方式,定義出頂點(diǎn)的顏色后,OpenGL便自動(dòng)地對(duì)4邊形內(nèi)的顏色插值計(jì)算,進(jìn)行顏色漸變繪制。著色之前采用Z緩存(Z_buffer)技術(shù)通過(guò)對(duì)物體進(jìn)行深度測(cè)試的方法實(shí)現(xiàn)消隱。
以底面創(chuàng)建為例,考慮一般情況,設(shè)x軸上的網(wǎng)格個(gè)數(shù)為x_lenth,z軸的數(shù)據(jù)存儲(chǔ)在數(shù)組z_data中,當(dāng)前繪制的4邊形片序數(shù)為循環(huán)變量j,各頂點(diǎn)的顏色值由參數(shù)值轉(zhuǎn)化成顏色索引值確定,并由向量模式給出。自動(dòng)提取底面數(shù)據(jù)并繪制底面的程序段為:
評(píng)論