基于OpenGL的三維油藏可視化模型
本文引用地址:http://2s4d.com/article/195829.htm
4 模型操作
4.1 數(shù)據(jù)體撥層
通過(guò)對(duì)數(shù)據(jù)體進(jìn)行撥層,即沿Z軸分解數(shù)據(jù)體的層面,按層提取并繪制數(shù)據(jù)體的可視面,可以得到撥層面的圖形,還可以得到撥層后數(shù)據(jù)塊的圖形。撥層面的繪制可通過(guò)繪制數(shù)據(jù)體被撥層后的頂面圖形實(shí)現(xiàn)。在VC中使用Slider控件傳遞參數(shù),確定顯示撥層面操作的次數(shù),這樣可顯示多個(gè)撥層面,通過(guò)旋轉(zhuǎn)等操作,可清楚的看出撥層面之間的油藏情況,如圖2所示。
4.2 切片和切塊
通過(guò)對(duì)數(shù)據(jù)體切片,即切割數(shù)據(jù)體的X軸、Y軸,得到剖面或截面的圖形。垂直于X軸、Y軸的一系列的切割點(diǎn)的位置由Visual C++中的鼠標(biāo)響應(yīng)程序得到,而切割點(diǎn)的顏色通過(guò)切割點(diǎn)兩旁的網(wǎng)格數(shù)據(jù)點(diǎn)的顏色插值得到。這其中須注意兩個(gè)問(wèn)題:①Visual C++中數(shù)據(jù)和OpenGL中數(shù)據(jù)的轉(zhuǎn)化。因通過(guò)雙擊鼠標(biāo)左鍵選擇切割點(diǎn),得到的是VC中的響應(yīng)坐標(biāo),需要把其轉(zhuǎn)化成OpenGL中的坐標(biāo)。由變換語(yǔ)句glFrustum();可知在OpenGL中窗口的寬和高,而且可知VC中窗口的大小,因此二者之間存在一個(gè)比例關(guān)系,再考慮X軸、Y軸的長(zhǎng)度因素,可得到切割點(diǎn)在OpenGL中的坐標(biāo)。②關(guān)于得到切割點(diǎn)顏色。OpenGL中采取平滑模式(GL_SMOOTH)時(shí),給定多邊形內(nèi)各點(diǎn)的顏色是通過(guò)頂點(diǎn)顏色插值得到的。因此,當(dāng)切割點(diǎn)選擇在給定網(wǎng)格點(diǎn)之間時(shí),切割點(diǎn)的顏色可通過(guò)顏色捕值得到。繪制時(shí)需注意頂點(diǎn)和顏色的對(duì)應(yīng)關(guān)系。利用某油田數(shù)據(jù)繪制的切片圖如圖3所示。
切塊功能和切片功能類似,但得到的不是一個(gè)面,而是一個(gè)數(shù)據(jù)體。該功能的第一步和切片功能相似,要得到切割點(diǎn)在OpenGL中的坐標(biāo)。第二步畫數(shù)據(jù)體圖形的時(shí)候,不再是只畫其中的一個(gè)面,而是要畫數(shù)據(jù)體的6個(gè)面,因此該功能和切片、旋轉(zhuǎn)等功能綜合使用時(shí),要注意功能標(biāo)志的設(shè)置問(wèn)題。利用某油田數(shù)據(jù)繪制的切塊圖如圖4所示。
5 結(jié)語(yǔ)
提出了一種基于OpenGL建立三維油藏地質(zhì)數(shù)據(jù)模型的簡(jiǎn)便方法,在根據(jù)實(shí)際要求創(chuàng)建彩色表并將原始物性參數(shù)轉(zhuǎn)化為顏色索引值的基礎(chǔ)上,可自動(dòng)提取網(wǎng)格數(shù)據(jù)體可視面上的數(shù)據(jù),然后利用OpenGL繪圖技術(shù)對(duì)模型繪制。與傳統(tǒng)的三維油藏可視化軟件系統(tǒng)比較,這里提出的系統(tǒng)繪制效率更高,特別是對(duì)模型進(jìn)行撥層、切片、切塊等操作處理是該系統(tǒng)的特色。
評(píng)論