摘要:利用三維可視化軟件包,采用Shear-Warp算法實現地震數據的模型可視化,并給出了具體算法流程。實驗結果表明此算法可提高地震數據的體繪制速度,實現地震數據解釋的實時交互式繪制,為地質勘探提供可視化依據。
關鍵詞:錯切-變形算法;體繪制;三維地震數據;科學可視化
中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2010)02-468-02
3D Seismic Data Volume Rendering Based on Shear-Warp Algorithm
LUO Tian, LI Rong-yan, YUE Ji-guang
(College of Electronics and Information Engineering, Tongji University, Shanghai 200092, China)
Abstract: Based on the 3D volume rendering technology in computer graphics, the visualization of seismic data model with Shear-Warp algorithm is implemented on the VC++6.0 platform using 3D visualization software package. Experiment results demonstrates that the application of Shear-Warp algorithm can accelerate the rendering process and improve real-time active rendering speed in seismic data visualization, which providing helpful evidence to geographical exploration.
Key words: shear-warp algorithm; volume rendering; 3D seismic data; scientific visualization
在油氣勘探工程中,通過人工爆破得到的地震數據經過前期處理后仍極其龐大,且其數據特征分布不均,難以通過傳統的二維平面觀測方式得到有效的分析結果。利用基于體繪制的三維數據可視化技術,可以從大量的地質勘探數據中,更為直觀地進行定位,得到有意義的等值面、等值線[1]。對其以不同的顏色、透明度進行標注,顯示出屬性不同數據間的相互關系,有效輔助地震解釋人員對地震數據做出正確解釋。
體繪制技術應用的主要難點在于,如何在繪制較大數據體時達到交互應用的繪制速度。以光線投射算法(Ray Casting)[2]為代表的基于圖像空間的算法[4],以及以濺射算法(Splatting)[3]為代表的基于物體空間的算法[4],在繪制速度上均不理想。針對上述問題,人們相繼提出各類改進繪制速度的算法。依靠圖像硬件支持的紋理映射技術[5-6],繪制速度可比光線投射法快一個數量級,基本能達到可供交互應用的繪制速度。但紋理映射技術增加了算法的硬件成本,并且成像質量不夠精確。錯切-變形算法(Shear-Warp算法)[7]完全基于軟件運算,是綜合了圖像空間和物體空間優點的混合繪制算法,為目前公認繪制速度最快的體繪制算法。將Shear-Warp算法應用到海量地震數據的可視化工程中,可為地質綜合解釋提供有效的信息和幫助。
1 地震數據的體繪制
1.1 地震數據解釋與體繪制
傳統的地震數據解釋,最初采用數據的二維切片,通過不同切片間的綜合和解釋人員的經驗對數據進行分析和解釋。由于二維切片圖像不能反映整個原始數據場的全貌及細節,缺乏三維數據的直觀性和三維空間中的整體性,傳統二維地震數據解釋方法難以達到很高效率。隨著科學可視化技術的發展,體繪制作為新的數據分析手段,在數據分析與解釋領域顯示出了強大的功效。通過體繪制,逼真還原地層的地質樣貌,凸顯出有價值的地質形態和特征,從而提高地震解釋效率。
1.2 地震數據的體繪制與Shear-Warp算法
地震數據的體繪制包括體數據生成、體數據分類與賦值、二維圖像生成三個環節。首先將每個數據采樣點轉換為一個體素,每個地震道轉換成一個體素隊列(圖1a)。然后利用分區定值系統(Zone System)[8](圖1b)等方式,對數據進行分類賦值,賦予每個體素特定的顏色和透明度值。最終利用不同的體繪制算法將三維體素的顏色和透明度值融合,投射到二維觀察平面上,得到最終圖像。
體繪制技術最初主要應用于醫學圖像數據的解釋,其應用要求與地震數據解釋存在較大差異[9]。由于地震數據的天然海量性及其工程應用性質的目的,地震數據可視化并不要求精確、清晰的細節圖像,其主要的需求在于對海量數據的快速繪制,以滿足解釋過程中的交互要求。對各種體繪制算法的對比研究表明:Shear-Warp和基于紋理的體繪制算法更為符合地震勘探數據場體繪制的交互要求[10]。
2 基于Shear-Warp算法的體繪制
2.1 Shear-Warp算法
Shear-Warp算法由Lacroute和Levoy于1994年提出,被認為是一種圖像次序和對象次序的混合算法[11]。如圖2所示,與另兩種先于它提出的體繪制算法不同,Shear-Warp算法將數據的投影過程分解為兩步:首先,將體數據從對象空間變換到與對象坐標系有簡單對應關系的Shear坐標系(即為“錯切”過程),從而在Shear坐標系中通過投影與合成繪制出有形變的中間圖像;然后,將中間平面上的圖像通過Warp變換矩陣投射到實際視平面(即為“變形”過程),得到最終圖像。
對繪制過程的分解,使得在投影繪制與合成過程中,中間圖像掃描線與對應的體素掃面線平行。從而可以利用游程編碼RLE和八叉樹的數據結構等方式進行快速跳躍合成,加快繪制速度[7]。另外,經過Shear變換后的體素片與投射視線垂直,方便了重采樣:平行投影時,所有切片有相同的位移因子;透視投影時,同一切片的所有體元有相同的縮放因子。在平行投影時,可選擇單位比例因子,使體元掃面線內的體元與中間圖像像素一一對應。這些特點均加快了Shear-Warp算法的繪制速度。
2.2 具體實現流程
本文利用可視化工具包軟件VTK[4],通過兩個自定義類:CSeismicFile和CVTK在VC6.0平臺上分別對以上兩個內容進行實現具體算法。原理如圖3所示,實現工作主要包括兩個內容:地震數據文件的讀取及數據分類方法;體數據的轉換賦值和繪制流水線。
第一步:在自定義C++類SeismicFile中實現地震數據文件的讀取及轉換。利用SeismicFile類中的各成員函數,將原始地震數據文件轉換為VTK可以進行體繪制的vtkImage類型。對轉換后vtkImage數據進行一定預處理,去掉其中的負值。
第二步:生成第一步中得到的vtkImage數據指針m_pvtkImageData,以備繪制時的流水線調用。
第三步:通過分段線性函數vtkPieceWiseFunction( )對數據進行顏色和透明度賦值
vtkPiecewiseFunction*m_pOpacityTransferFunction;
vtkColorTransferFunction*m_pColorTransferFunction;// 定義兩個分段線性函數
…
m_pOpacityTransferFunction->AddPoint( 8000, 1.0 ); // 定義透明度賦值函數的一個拐點
…
m_pColorTransferFunction->AddRGBPoint( 2000, 1.0, 1.0, 0.0 );// 定義顏色賦值函數的一個拐點
m_pVolumeProperty->SetColor( m_pColorTransferFunction );
m_pVolumeProperty->SetScalarOpacity( m_pOpacityTransferFunction );// 將兩個賦值函數加入流水線
第四步:調用SetMapper( )函數挑選繪制算法(包括Shear-Warp)進行繪制,得到繪制圖像。
vtkOpenGLVolumeShearWarpMapper*m_pSWMapper;// 創建Shear-Warp算法模塊
…
m_pSWMapper->SetInput( image );// 參數image的值由m_pvtkImageData傳入
m_pVolume->SetMapper( m_pSWMapper );// 設置繪制方式為Shear-Warp算法
…
RenderOn();// 完成設置,開始繪制
3 地震數據樣本應用及比較
為測試Shear-Warp算法在地震數據中的體繪制效果,選取勝利油田某部分地震波數據進行繪制實驗,該數據樣本有200條測線,每條測線上各有251個測點,每個測點在垂直向下方向上有301個采樣數據,數據大小為200×251×301×2bytes。實驗所用微機配置為:Intel Core2 Duo 2.66GHz,2GB RAM。
在上述同等條件下,采用正投影方式分別進行了Shear-Warp算法、原始光線投射算法和3D 紋理映射加速的光線投射算法實驗,記錄下各自所用繪制時間,如表1所示。結果表明,對同樣大小的數據體,光線投射算法所需繪制時間最長,而在有3D紋理映射加速的條件下其繪制速度提高到約兩倍,Shear-Warp算法的繪制速度與3D紋理映射加速時接近。圖4為實驗結果效果截圖。圖像的質量情況中,原始光線投射算法的繪制效果最細膩,生成了對原始地質樣貌的逼真反映。Shear -Warp算法和紋理加速的光線投射算法則有微小的圖像質量損失,但從局部比較(圖4d, 圖4e, 圖4f)可以看出,Shear-Warp算法的質量損失較小,對地貌反映的影響在可接受范圍內。
實驗對比結果表明:在同等條件下,Shear-Warp算法以少量圖像質量損失為代價,得到繪制速度的較大提升,繪制速度上的優越性明顯。
4 結論
本文將Shear-Warp算法同地震數據的可視化相結合,同時利用VTK工具包實現了可視化過程,得到可視化結果,通過實驗證明:Shear-Warp算法在對地震海量數據可視化的過程中,具有較高的速度優越性,有助于通過先進的可視化技術增強和輔助地震數據分析,在油田開發和地質勘探中具有很好的應用價值。
參考文獻:
[1] 馬仁安,楊靜宇,王洪元.可視化技術及在三維地震解釋中的應用[J].計算機工程,2003,29(5):139-141.
[2] Levoy M. Display of Surfaces from Volume Data[J].IEEE Computer Graphics Applications,1988,8(5): 29-37.
[3] Westover L.Interactive Volume Rendering[A]. Proceedings of the Chapel Hill workshop on Volume visualization[C].Chapel Hill, Noth Carolina, United States, 1989:9-16.
[4] Schroeder W,Martin K,Lorensen B. The Visualization Toolkit-An Object-Oriented Approach to 3D Graphics(3rd Edition)[M]. NY: Kitware,2002.
[5] Wilson O,Gelder A V,Wilhelms J.Direct Volume Rendering via 3D Textures[R]. CA, Santa Cruz: University of California at Santa Cruz,1994.
[6] Cullip T J,Neumann U. Accelerating Volume Reconstruction with 3D Texture Hardware[R]. NC,Chapel Hill: University of North Carolina at Chapel Hill,1994.
[7] Lacroute P, Levoy M. Fast volume rendering using a shear-warp factorization of the viewing transformation[A].Proceedings of the 21st annual conference on Computer graphics and interactive techniques[C]. FL, Orlando,1994, 451-458.
[8] Kidd G D. Fundamentals of 3D Seismic Volume Visualization[J]. The Leading EDGE,1999,18(6):702-709.
[9] 馬仁安,張二華,楊靜宇.三維地震數據場的快速體繪制方法[J].計算機輔助設計與圖形學報,2005,17(5):1008-1012.
[10] Lima L A,Bastos R.Seismic Data Volume Rendering[R].NC, Chapel Hill: University of North Carolina,1998.
[11] Sweeney J,Mueller K.Shear-Warp deluxe: the Shear-Warp algorithm revisited[A].Proceedings of the symposium on Data Visualisation[C].Barcelona, Spain,2002:95-104.