申 皓,劉青昆,龔蔚青,胡國棟
(1.遼寧師范大學 計算機與信息技術學院,遼寧 大連 116081;2.中石化石油勘探開發研究院,北京 100083;3.北京華盛海天科技發展有限公司,北京 100191)
三維可視化技術日趨成熟,其在石油勘探領域的應用越來越重要,目前主要常見于國外主流商業化油藏三維地質建模、油藏數值模擬等大型專業軟件中,如PETREL和ECLIPSE等[1]。為了能對主流商業軟件地質研究成果加以研究和利用,需要能夠加載不同軟件的模型成果文件。但不同的軟件網格描述方式不同,需要分別編寫相應的處理程序,增加分析工具的研發成本。同時大規模油藏模型對計算機的存儲容量、處理速度、繪制速度等都提出了很高的要求[2-3],當進行旋轉、縮放等操作時運算數據量大,會出現速度緩慢、顯示不連續等問題。因此,本文提出異種油藏網格模型三維可視化優化方法。該方法能夠加載不同描述方式的異種網格模型,同時在不影響油藏模型顯示效果的前提下,對網格模型數據進行優化,最大限度地減少原始模型的網格和頂點的數目,進而使得優化后的網格模型能進行快速實時繪制,提高了網格規模的擴展性。
矩形和角點是目前使用較多的結構化網格,可以用I、J、K定義每個網格的位置。矩形網格主要用DX、DY、DZ關鍵字來描述,角點網格主要用COORD、ZCORN關鍵字來描述,它們的網格存儲格式不同[4-5]。此外,不同軟件導出的網格模型可能存在I、J增量方向的差異,其網格排序也不同。本文把不同存儲格式、不同排序的網格模型統稱為異種網格模型。
將統一網格存儲格式的方法定義為兩個函數接口,在對各自模型成果文件進行讀取時,只需提供這兩個接口函數,便可獲取各結構化網格模型各網格8個頂點坐標數據。
兩個接口函數為:一個是網格頂點坐標獲取接口GetVertice(),通過唯一頂點索引index可以得到對應唯一頂點坐標(x,y,z),即不重復的網格頂點坐標都有一個唯一索引標簽與之對應;另一個是網格頂點坐標索引獲取接口GetHexahedron(),用于獲取(i,j,k)網格 8個頂點的坐標索引值,此索引值與網格頂點獲取接口參數索引值index相同。
網格排序存在差異是指I、J增量方向不同,如圖1、圖2所示。進行網格遍歷時,I方向,(i+1,j,k)網格相對于當前(i,j,k)網格可能在右或在左,如果(i+1,j,k)網格為無效網格或與(i,j,k)網格相鄰面的4個頂點不重合,需保存兩個網格相鄰面的4個頂點數據。當I增量向右,則保存(i,j,k)網格右平面4個頂點數據;當I增量向左,則保存(i,j,k)網格左平面4個頂點數據。J方向也如此。為了識別網格模型I、J增量方向及方便后續網格模型優化,本文通過設置頂點標記索引和網格頂點相對索引來實現。
定義所有網格 8個頂點的標記索引為 0、1、2、3、4、5、6、7。通過獲取I正方向鄰接面頂點關系表(I,I+1網格相鄰面)、J正方向鄰接面頂點關系表(J,J+1網格相鄰面),即相鄰面 8個頂點標記索引,來判定網格模型I、J增量方向,并設置對應的頂點相對索引。
I、J方向識別算法基本步驟如下:
(1)初始化相對索引數組RI,RI(i)=-1,其中,i=0,1,…,7;

圖1 I方向示例圖

