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