胡雄俊,楊紅雨,2,萬(wàn) 宇
(1.四川大學(xué) 計(jì)算機(jī)學(xué)院,四川 成都610065;2.四川大學(xué) 視覺合成圖形圖像技術(shù)國(guó)家重點(diǎn)學(xué)科實(shí)驗(yàn)室,四川 成都610065;3.四川川大智勝軟件股份有限公司 研究院飛行模擬機(jī)部,四川 成都610065)
對(duì)海洋的模擬仿真第一步就是對(duì)海浪建模,目前主要的建模方法可以分為4 類[1]:基于幾何模型、物理模型、海浪頻譜和Perlin 噪聲幾種方法,現(xiàn)對(duì)后兩者進(jìn)行簡(jiǎn)單介紹。
基于海浪頻譜的建模具有直觀真實(shí)的特點(diǎn),海浪譜是對(duì)海洋環(huán)境長(zhǎng)期實(shí)際監(jiān)測(cè)得到的數(shù)據(jù)統(tǒng)計(jì)而來,這種建模方法通過對(duì)海浪譜進(jìn)行反演得到高度場(chǎng),模擬海浪波形,一般分為線性疊加法和線性過濾法兩種[2]。這種方法模擬的海浪效果真實(shí)感強(qiáng),但缺陷在于大量的重復(fù)置換貼圖會(huì)在海洋遠(yuǎn)側(cè)產(chǎn)生明顯的瓷磚效應(yīng)[3]。
基于Perlin噪聲的海浪建模方法是通過不同頻率的Perlin噪聲構(gòu)建一種特定的高度場(chǎng)用來模擬海浪。這種方法生成的海浪不會(huì)存在既定方向,隨機(jī)性大,符合自然規(guī)律,有很好的真實(shí)感,但是由于其計(jì)算復(fù)雜度較高,嚴(yán)重影響大面積海洋渲染實(shí)時(shí)性,一般只用來模擬規(guī)模較小的水域。
本文考慮到飛行員在遠(yuǎn)海海面上空飛行時(shí)視野內(nèi)場(chǎng)景,從實(shí)際情況出發(fā),結(jié)合海浪譜和Perlin噪聲這兩種方法的優(yōu)點(diǎn)對(duì)海浪建模,并充分發(fā)揮GPU 超強(qiáng)的并行計(jì)算能力進(jìn)行繪制。最后,在模擬飛行員看到的較真實(shí)的大面積深海海域場(chǎng)景同時(shí),保證較高的海浪繪制實(shí)時(shí)性。
海洋表面的波浪是由數(shù)量龐大的簡(jiǎn)單波形成的,而每一個(gè)簡(jiǎn)單波又是一些正弦波的線性疊加。經(jīng)典的Gerstner模型[4]從近似流體動(dòng)力學(xué)的角度闡述了每一個(gè)簡(jiǎn)單水波經(jīng)過時(shí),海浪表面的質(zhì)點(diǎn)在垂直方向上做周期性運(yùn)動(dòng)。在1986年,被Fournier和W.T.Reeves首次引入圖形圖像領(lǐng)域[5]。其表達(dá)式為
其中,點(diǎn) (x0,y0)是質(zhì)點(diǎn)平衡位置,A 是振幅,也就是質(zhì)點(diǎn)做圓周運(yùn)動(dòng)軌跡的半徑,K 是角波數(shù),ω 是角頻率,t是時(shí)間參數(shù)。設(shè)波長(zhǎng)為λ,周期為T,那么k=2π/λ,ω=2π/T,(kx0-ωt)表示相位角,點(diǎn) (x,y)表示時(shí)刻t質(zhì)點(diǎn)運(yùn)動(dòng)到的位置。
根據(jù)線性波理論和隨機(jī)過程波浪理論[6],認(rèn)為海浪是由無數(shù)個(gè)振幅不同,頻率各異,方向錯(cuò)雜,相位紛亂的正弦波疊加組成。一般通過頻率的形式把海浪的能量表達(dá)出來,并定義為海浪譜。2001 年,Tessendorf J.[7]采用海洋統(tǒng)計(jì)和經(jīng)驗(yàn)?zāi)P停瑢⒋罅空也ㄟM(jìn)行疊加,然后對(duì)結(jié)果進(jìn)行快速傅里葉變換,生成一個(gè)與海浪譜分布近似的有限區(qū)域高度場(chǎng)。通過這種方法生成的海浪效果真實(shí)感較強(qiáng),但是在形成一個(gè)大面積海域時(shí),在遠(yuǎn)處會(huì)產(chǎn)生明顯的周期性效果,圖1是僅使用FFT 生成的一片海面,在圖中遠(yuǎn)處可以明顯看出重復(fù)貼合。另外,這種方法的實(shí)時(shí)性較一般,只能滿足一定網(wǎng)格點(diǎn)數(shù)條件下的要求。
圖1 僅使用FFT 生成的海面
Perlin噪聲是由Ken Perlin在1985年發(fā)明的一種自然噪聲生成算法[8]。它被廣泛運(yùn)用在計(jì)算機(jī)圖形學(xué)。算法通過一些基值進(jìn)行隨機(jī)插值來模擬自然界物體,如高山輪廓,海浪,搖曳的樹枝,石紋等。謝攀[9]用這種方法在Vega Prime中建立對(duì)海面的仿真。給定一個(gè)基礎(chǔ)噪聲函數(shù)和噪聲插值函數(shù),就可以生成一系列連續(xù)的不同振幅和頻率的平滑函數(shù),再將這些平滑函數(shù)進(jìn)行疊加就構(gòu)造了一個(gè)Perlin噪聲函數(shù),可表示如下[10]
式中:(x,y)——像素位置,I——分頻次數(shù),α——平滑參數(shù),其值越小,獲得的噪聲灰度圖越平滑。圖2 中,通過將左邊4張不同分頻次數(shù)的2D 噪聲疊加,最后形成最右邊的擾動(dòng)噪聲紋理。
圖2 經(jīng)過不同分頻次數(shù)疊加形成的擾動(dòng)噪聲紋理
利用此擾動(dòng)噪聲紋理中的細(xì)節(jié)可模擬海面水波的運(yùn)動(dòng),該方法能夠很好地消除海面遠(yuǎn)處重復(fù)貼合帶來的瓷磚效應(yīng),但是由于Perlin噪聲建模的海浪自身周期長(zhǎng),模擬的海浪模型比較平緩,在繪制大面積深海海域時(shí),會(huì)使整片海面的近處表現(xiàn)得比較模糊,缺乏細(xì)節(jié)。與實(shí)際效果相比,存在一定差異。
Tessendorf J.[7]采用海洋統(tǒng)計(jì)和經(jīng)驗(yàn)?zāi)P?,從頻域角度出發(fā),應(yīng)用隨機(jī)噪聲和Phillips頻譜生成海洋頻域數(shù)據(jù),然后用快速傅里葉變換計(jì)算得到海浪空域波形,得到比較接近真實(shí)自然界的波浪。Phillips頻譜在計(jì)算機(jī)圖形學(xué)中被廣泛使用,Phillips頻譜函數(shù)計(jì)算如下
式中:K——波向,可表示為
設(shè)海洋表面是一個(gè)M*N 的網(wǎng)格點(diǎn)數(shù)的矩形區(qū)域,n∈[-N/2,N/2],m∈ [-M/2,M/2],LX,LZ表示矩形區(qū)域在x,z方向上的長(zhǎng)度。ω 是角頻率,A 是一個(gè)數(shù)值倍數(shù)常量,k是波數(shù),L 是風(fēng)速v 的平方與重力加速度g 之比L=v2/g。得到的初始時(shí)刻的高度場(chǎng)值可以用下式表示
式中:ˇG(K)——隨機(jī)Gauss隨機(jī)數(shù)。即ˇG(K)=Gaussian (K)。
每一次的實(shí)時(shí)計(jì)算中,在X,Y,Z 這3個(gè)方向上更新頻譜。在時(shí)刻t得到Z 方向的高度值為式中:ω 為散度,它描述了海底地形與海浪的關(guān)系,受重
最后通過快速傅里葉變換逆變換將頻域信號(hào)轉(zhuǎn)換為空域信號(hào),得到空域高度場(chǎng)值。
從NVIDIA CUDA toolkit1.0開始,到現(xiàn)在最新5.5版本,其功能不斷升級(jí)完善,為C,C++程序員提供了一個(gè)良好的基于GPU 加速應(yīng)用的綜合性發(fā)展環(huán)境。CUDA 編程一般分為主機(jī)端 (HOST)和設(shè)備端 (DEVICE),前者主要是CPU 設(shè)計(jì)控制程序流程,分配調(diào)度釋放資源,后者則是GPU 設(shè)定線程 (Thread)的處理方式并進(jìn)行并行計(jì)算。
CUDA 基本要素Thrust是一個(gè)類似于STL 的CUDA并行算法庫(kù),使用這些高度抽象封裝的算法,隱藏了內(nèi)部細(xì)節(jié),有利于安全性,又提高了可靠性。根據(jù)官方實(shí)驗(yàn)數(shù)據(jù),使用這一要素,在并行排序等計(jì)算上,其性能可以提升5到100倍。在GPU 領(lǐng)域,NVIDIA 推出的CUDA 技術(shù)搭建的是一種并行計(jì)算體系架構(gòu),比單純的CPU 運(yùn)行效率至少高出十倍。實(shí)驗(yàn)數(shù)據(jù)結(jié)果表明,在處理一張256*256的網(wǎng)格計(jì)算中,GPU 的計(jì)算效率要比CPU 高出80 到100倍。
在本文研究中,采用CUDA GPU computing toolkit4.0庫(kù)函數(shù)對(duì)頻譜進(jìn)行快速傅里葉變換。結(jié)合VS2008和OSG得到渲染結(jié)果。硬件條件是windows操作系統(tǒng),3.30GHz Intel Core i5-3550 CPU,8.0GB RAM,2GB 顯 存,NVIDIA GeForce GTX 560Ti。在充分發(fā)揮GPU 高性能并行計(jì)算能力時(shí),很好地彌補(bǔ)了采用FFT 構(gòu)建海浪模型的實(shí)時(shí)性一般的缺陷,在實(shí)時(shí)性和真實(shí)性之間的得到了很好的均衡。
在計(jì)算網(wǎng)格模型時(shí),大體分為兩種算法。一種可以稱為是正投影算法,主要分為以下幾步:
(1)計(jì)算海平面區(qū)域在世界空間的坐標(biāo),劃分得到該坐標(biāo)系下的網(wǎng)格;
(2)將世界空間下網(wǎng)格投影變換到屏幕空間;
(3)在屏幕空間網(wǎng)格上進(jìn)行置換貼圖;
(4)網(wǎng)格渲染。
這種方法將有效規(guī)律的網(wǎng)格從世界空間坐標(biāo)系變換到屏幕空間坐標(biāo)系,因此不會(huì)有斷裂和很嚴(yán)重的閃爍現(xiàn)象,不足之處是需要另外的算法將其擴(kuò)展到海平面。綜合考慮本文研究對(duì)象是飛行員在海面上飛行時(shí)視野內(nèi)場(chǎng)景真實(shí)性,需要嚴(yán)格控制閃爍感,便采用另外一種與之類似的投影網(wǎng)格方法投影網(wǎng)格算法[11],主要步驟分為[12]:
(1)在屏幕空間生成一個(gè)正對(duì)視點(diǎn)的規(guī)律網(wǎng)格;
(2)將網(wǎng)格上的點(diǎn)投影到海平面;
(3)把海平面上的有效網(wǎng)格矩陣變換到世界空間坐標(biāo)系下的網(wǎng)格;
(4)在世界空間坐標(biāo)系下的網(wǎng)格上進(jìn)行置換貼圖;
(5)網(wǎng)格渲染。
將屏幕空間的規(guī)律網(wǎng)格投影到海平面如圖3,圖4 所示。圖3中的地平線曲線是視點(diǎn)所能看到的海洋最遠(yuǎn)處。圖4中海平面上網(wǎng)格點(diǎn)是圖3中均勻的網(wǎng)格點(diǎn)投影形成的??梢钥闯?,圖3中的B 點(diǎn)在視點(diǎn)網(wǎng)格范圍內(nèi),投影到海平面上時(shí)能得到一個(gè)有效網(wǎng)格點(diǎn)。而其中的A 點(diǎn)則超出了視點(diǎn)范圍,在投影時(shí)就會(huì)投影到海平面后面,形成逆向投影點(diǎn) (backfiring)[11]。解決這個(gè)問題,必須引入另外一個(gè)投影攝像機(jī)projector,使之始終朝向海平面,并且用觀察者投影機(jī)查看projector投影矩陣生成的網(wǎng)格[13]。圖4中相機(jī)向上方向與A 點(diǎn)夾角為θ,與A′夾角為天頂角ZenithAngle,為了確保類似A 這樣的點(diǎn)都能正常投影到海平面上,則至少需要偏移一個(gè)差角Ω。
圖3 屏幕坐標(biāo)下的偏移
圖4 投影偏移
這種算法不會(huì)損失屏幕空間每一個(gè)網(wǎng)格點(diǎn),也很容易擴(kuò)展到海平面,但其缺點(diǎn)也是顯而易見的。一是由于偏移后遠(yuǎn)處的網(wǎng)格點(diǎn)很密集,欠采樣,當(dāng)視點(diǎn)移動(dòng)時(shí),與遠(yuǎn)處網(wǎng)格點(diǎn)的視角偏差比較大,從而產(chǎn)生較強(qiáng)的閃爍感,本文將在后面詳細(xì)介紹降低閃爍感方法。二是當(dāng)視點(diǎn)移動(dòng)到一定高度時(shí),在海平面的邊界會(huì)有一些斷裂,因此需要一個(gè)更大的畫布覆蓋這些斷裂,在后面也會(huì)給出解決方法。
在飛行模擬仿真應(yīng)用中,由于飛行員需要長(zhǎng)時(shí)間進(jìn)行模擬訓(xùn)練,為了緩解視覺疲勞,降低圖元柵格化產(chǎn)生的閃爍感是一項(xiàng)非常關(guān)鍵的任務(wù)。
光線跟蹤技術(shù)因?yàn)槠鋵?shí)現(xiàn)原理的簡(jiǎn)潔高效,極大地提高了算法的效率,但與此同時(shí)也引入了欠采樣的問題。在基于光線跟蹤技術(shù)的海洋模擬中,欠采樣會(huì)集中發(fā)生在距離視點(diǎn)較遠(yuǎn)的區(qū)域內(nèi)。其根本原因是因?yàn)楣饩€跟蹤技術(shù)是數(shù)值計(jì)算的結(jié)果,其像素點(diǎn)上表現(xiàn)的顏色信息往往不能反映準(zhǔn)確的圖元顏色信息,這在圖元較遠(yuǎn)的時(shí)會(huì)特別嚴(yán)重。在默認(rèn)的圖形管線中,開啟超級(jí)采樣能有效的緩解圖元投影占據(jù)像素過小帶來的閃爍問題,但同樣的方法并不適用于光線跟蹤。理想情況下,熒幕上每個(gè)像素所表示的顏色信息應(yīng)當(dāng)是攝像機(jī)眼點(diǎn)位置和像素邊界的正方形所構(gòu)成的椎體和圖元在三維世界坐標(biāo)系中相交面的顏色的綜合信息,所以基于光線跟蹤射線求交的方法往往會(huì)造成遠(yuǎn)處像素的不連續(xù)和閃爍。
在實(shí)現(xiàn)過程中,如果在默認(rèn)的繪制管線中不做處理,進(jìn)行頂點(diǎn)位置更新操作會(huì)在頂點(diǎn)處理階段進(jìn)行。但是在這個(gè)階段做更新操作,采樣的結(jié)果將是被采樣紋理上的一個(gè)精準(zhǔn)的像素 (設(shè)置nearest采樣),實(shí)際上在很遠(yuǎn)的地方,需要采樣的應(yīng)該是平鋪置換貼圖展開的大平面的一塊區(qū)域。這樣以某一準(zhǔn)確采樣值代替該像素周圍特定的一塊區(qū)域均值,就會(huì)產(chǎn)生誤差,形成跳躍不連續(xù)。為了避免這種情況發(fā)生,本文采用了一種延時(shí)采樣的方法。利用片源處理階段顯卡能夠取到周邊像素的紋理坐標(biāo)信息,硬件自動(dòng)計(jì)算出mipmap等級(jí)這一特性,實(shí)現(xiàn)均值計(jì)算,將高度的采樣延時(shí)到片源處理階段,具體做法分為三步:
(1)把屏幕空間看到的所有像素需要置換更新的高度存放在一個(gè)屏幕等大的紋理intermediateTexture上。
(2)把這張intermediateTexture紋理做一些適當(dāng)?shù)奶幚恚缓笞鳛橄乱徊降妮斎搿?/p>
(3)在頂點(diǎn)處理階段采樣這張已經(jīng)處理過的紋理,進(jìn)行置換更新,這樣就保證了連續(xù)性。
處理繪制這張intermediateTexture時(shí),需要很大的幾何體,對(duì)像素采樣發(fā)生在圖元內(nèi)部。而透明度抗鋸齒是專門處理幾何體內(nèi)部的,覆蓋采樣抗鋸齒 (CSAA)只對(duì)邊緣進(jìn)行抗鋸齒處理,實(shí)驗(yàn)中在采樣階段開啟Nvidia顯卡透明度抗鋸齒使得效果有更顯著的提高。
經(jīng)過一系列這樣的處理之后,閃爍感降到了人眼可以接受的范圍之內(nèi),看不到閃爍。利用硬件計(jì)算,提升繪制效率,但隨之增加了一張紋理,而且為了避免海平面邊緣出現(xiàn)裂縫,必須根據(jù)視點(diǎn)高度動(dòng)態(tài)地調(diào)整這張紋理的大小。實(shí)驗(yàn)中發(fā)現(xiàn),當(dāng)視點(diǎn)距離海平面高度H 與海平面水平寬度L 滿足關(guān)系式 (8)時(shí),效果最佳
式中:η——拉伸系數(shù),本文實(shí)驗(yàn)中取η=1.40,φ 為視點(diǎn)到最遠(yuǎn)處海平面的射線與視點(diǎn)到海平面垂直方向的夾角。
除了在程序中通過算法降低閃爍感,在柵格化過程中開啟硬件反走樣降低柵格化帶來的閃爍,這兩者結(jié)合能夠很好的減輕閃爍感。
前面的算法是建立在網(wǎng)格分辨率和屏幕分辨率一致的情況下,然而這樣會(huì)導(dǎo)致頂點(diǎn)過多,延時(shí)采樣階段負(fù)擔(dān)過重,降低繪制效率;另一方面,降低網(wǎng)格分辨率又會(huì)很大程度地減少海浪細(xì)節(jié),使得模擬的效果模糊平緩,不夠真實(shí)。為了協(xié)調(diào)兩者,本文實(shí)驗(yàn)測(cè)試得出,采用3*3的網(wǎng)格在效率和細(xì)節(jié)上是一個(gè)比較好的平衡點(diǎn)。
模擬海洋采用的是動(dòng)態(tài)的網(wǎng)格,即使存在某一部分欠采樣,肉眼對(duì)此也并不太敏感,即人眼對(duì)閃爍有一定的寬容度。在這個(gè)寬容度的范圍內(nèi),不會(huì)覺察有明顯的閃爍感。經(jīng)過上述方法應(yīng)用后,實(shí)驗(yàn)中海洋的閃爍感得到了很好的控制。
基于頻譜統(tǒng)計(jì)模型生成的海浪經(jīng)過貼圖后在遠(yuǎn)處會(huì)產(chǎn)生瓷磚效應(yīng)。通過FFT 生成的海浪模型細(xì)節(jié)豐富逼真,但周期短;而基于Perlin噪聲生成的海浪模型周期很長(zhǎng),符合深海域波浪模型特征,不足的是缺乏細(xì)節(jié),模糊平緩,肉眼不敏感。結(jié)合兩種模型優(yōu)點(diǎn),采用蒙板混合。距離視點(diǎn)一定距離 (800 m)以內(nèi)采用基于頻譜模型生成海浪,20000m 以外采用基于Perlin噪聲模型生成的海浪,而在800m 到20000m 之間的區(qū)域,則使用這兩者的混合,其海浪混合如圖5 所示。經(jīng)過混合后的海浪效果更加真實(shí),如圖6所示。相比較前面的圖1,可以明顯看出海浪的細(xì)節(jié)更加豐富細(xì)膩。
圖5 海浪混合
圖6 混合后的效果
海水顏色是由很多復(fù)雜因素共同決定的,比如水中礦物質(zhì),微生物體色和數(shù)量,雜質(zhì)等。另外,水面光照效果(折射,反射,漫射等)對(duì)水面的真實(shí)感也起到重要作用。在本文研究中,主要考慮海面上光的反射和折射。
本文中光照模型滿足Fresnel定律,其中Fresnel系數(shù)ρ計(jì)算公式如下[13]
式中:θt——折射角,θi——反射角。公式給出了Fresnel系數(shù)與反射角,折射角的關(guān)系。但實(shí)際計(jì)算中太過復(fù)雜,可 以 簡(jiǎn) 化 為[10]
式中:E——反射方向,N——法線方向。
當(dāng)視點(diǎn)運(yùn)動(dòng)到近水面處,朝遠(yuǎn)側(cè)海面眺望時(shí),海面反射光將主要影響場(chǎng)景渲染。由光學(xué)原理可知,發(fā)生反射時(shí)反射角等于入射角,即在圖7中有i=r,而圖中法線的計(jì)算在實(shí)際光照渲染中主要分為四步:
(1)基于頻譜建模,經(jīng)過FFT 后得到高度場(chǎng),由該高度場(chǎng)生成梯度值,記為F梯度值;
(2)基于Perlin噪聲建模,生成Perlin噪聲高度場(chǎng),同樣得到Perlin噪聲梯度值,記為P梯度值;
(3)計(jì)算FFT 和Perlin模型混合因子,混合F梯度值和P梯度值;
(4)由混合梯度值得到光照光線。
Fresnel反射紋理從一張預(yù)計(jì)算的紋理中讀取。原理如圖7左部分所示。發(fā)生反射時(shí),在視錐內(nèi)能看到的范圍為圖中粗黑界面與兩條邊界反射光線所圍成的區(qū)域,即圖中所示可見區(qū)域,在這個(gè)區(qū)域外面的物體將被裁剪掉。下一步,利用立方體映射技術(shù) (cube mapping)技術(shù),將反射向量與天空盒立方體面相交,獲取其紋理顏色,生成反射紋理對(duì)象。接著繪制真實(shí)視點(diǎn)所見場(chǎng)景。最后取得反射紋理對(duì)象,并與水體表面顏色混合,得到光照反射圖像。水體表面顏色Cwatersurface的計(jì)算為[13]
式中:R,T——入射光和反射光,在不考慮衰減的情況下它們滿足R+T=1。
圖7 海洋光照反射折射
當(dāng)視點(diǎn)運(yùn)動(dòng)到海面一定高度,近乎垂直地看向水面時(shí),光的折射對(duì)場(chǎng)景的渲染占主導(dǎo)因素。光的折射滿足Fresnel準(zhǔn)則,計(jì)算折射角β滿足
其中n1,n2分別為空氣折射率和水折射率。一般取n1=1.0,n2=1.33。
光的折射與反射計(jì)算相似,生成折射紋理比生成反射紋理相對(duì)簡(jiǎn)單,只需要渲染在實(shí)際視點(diǎn)位置渲染水下不具有透明折射的對(duì)象,并將計(jì)算后將結(jié)果存在一張紋理中[10]。海洋光照反射折射如圖7右部分。
此外,在光照計(jì)算中增加了鏡面光成分。通過實(shí)時(shí)計(jì)算太陽(yáng)的位置和反射光形成海面鏡面光,鏡面系數(shù)隨著太陽(yáng)的位置運(yùn)動(dòng)而變化,圖8是增強(qiáng)光照渲染之后的效果圖。
圖8 增加光照后效果
移動(dòng)視點(diǎn),截取實(shí)驗(yàn)的部分效果如圖9所示。
從圖9可以看出,渲染后的深海海域場(chǎng)景比較接近自然真實(shí)效果。在模擬飛行員海上對(duì)抗演練時(shí),能達(dá)到其對(duì)虛擬海洋真實(shí)性的要求。在實(shí)驗(yàn)過程中,本文提出了基于屏幕空間反向投射高度場(chǎng)網(wǎng)格點(diǎn)的算法,該算法采用了逆向思維,并且能夠?qū)⒗L制的平面海洋擴(kuò)展到球面,便于和陸地地形等一起分布在地球模型上。同時(shí)也詳細(xì)提出了一種解決目前海洋模擬中普遍存在的閃爍問題的方法。用Fraps工具測(cè)試平均繪制幀率為61fps,達(dá)到了預(yù)期效率的要求。
圖9 效果
海洋模擬仿真一直是比較熱門的話題,本文最后的實(shí)驗(yàn)結(jié)果在模擬場(chǎng)景真實(shí)性和繪制實(shí)時(shí)性之間得到了較好的均衡,特別是對(duì)海洋仿真中的閃爍感問題提出了一種解決方法,真實(shí)感更強(qiáng)。當(dāng)然,也存在一些完善提高的地方。首先就是對(duì)虛擬海洋環(huán)境飛行對(duì)抗演練視景來說,場(chǎng)景特效單一,只考慮了簡(jiǎn)單的海洋環(huán)境,需要在后期研究中增加更多的環(huán)境因素,如雨,霧,島嶼,艦艇等。再者是幀率,需要在后期的實(shí)驗(yàn)中進(jìn)一步優(yōu)化模型,并深入研究線程資源的合理分配,充分利用顯存,減少數(shù)據(jù)在CPU 和GPU 之間的傳輸。最后還可以增加水面與水上物體的實(shí)時(shí)交互,如艦艇尾波,細(xì)浪,泡沫,海底的焦散,使場(chǎng)景更加豐富逼真。
[1]XIN Jiajia.The modeling and simulation techniques of OSGbased marine environment [D].Yantai:Yantai University,2012 (in Chinese).[辛佳佳.基于OSG 的海洋環(huán)境建模與仿真技術(shù)研究 [D].煙臺(tái):煙臺(tái)大學(xué),2012.]
[2]YIN Baorui.Virtual simulation of the marine environment based on OpenGL [D].Harbin:Harbin Engineering University,2010 (in Chinese). [尹寶瑞.基于OpenGL 虛擬海洋環(huán)境仿真 [D].哈爾濱:哈爾濱工程大學(xué),2010.]
[3]REN Hongxiang.Realistic scene rendering of ocean based on GPU in marine simulator[D].Dalian:Dalian Marine University,2009 (in Chinese). [任鴻翔.航海模擬器中基于GPU的海洋場(chǎng)景真實(shí)感繪制 [D].大連:大連海事大學(xué),2009.]
[4]HOU Xuelong,HUANG Qilai,SHEN Peizhi.Ocean wave real-time simulation method based on FFT [J].Computer Engineering,2009,35 (22):256-261 (in Chinese). [侯學(xué)隆,黃啟來,沈培志.基于FFT 的海浪實(shí)時(shí)仿真方法 [J].計(jì)算機(jī)工程,2009,35 (22):256-261.]
[5]WEI Dengyue.Ocean wave reality research in the virtual reality[D].Nanning:Guangxi University,2012 (in Chinese).[魏登月.虛擬現(xiàn)實(shí)技術(shù)中的海浪真實(shí)感研究 [D].南寧:廣西大學(xué),2012.]
[6]SE Bastien M Candel.Numerical solution of conservation equations arising in linear wave theory [D].English:Cambridge University Press,2008:1-31.
[7]WANG Rui.The research and application of ocean scene modeling and rendering in virtual environment[D].Hefei:Anhui University,2011 (in Chinese). [王銳.虛擬環(huán)境中海洋場(chǎng)景建模與繪制研究及實(shí)現(xiàn)[D].合肥:安徽大學(xué),2011.]
[8]DING Shaojie.Research on generating technique of virtual ocean environment and special effects [D].Harbin:Harbin Engineering University,2008 (in Chinese).[丁紹杰.虛擬海洋環(huán)境生成及場(chǎng)景特效研究 [D].哈爾濱:哈爾濱工程大學(xué),2008.]
[9]XIE Pan,KANG Fengju,SU Man.Ocean wave simulation based on Perlin noise used in Vega Prime[J].Application Research of Computers,2009,26 (11):4386-4389 (in Chinese).[謝攀,康鳳舉,蘇曼.基于Perlin噪聲的海面仿真在Vega Prime中的應(yīng)用 [J].計(jì)算機(jī)應(yīng)用研究,2009,26 (11):4386-4389.]
[10]LI Bo.Research on ocean surface modeling and simulation in complex environment in real-time [D].Wuhan:Huazhong University of Science and Technology,2010 (in Chinese).[李波.復(fù)雜環(huán)境下的海面實(shí)時(shí)建模與仿真研究 [D].武漢:華中科技大學(xué),2010.]
[11]Zhao Wei,Chen Leiting,Chen Fan,et al.Real-time simulation of ocean system with dynamic environment[C]//International Conference on Information Security and Artificial Intelligence,2010:115-119.
[12]YU Hongyi.Real-time rendering of large-scale water scene[D].Hangzhou:Zhejiang University,2007 (in Chinese).[虞宏毅.大規(guī)模水場(chǎng)景的實(shí)時(shí)繪制 [D].杭州:浙江大學(xué),2007.]
[13]CHENG Yongxin.Real-time 3Dengine and the scene of largescale sea management and implementation [D].Chengdu:University of Electronic Science and Technology of China,2009 (in Chinese).[程勇新.3D 引擎中大規(guī)模海面實(shí)時(shí)渲染及場(chǎng)景管理研究與實(shí)現(xiàn) [D].成都:電子科技大學(xué),2009.]