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