圖2 J方向示例圖
(2)獲取I正方向鄰接面頂點關系表;
(3)獲取J正方向鄰接面頂點關系表;
(4)判斷I方向相鄰面頂點標記索引與J方向相鄰面頂點標記索引關系,以此確定I、J增量方向;
(5)根據步驟(4)獲取的I、J增量方向,設置對應的頂點相對索引數組RI。
針對大規模油藏網格模型會占用大量存儲空間、運算量大、降低模型繪制速度的問題,本文實現模型消隱算法對模型網格數據進行優化處理,只繪制表層油藏網格模型。網格模型消隱算法基本步驟如下:
(1)獲取相對索引數組RI。
(2)遍歷每個單元網格 Girdi,j,k(i=1,…,NX;j=1,…,NY;k=1,…,NZ)。
(3)判斷當前網格是否為有效網格。若滿足要求,進行下一步;否則跳至步驟(2)。
(4)獲取當前網格頂點坐標索引GIi,j,k。
(5)判斷相鄰網格GirdI,J,K(I=i,i-1或i+1;J=j,j-1或j+1;K=k,k-1或k+1)(判斷相鄰網格順序:上方向、下方向、左方向、右方向、前方向、后方向)是否為有效網格。若滿足要求,進行下一步;若不滿足且當前判斷為后方向相鄰網格,跳至步驟(2),否則跳至步驟(5),繼續判斷其他相鄰網格。
(6)獲取當前網格相鄰網格頂點坐標索引GII,J,K。
(7)根據步驟(4)、(6)獲得的坐標索引 index判斷(i,j,k)網格與其相鄰(I,J,K)網格相鄰面 4個頂點是否重合。若不滿足要求,進行下一步;若滿足且當前判斷為后方向相鄰網格,跳至步驟(2),否則跳至步驟(5),繼續判斷其他相鄰網格。
(8)根據網格頂點坐標索引接口獲取當前(i,j,k)網格8個頂點坐標索引數組VI(i),其中,i=0,1,…,7,并根據當前網格相鄰面4個頂點相對索引獲取4個頂點坐標。
(9)依次判斷4個頂點是否已經保存進表層頂點坐標數組SV中。若已經保存,則返回已保存頂點坐標索引,即SV數組下標;否則保存,并返回新頂點坐標索引,進行下一步。
(10)將步驟(9)獲取的4個頂點坐標索引保存在表層四邊形頂點索引數組SQVI中,如果當前相鄰網格為后方向相鄰網格,進行下一步;否則跳至步驟(5)。
(11)若 i≤NX,j≤NY,k≤NZ,跳至步驟(2);否則結束。
實驗環境為:Inter(R)Core(TM)i5-3450@3.10 GHz CPU,3.48 GB內存,基于 MFC應用程序框架和OSG三維引擎進行編程實現。
實驗采用了Eclipse導出的 (NX,NY,NZ)=(20,20,10)規則矩形 網格 模 型和(NX,NY,NZ)=(119,57,10)角點網格模型,兩種結構化網格模型在 E-clispe軟件中繪制的效果如圖3所示,通過本文方法進行網格模型繪制,其效果圖如圖4所示。

圖3 Eclipse繪制的模型圖

圖4 基于本文方法繪制的模型圖
對比圖3和圖4可知,基于本文方法繪制的模型圖與Eclispe繪制的一樣,證明了本文方法能夠兼容不同格式的網格模型。
實驗分別采用 4 000、10萬、50萬、100萬、500萬個規則矩形網格模型進行優化前和優化后性能測試,結果如表 1、表 2所示(表中旋轉縮放效果好、差分別代表:模型能實時繪制、顯示連續順暢,模型不能實時繪制、顯示不順暢)。
從表1和表2可以看出,優化后的網格模型較優化前的網格模型存在諸多優勢,網格規模越大,優化效果越明顯,極大地提高了網格規模的擴展性和系統性能需求,充分證明了本方法具有很高的可行性。
針對實時繪制大規模網格模型存在速度慢、效果差以及油藏網格模型存在描述方式不同等問題,本文提出了異種網格模型三維可視化優化方法,并通過不同網格模型、不同規模模型測試對比,證明了該方法是可行的,能夠兼容不同軟件不同描述格式的地質研究成果,其應用在大規模網格模型實時繪制方面性能有很大提升,且效果顯著。

表1 模型消隱前實驗值

表2 模型消隱后實驗值
[1]ADMIN.石油行業常用軟件綜合介紹[EB/OL].(2008-09-29)[2014-02-26]www.hipetro.com/shiyouruanjian.html.
[2]何暉光,田捷,張小鵬,等.網格模型化簡綜述[J].軟件學報 ,2002,13(12):2215-2224.
[3]趙新華.大數據量網格模型的建模與簡化技術研究[D].長沙:國防科學技術大學,2002.
[4]韓峻,施法中,吳勝和,等.基于格架模型的角點網格生成算法[J].計算機工程,2008,34(4):90-93.
[5]蘇丹丹.基于角點網格剖分的三維地質建模的研究與實現[D].西安:西安科技大學,2010.