范瑞杰,李宏偉,張 斌,夏 青
(1.信息工程大學(xué) 測(cè)繪學(xué)院,河南 鄭州450052)
目前,海底地形三維可視化的方法是利用面繪制技術(shù)(surface rendering)構(gòu)建海底地形數(shù)字高程模型,即海底DEM。該技術(shù)的基本思想是通過提取對(duì)象體的表面信息,把物體的實(shí)體數(shù)據(jù)轉(zhuǎn)換為中間幾何圖元(如曲面、平面等),通過綜合運(yùn)用光照模型和明暗模型進(jìn)行渲染和消隱處理,得到物體的三維表面模型。該技術(shù)只是對(duì)對(duì)象體表面信息的模擬,無法表達(dá)對(duì)象體的構(gòu)造信息和屬性信息。然而海底地形十分復(fù)雜,其內(nèi)部信息對(duì)于艦船的航行、海底資源的勘探、海底地質(zhì)構(gòu)造的研究等諸多領(lǐng)域有著重要的意義,面繪制技術(shù)顯然無法滿足這些方面的要求。因此,將體繪制技術(shù)應(yīng)用于海底地形的真實(shí)三維場(chǎng)景搭建,構(gòu)建海底地形數(shù)字高程體模型(digital elevation volume rendering),對(duì)于實(shí)現(xiàn)海底地形的真三維可視化十分重要。本文分析了體繪制技術(shù)的特點(diǎn),對(duì)海底地形中的體繪制過程進(jìn)行了說明,并針對(duì)體繪制方法應(yīng)用于海底地形三維可視化提出了一些觀點(diǎn)。
基于離散體元的體繪制技術(shù)(volume rendering),即體繪制技術(shù),是一種真實(shí)的三維繪制技術(shù)。該技術(shù)以體素為基本單元,直接由切片數(shù)據(jù)集生成三維圖像,也稱直接體繪制。它能夠表示對(duì)象體內(nèi)部的信息及屬性,繪制結(jié)果可以使人們感受到完整的體數(shù)據(jù)信息,給人以更直觀、更方便的視覺表達(dá)效果[1,2]。因此,運(yùn)用體繪制技術(shù)對(duì)海底地形進(jìn)行三維可視化,能夠真實(shí)地展示海底地形的地質(zhì)構(gòu)造及內(nèi)部屬性信息。
目前,常用的海底地形數(shù)據(jù)都是一些離散的等深點(diǎn)數(shù)據(jù),通常只包含海底地形的坐標(biāo)和高程數(shù)據(jù),而不包含海底地形的屬性信息。體繪制方法最重要的就是包含屬性信息的體數(shù)據(jù)。體數(shù)據(jù)可以看作是在有限空間內(nèi)對(duì)一種或者多種屬性(如物理屬性)的一組離散采樣,可以將其表示成f n(x),其中x是n維空間的采樣點(diǎn)集合,n是體數(shù)據(jù)所要表達(dá)的信息維度。
海底地形體數(shù)據(jù)模型如圖1所示,圖中的每一個(gè)小長(zhǎng)方體稱之為體素(voxel),體素是構(gòu)成體數(shù)據(jù)空間最基本的單位。體素模型可以看成是二維數(shù)據(jù)在三維上的擴(kuò)展,是三維空間均勻網(wǎng)格組成的結(jié)構(gòu)化體數(shù)據(jù)。
圖1 體素模型
體素通常有2種定義:一種是將體素定義為中心點(diǎn)在采樣點(diǎn)上的小長(zhǎng)方體,該長(zhǎng)方體內(nèi)的數(shù)值都是相同的,都等于該采樣點(diǎn)的采樣值,即該采樣點(diǎn)為小長(zhǎng)方體的屬性匯聚點(diǎn)(見圖2a);另一種是將以8個(gè)相鄰的網(wǎng)格點(diǎn)為頂點(diǎn)的小長(zhǎng)方體定義為1個(gè)體素,該小長(zhǎng)方體內(nèi)的數(shù)據(jù)值是變化的,體素內(nèi)任一點(diǎn)的數(shù)據(jù)值可以通過對(duì)這8個(gè)頂點(diǎn)的采樣值進(jìn)行內(nèi)插確定(見圖2b)。
圖2 體素的定義
通常,海底地形某一采樣點(diǎn)的數(shù)據(jù)可以表示為P(x,y,z),即該點(diǎn)的空間坐標(biāo)。在定義該采樣點(diǎn)的體數(shù)據(jù)時(shí),可以將其表示為P(x,y,z,m),其中的m取決于所要表現(xiàn)的要素或者環(huán)境場(chǎng)的信息,可以是標(biāo)量,如海底的地質(zhì)分布狀況;也可以是矢量,如海底的地磁分布等。這里的m并不只是表示某一種特定屬性,而是指除了采樣點(diǎn)的位置信息外的其他所有要研究的相關(guān)信息的集合。
直接體繪制技術(shù)中比較典型的方法有:基于空間域的體繪制技術(shù),如光線投射法、濺射法、錯(cuò)切-變形法等;基于變換域的體繪制算法,如頻域體繪制法、基于小波的體繪制法等。
光線投射法(ray casting)[3]通過為每個(gè)體素配置不同的透明度和光強(qiáng)來合成三維模型,有利于保留海底地形的細(xì)節(jié),從而生成高品質(zhì)的海底地形三維模型。因此,該方法特別適用于繪制區(qū)域地形特征模糊、構(gòu)造復(fù)雜、地形特征相關(guān)性高的三維模型,如海底地質(zhì)斷裂帶附近的特殊地形。但該方法需對(duì)每一個(gè)體素進(jìn)行操作,極大地限制了繪制速度。濺射法也稱足跡法(splatting),是用一個(gè)稱為足跡的函數(shù)計(jì)算每一體素投影的影響范圍,用高斯函數(shù)定義強(qiáng)度分布,從而計(jì)算出其對(duì)圖像的總體貢獻(xiàn),并加以合成,形成最后的圖像。其繪制速度較快。在濺射過程中,背景物體的色彩可能會(huì)擴(kuò)散,繪制效果沒有光線投射法好。因此,該方法適用于對(duì)背景繪制要求不高的情況。錯(cuò)切-變形法(shear-warp)是將三維離散數(shù)據(jù)場(chǎng)的投影變換分解為三維數(shù)據(jù)場(chǎng)錯(cuò)切變換和二維圖像的變形2步來實(shí)現(xiàn),從而將三維空間的重采樣過程轉(zhuǎn)換成二維平面的重采樣過程,大大減少了計(jì)算量。
頻域體繪制法(frequency domain volume rendering)[4-6]是利用快速傅立葉變換(FFT),將空間域的體數(shù)據(jù)f(x)變換到頻域得到離散頻譜f(s),然后沿著經(jīng)過原點(diǎn)并與視線正交的抽取平面對(duì)離散頻譜f(s)進(jìn)行插值,重新采樣后得到一個(gè)二維頻譜,對(duì)其作二維傅立葉反變換即可得到該視線方向上的空間域投影圖。該方法繪制速度較快,但是不能保留光吸收特性,無法實(shí)現(xiàn)半透明效果,不適合繪制海水等具有光吸收特性的要素。小波域射線投射(ray tracing in wavelet space)是光線投射法在小波域的實(shí)現(xiàn)。該方法實(shí)時(shí)繪制速度極快,可以達(dá)到網(wǎng)絡(luò)交互級(jí)的繪制速率,適用于在網(wǎng)絡(luò)交互模式下進(jìn)行體繪制[7]。其缺點(diǎn)是繪制的圖像質(zhì)量呈現(xiàn)一種指數(shù)型的自阻塞特性,即隨著繪制質(zhì)量的提高,導(dǎo)致繪制效率的下降,反過來又進(jìn)一步影響繪制的質(zhì)量。小波足跡法(wavelet-base splatting)是先利用傅立葉變換得到每個(gè)小波和尺度函數(shù)的足跡,再通過小波系數(shù)加權(quán)得到投影圖像。該方法能夠漸進(jìn)顯示繪制的圖像,適合于大規(guī)模場(chǎng)景數(shù)據(jù)的分級(jí)繪制。
基于三維紋理映射的體繪制方法是當(dāng)前的一個(gè)研究熱點(diǎn)。該方法首先將需要繪制的數(shù)據(jù)場(chǎng)轉(zhuǎn)化為三維紋理,然后用垂直于視線的一系列切面,按照從后到前或是從前到后的順序,切割整個(gè)數(shù)據(jù)場(chǎng),并將由此產(chǎn)生的相交多邊形中的采樣結(jié)果合成至圖像緩沖區(qū)內(nèi),進(jìn)而得到最終的可視化三維模型。該方法對(duì)硬件要求高,其獲取數(shù)據(jù)的難度也較大,因此不適合繪制大型數(shù)據(jù)場(chǎng)。不同體繪制算法對(duì)比如表1所示。
表1 不同體繪制算法的比較表
雖然不同的體繪制方法的側(cè)重點(diǎn)不同,適用情況也不同,但針對(duì)海底地形的體繪制流程通常包括以下階段:獲取海底地形體數(shù)據(jù)、體數(shù)據(jù)預(yù)處理、體數(shù)據(jù)重采樣、分類、明暗計(jì)算、融合和圖像顯示,見圖3。
在海底地形三維數(shù)據(jù)場(chǎng)可視化過程中,通過在體繪制算法中計(jì)算相關(guān)要素的明暗,設(shè)計(jì)和優(yōu)化光照模型,控制光照的強(qiáng)弱,可以明顯提高海底地形體數(shù)據(jù)可視化效果在視覺上的沖擊力和感受力。因此,在研究海底地形真實(shí)環(huán)境的體繪制方面,光照明暗的控制是十分重要的。但在某些方面,如單獨(dú)顯示海底地形的某一局部、某一種環(huán)境場(chǎng)要素時(shí)(通常需要高亮顯示),該步驟可以通過將明暗程度設(shè)置為一個(gè)固定值,從而簡(jiǎn)化對(duì)光照明暗的控制。重采樣過程通常在分類和明暗計(jì)算之前,但在某些特殊情況下,如體數(shù)據(jù)特征較少、明暗計(jì)算較為簡(jiǎn)單、采樣率較高時(shí),也可以將分類和明暗計(jì)算放在重采樣過程之前,即在預(yù)處理階段完成,以加快繪制速度,稱為提前分類(preclassification)。由于分類和明暗計(jì)算并非線性變換,因此操作順序的更改對(duì)最終繪制結(jié)果會(huì)有影響,但只要原始體數(shù)據(jù)的采樣率足夠高,繪制結(jié)果不會(huì)有嚴(yán)重的走樣。
圖3 體繪制流程圖
在地形的體視化方面,對(duì)于地質(zhì)構(gòu)造層次體繪制的研究相對(duì)成熟。本文以海底地形地質(zhì)構(gòu)造的體繪制為例,進(jìn)一步說明海底地形構(gòu)造及其他環(huán)境場(chǎng)的體繪制技術(shù)的實(shí)現(xiàn)方法和步驟。
選定一定區(qū)域海底地形的實(shí)驗(yàn)數(shù)據(jù)。根據(jù)前面章節(jié)對(duì)體素的定義,將m定義為海底不同地質(zhì)層的地質(zhì)類型;m通過對(duì)海底進(jìn)行鉆孔探測(cè)確定,同時(shí)輔以一定的海底淺層聲納探測(cè)數(shù)據(jù)。
首先確定采樣點(diǎn)數(shù)據(jù)在3個(gè)方向的最小值和最大值[Xmin,Xmax]、[Ymin,Ymax]、[Zmin,Zmax],即該區(qū)域的覆蓋范圍,之后分別沿X、Y、Z方向等間距劃分維數(shù)。由于本實(shí)例主要是研究海底地質(zhì)體的分布情況,而地質(zhì)體通常是從上到下分層分布的,因此對(duì)于Z方向的數(shù)據(jù)要?jiǎng)澐值酶蛹?xì)密,但是也要適度,否則會(huì)占用很大的內(nèi)存,影響交互速度。
在確定海底地形鉆孔探測(cè)數(shù)據(jù)范圍并對(duì)其維數(shù)劃分之后,需要對(duì)數(shù)據(jù)進(jìn)行插值處理。本實(shí)例采用Kriging插值方法。Kriging方法是對(duì)空間數(shù)據(jù)進(jìn)行加權(quán)插值的權(quán)值計(jì)算方法,它采用以距離為自變量的變差函數(shù)來確定權(quán)值。由于變差函數(shù)既可以反映變量的空間結(jié)構(gòu)特性,又可以反映變量的隨機(jī)分布特性,因此使用Kriging方法對(duì)海底地形體數(shù)據(jù)進(jìn)行空間數(shù)據(jù)插值能夠取得比較理想的效果。同時(shí),通過確定變差函數(shù),很容易實(shí)現(xiàn)局部加權(quán)插值,克服了一般距離加權(quán)插值方法插值結(jié)果的不穩(wěn)定性,特別適用于局部小區(qū)域的空間數(shù)據(jù)插值[8]。需要注意的是,該插值方法與變差函數(shù)模型的選擇有很大的關(guān)系[9]。通過插值可以產(chǎn)生各個(gè)地質(zhì)層曲面,從而確定各個(gè)地質(zhì)層曲面之間體數(shù)據(jù)中m的值。
生成地質(zhì)曲面之后,假設(shè)每一地層頂部曲面的屬性代表該地層的屬性,通過各個(gè)數(shù)據(jù)點(diǎn),作沿Z軸方向的垂線,確定該垂線與各地質(zhì)層曲面的交點(diǎn)(如圖4所示),從而確定各數(shù)據(jù)點(diǎn)所屬的地質(zhì)層區(qū)域。用該方法獲得的體數(shù)據(jù)能夠真實(shí)地反映了原始地層分布狀態(tài),較好地解決了層與層之間的交叉判斷、透鏡體(有的地層只出現(xiàn)在某一局部)等問題。在海底地形構(gòu)造的體繪制方面,該方法同樣也可以真實(shí)地反映海底地形中大量出現(xiàn)的孔洞現(xiàn)象。
圖4 確定數(shù)據(jù)點(diǎn)所屬地質(zhì)層
本實(shí)例采用直接體繪制中的光線投射算法對(duì)體數(shù)據(jù)進(jìn)行體繪制,具體步驟如圖5所示。本實(shí)例需要依據(jù)各地層的屬性值(m)對(duì)數(shù)據(jù)進(jìn)行提前分類,將具有相同屬性的數(shù)據(jù)點(diǎn)看作相同類型的數(shù)據(jù)。在提前分類完成后,對(duì)不同類型的各種數(shù)據(jù)點(diǎn)賦予不同的顏色值。由于層狀地質(zhì)體的屬性變化集中在Z方向,因此體數(shù)據(jù)類型的變化也是沿著Z方向的。Z方向上的透明度變化對(duì)最終顯示的視覺效果沒有實(shí)際意義,同時(shí)明暗計(jì)算對(duì)本實(shí)例的實(shí)現(xiàn)效果影響也不大,因此可以將所有類型數(shù)據(jù)的透明度和光照強(qiáng)度設(shè)為一個(gè)顯示效果較好的常數(shù),以便減少計(jì)算量。在重采樣階段,主要是實(shí)現(xiàn)光線投射算法,即屏幕上的每一個(gè)像素點(diǎn)根據(jù)設(shè)定的觀察方向投射出1條射線,在這條射線穿過三維數(shù)據(jù)場(chǎng)之后,沿著這條射線選擇N個(gè)等距離的采樣點(diǎn)(見圖5),并由距離某一采樣點(diǎn)最近的8個(gè)數(shù)據(jù)點(diǎn)的顏色值作三線性插值,求出該采樣點(diǎn)的顏色值,最終在融合階段,將每條射線上的各采樣點(diǎn)的顏色值按照由前向后或由后向前的順序進(jìn)行融合,從而得到發(fā)出該射線的像素點(diǎn)處的顏色值。
本實(shí)例的最終效果見圖6,圖中不同的顏色代表不同的地質(zhì)層,如積沙層、淤泥層、硬泥層、巖石層等。體繪制技術(shù)可以推廣應(yīng)用到海底環(huán)境其他要素的三維可視化方面,如對(duì)海底存在的大量洞穴及暗礁的體繪制可視化,圖6顯示在該區(qū)域地下存在一個(gè)空洞;也可以實(shí)現(xiàn)海洋其他環(huán)境場(chǎng)的體繪制可視化,如不同深度海水的溫度、鹽度、磁力場(chǎng)等。
圖5 光線投射法
圖6 最終效果
本文對(duì)體繪制技術(shù)在海底地形三維可視化中的一些關(guān)鍵問題進(jìn)行了分析,并對(duì)常見的幾種體繪制技術(shù)進(jìn)行了比較,進(jìn)而得到不同體繪制技術(shù)的適用情形。在海底地質(zhì)構(gòu)造體繪制的實(shí)例中,采用光線投射法,進(jìn)一步說明了海底地形體繪制技術(shù)的具體流程。此過程中的主要困難是獲取實(shí)驗(yàn)數(shù)據(jù),同時(shí)對(duì)于海底地形體數(shù)據(jù)的拓?fù)浯鎯?chǔ)結(jié)構(gòu)、多源數(shù)據(jù)融合以及基于體繪制技術(shù)構(gòu)建的三維場(chǎng)景拓?fù)潢P(guān)系描述、LOD、數(shù)據(jù)綜合等多個(gè)方面的問題仍需要進(jìn)一步的研究。
[1]石教英, 蔡文立.科學(xué)計(jì)算可視化算法與理論[M].北京:科學(xué)出版社,1996
[2]唐澤圣.三維數(shù)據(jù)場(chǎng)可視化[M].北京:清華大學(xué)出版社,1999
[3]Sobierajski L,Kaufman A.Volumetricray Tracing[M]. Proc.of the ACM Volume Visualization Symp. New York:ACM Press,1994:11-18
[4]Dunne S, Napel S, Rutt B K. Interactive Display of Volumetric Data by Fast Fourier Projection[J]. Computerized Medical Imaging and Graphics, 1992,16(4): 237-251
[5]Tom M. Fourier Volume Rendering[J].ACM Transactions on Graphics, 1993,12(3): 233-250
[6]Grosso R, Ertl T. Biorthogonal Wavelet Filters for Frequency Domain Volume Rendering//Visualization in Scientific Computing’95[C]. Springer Computer Science, 1995
[7]張加萬(wàn).交互式體繪制關(guān)鍵技術(shù)及其應(yīng)用研究[D].天津:天津大學(xué),2004
[8]王靖波. 基于Kriging方法的空間散亂點(diǎn)插值[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),1999,11(6):525-529
[9]杜宇健,蕭德云. Kriging算法在溫度場(chǎng)計(jì)算中的應(yīng)用分析[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2004,16(8):1 153-1 158
[10]李志林,朱慶. 數(shù)字高程模型[M].武漢:武漢大學(xué)出版社,2004