摘 要 在過去的一段時間中,虛擬現(xiàn)實技術(shù)得到了迅速的發(fā)展。特別是在最近幾年,在復(fù)雜虛擬場景中可視化數(shù)據(jù),為研究各種社會問題提供了重要參考。虛擬現(xiàn)實技術(shù)中有兩個很重要的因素,即虛擬場景渲染的實時性和虛擬場景渲染結(jié)果的真實性。盡管現(xiàn)在的硬件設(shè)備可以滿足渲染數(shù)以千萬計的多邊形數(shù)據(jù),但是在特定的復(fù)雜場景環(huán)境下,若不采用合理高效的算法,將會無法滿足現(xiàn)實要求。本文對虛擬現(xiàn)實技術(shù)在地震數(shù)據(jù)可視化中的應(yīng)用進入深入的研究。針對其中的一些關(guān)鍵點,研究結(jié)合陰影體(shadow volume)方法,給出了具體的工程應(yīng)用場合和應(yīng)用方法,并展示結(jié)果。
【關(guān)鍵詞】陰影體 數(shù)據(jù)可視化 貼地繪制 地震帶
由于長期穩(wěn)定的構(gòu)造條件和應(yīng)力場的作用,我國地震空間分布較為穩(wěn)定。但地震活動會隨著時間推移不停的發(fā)生變化,會存在一些地震問題,如震區(qū)搶險救災(zāi),地震預(yù)警,震源分析等。如果通過已知地震空間分布區(qū)域內(nèi)地震信息的數(shù)據(jù),生成一個地震區(qū)域虛擬場景。將地震信息貼地繪制在虛擬場景中,這樣就可以很直觀的為地震問題的探索和研究提供有價值的參考。
1 問題分析
在虛擬現(xiàn)實技術(shù)的實際應(yīng)用中,有兩個重要的過程,建模和渲染。在實際的現(xiàn)實應(yīng)用中,建模過程一般采用成熟的商業(yè)建模來完成。在本文我們可以把模型數(shù)據(jù)看作是固定的,也就是一個靜態(tài)過程。那么在這里,虛擬現(xiàn)實技術(shù)的實時性和真實性的關(guān)鍵點就在于渲染。
陰影體方法是基于細節(jié)層次(LOD)幾何技術(shù)中的一種延伸,它需要幾何形體的輪廓產(chǎn)生一個封閉的容積充當遮擋物,然后根據(jù)光源(視點)和遮擋物的位置關(guān)系計算出場景中會產(chǎn)生陰影的區(qū)域,稱之為掩膜。然后對所有物體進行匹配檢測,以確定物體會不會受到掩膜的影響。陰影體以屏幕空間為工作空間,可以做到單像素精確,改善效果問題。同時,它獨立于底層的地形幾何,并利用渲染引擎提高性能,即使是對于高分辨率的數(shù)據(jù)集也有著廣泛的實用性。在獨立的地形細節(jié)層次幾何部分,我們可以最大程度的保證細節(jié)層次幾何輪廓的清晰,而不用關(guān)注其細節(jié)。對掩膜范圍進行匹配計算后,再對范圍內(nèi)的部分進行渲染。這種處理策略可以很好的應(yīng)用在我們的問題研究中。
2 陰影體過程步驟描述
陰影體的常見的方法是通過CPU進行遮擋物模型處理,使用純粹的硬件加速模版陰影體技術(shù),然后在GPU上進行交叉點檢測和生成陰影掩膜,根據(jù)掩膜進行渲染著色。
常規(guī)的過程是在進行光源(視點)測試判斷后,我們需要把地震空間數(shù)據(jù),構(gòu)建成模型,然后繪制到模版緩沖區(qū),以生成適當遮擋物。而為了最大限度減少大多面體所引起的高光柵工作量,我們要盡量減小大多面體的尺寸。要達到這個目的,我們要移動所生成遮擋物幾何的頂部和底部,使它們朝向地形表面,而兩側(cè)則盡可能的接近地形表面但是并不與它相交。在我們的實現(xiàn)中,我們要利用地形渲染引擎中所固有的四叉樹包圍盒。用包圍盒來表示封閉遮擋物幾何的上下邊界,為遮擋物幾何的頂部和底部提供合適的上下邊界。
在多邊形幾何的情況下,我們要使用整個多邊形幾何封閉包圍盒投影的最大和最小高度值,用來表示多邊形幾何頂部和底部頂點的高度值。所構(gòu)造的遮擋物幾何是被包含在包圍盒中的,這是為了確保環(huán)繞一致,以便于所有面的法線指向外部。在地震條帶面數(shù)據(jù)不被修改的前提下,所得的每個幾何形狀對象都是儲存在有效的緩存對象中。
在了解陰影體的基本原理和遮擋物之后,我們要計算出以屏幕空間為光源同以地震空間數(shù)據(jù)模型作為遮擋物的相對位置關(guān)系,然后對地形層次幾何進行匹配檢測,以確定其是否受到影響,對于受影響的部分,生成緩沖區(qū)掩膜。
掩膜應(yīng)用場景必須針對每個對象分別進行,因為每個對象都是允許有不同顏色的。因此,如果直接在模板緩沖區(qū)中渲染所有對象,應(yīng)用生成后會同時渲染屏幕區(qū)域,我們無法區(qū)分不同對象的顏色。如果只有少數(shù)不同的對象顏色在場景中,可以按顏色分類,渲染每個色組。這樣可以幫助我們減少需要填充顏色的比率和應(yīng)對對象狀態(tài)的改變。根據(jù)上文,我們用地震數(shù)據(jù)模型,參照光源,計算生成了掩膜,下一步把掩膜被渲染到模板緩沖區(qū)中。這樣就可以得到我們要的效果。
然而在實際情況中,我們其實并不需要進行交叉點檢測,因為我們是以地震空間數(shù)據(jù)為遮擋物,它的數(shù)據(jù)地理信息是我們詳細掌握的,我們可以不用CPU進行交點檢測,直接根據(jù)數(shù)據(jù)地理信息生成掩膜,這樣最大的優(yōu)點就是只用一個GPU就可以實現(xiàn),釋放了CPU。因此,在掌握有詳細數(shù)據(jù)的情況下,使用這種策略,可以極大優(yōu)化性能。
之后使用OpenGL中EXT_stencil_wrap和EXT_stencil_side擴展,目的是為了簡化在模版緩沖區(qū)中生成掩膜。EXT_stencil_wrap擴展了兩個特別的額外模版操作,這兩個新的操作類似于現(xiàn)有的遞增和遞減操作,但是新操作的結(jié)果更加的完善,這樣可以減少出現(xiàn)因模版緩沖區(qū)分辨率不足而導(dǎo)致的陰影結(jié)果不正確的情況。EXT_stencil_side擴展提供了雙面模版測試,其中模版關(guān)系狀態(tài)可以對應(yīng)不同的前端面和后端面多邊形。使用雙面模版測試前后端面可以在單通道渲染,這樣可以提高性能。
但這中間也存在一個問題,在出現(xiàn)陡峭斜坡時會略有失真,這是一個普遍問題,當渲染對象應(yīng)保留斜坡的寬度不變時,對于道路或輪廓線之類而言,它們投影會產(chǎn)生失真。
3 結(jié)論
本文闡述了一個陰影體特殊應(yīng)用策略,能夠針對地震條帶的矢量數(shù)據(jù)進行高質(zhì)量和高效率的實時可視化。該算法不需要特殊的硬件擴展。事實上,它是獨立于底層的地形繪制引擎的。并且因為這個算法不受地形幾何形狀變化的影響,特別適合與視圖相關(guān)的LOD 相關(guān)工作。
(通訊作者:姜保慶)
參考文獻
[1]毛華慶.基于GPU優(yōu)化的三維實時渲染技術(shù)的研究[D].武漢:武漢大學,2010.
[2]吳忠.四叉樹LOD算法優(yōu)化及在地形仿真中的應(yīng)用[D].武漢:華中科技大學,2006.
[3]張勇,王莉.視景仿真系統(tǒng)中實時陰影繪制技術(shù)的研究[J].系統(tǒng)仿真學報,2006:180-182+186.
[4]鄒志昴.實時陰影繪制算法研究及在城市仿真中的應(yīng)用[D].武漢:華中科技大學,2007.
作者簡介
朱永哲(1992-),男,河南省許昌市人。碩士研究生學位。主要研究方向為計算機圖形學。
通訊作者簡介
姜保慶(1964-),男,河南省滑縣人。博士學位。現(xiàn)為鄭州電力高等??茖W校教授。主要研究方向為數(shù)據(jù)挖掘,計算機圖形學。
郭朝令(1964-),男,河南省滑縣人。高級實驗師。主要研究方向為熱力發(fā)電及可視化技術(shù)。
作者單位
1.河南大學計算機與信息工程學院數(shù)據(jù)與知識工程研究所 河南省開封市 475001
2.鄭州電力高等專科學校 河南省鄭州市 450000