?

海洋場景繪制關鍵技術研究及實現

2016-11-12 07:51
實驗科學與技術 2016年5期
關鍵詞:半軸海面噪音

張 維

(電子科技大學 信息與軟件工程學院,成都 611731)

海洋場景繪制關鍵技術研究及實現

張 維

(電子科技大學 信息與軟件工程學院,成都 611731)

為更加真實地模擬自然場景中的海洋系統,提高在海洋勘探、電影、游戲、軍事模擬等重要領域中的應用質量,對海面網格建模、高度場計算和紋理映射進行了研究。另一方面,為滿足系統在運行過程中的實時性、穩定性,分別采用了投影網格算法、Perlin噪音、法線擾動技術,并對投影網格算法進行了優化,提出了非均勻視平面網格投影法。最終生成了外形、運動方式和環境較為逼真的海洋系統。經驗證,該系統具有較好的實時性和穩定性。

投影網格;Perlin噪音;法線擾動;非均勻;海洋系統

海洋占據著地球的大部分面積,其中蘊含著豐富的礦物、漁業等資源,對它的探索具有重大的意義;此外,戰爭中,海洋都是關鍵性戰場?;谔摂M場景的海洋研究,有助于降低成本,提高效率。

海洋形態的模擬包含海面網格的搭建和高度場的計算,但是,由于海洋無邊無際且形態的隨機不定,對它的研究也一度成為學術界的難題和探索的方向。對于海洋網格搭建,Claes Johanson提出了投影網格算法,該算法虛擬了分布均勻的平面網格,通過復雜的變換,將采樣點轉換到世界空間中,形成與人視覺相符的海面網格采樣點?;谏傻木W格采樣點,Foster結合有限差分法求解了N-S方程,通過近似的流速場和壓力場模擬出了各個采樣網格點的高程值。

本文基于系統真實感和性能的綜合考慮,提出了非均勻視平面網格法,并結合Perlin噪音法生成高度場實現了場景模型的搭建。此外,為了在場景漫游過程中更好地體現真實感,系統采用了法線擾動技術對海洋紋理進行了渲染。

1 基于改進的投影網格法的海面網格建模

LOD視覺特效[1]在海平面網格的建模過程中得到了應用,即場景中任何區域所顯示的圖形片面數和細節程度[2-3]都應與它所處位置和重要程度相關,并根據需要分配渲染資源。

1.1 投影網格基本原理

投影網格的基本原理是[4-8]:假設空間中有一網格點均勻分布的正方形平面Sp,并用一點光源垂直照射,如圖1(a)所示。Sp平面的網格點經光線透射后,地面S上會生成一系列排列散列不均的投影點,如圖1(b)所示,并且離L較近的區域,網格點排列密度更大;而距離L較遠的區域密度相對較小,這與現實中真實的視覺感比較相符。

圖1 投影網格

1.2 投影網格算法的改進

雖然基于投影網格算法繪制的海洋表面具有LOD特性,但是,這與現實中的觀察往往還存在細微的差別:處于視線聚焦中心區域的部分,成像效果更精細,成像密度更大;而離這個區域越遠,成像效果會越粗糙,成像密度也越小。為了在模擬虛擬場景的過程中體現出這一特性,本文在基于固有的投影網格算法的基礎上進行了改進,提出了非均勻視平面網格投影法,如圖2所示。

圖2 改進后的投影網格

改進的投影網格算法與原算法最大的區別是采用了網格點非均勻采樣的視平面,如圖2所示,該視平面的中心區域采樣密集,周圍區域采樣稀疏,其分布可以用正態分布來近似表述。密度函數為:

以視平面中心為原點做二維坐標系XY。關于X軸,x0代表原點,下標為負的點代表左半軸的區域,下標為正的點代表右半軸的區域,如x-1,x-2,…,x-M/2,x1,x2,…,xM/2。其中,M為X軸采樣點數。由于人眼在采樣過程中在橫縱方向上沒有差異性,所以本文基于模型簡化的考慮,將Y軸上的采樣點也進行相同的假設。在表述之前,先以下式進行變量假設。

那么,處于X左半軸區域的采樣點,可用下式進行變量假設:

式中,x-i表示X左半軸的第i個點,i的最大值為M/2-1。為了表述簡潔,A代表X左半軸第i+1個點到原點的距離。所以,X左半軸上的點由正態分布密度函數可計算出分布形態,它們與原點的距離可用下式進行表述:

式中,X-j代表X左半軸上的第j個點與原點的距離,j=i+1,X0=0。由于采樣點橫縱方向的無差異性以及半軸之間的對稱性,可進一步得出以下分布特性,即Xj=X-j=Y-j=Yj,其中,Y0=0。對于視平面中某點xi,j所處的位置可以用下式進行計算:

式中,x為xi,j點到X軸的距離,y為xi,j點到Y軸的距離。

2 基于柏林噪音的高度場計算

噪音函數的本質是隨機數發生器,但又并非簡單地等同于一般的隨機數發生器:當某個隨機整數作為輸入參數作用于噪音函數時,會輸出一個隨機值,如果輸入參數相同,輸出結果也會相同;而對于普通的隨機數生成器,每一次輸入即便相同,輸出的結果也會不一樣[9]。

下面描述如何基于生成的海平面網格模型,結合柏林噪音計算高程值:

1)首先基于噪聲控制點生成梯度場,假設噪聲控制點為m×n。利用噪聲函數,將控制點作為輸入變量,計算并輸出長度隨機、方向隨機的梯度向量G;

2)以PerlinN(x,y)表示柏林噪音函數,其中x,y為海面采樣網格點I(x,y)的坐標值,其四周的噪音控制點分別由C(i-1,j-1),C(i,j),C(i-1,j),C(i,j-1)表示。當 I(x,y)在這4個噪音控制點之間時,可計算出各個噪音控制點對應的梯度向量與自身到I(x,y)所生成的向量的點積,該點積即為I(x,y)從相鄰控制點獲取的噪音貢獻值,如下式所示:

3)將生成的d1、d2、d3和d4進行X方向上的調和插值,其中,d1和d2作為一組,d3和d4作為另一組,分別用S1和S2表示:

式中,6u5-15u4+10u3為插值公式,通過插值公式能模擬出更好的海面起伏效果。

4)關于Y方向上的調和插值可以用S1和S2進行計算:

5)通過步驟4)得到單一的噪音函數,但是,最終的柏林噪音函數需要由多個不同噪音函數疊加生成,而這些噪音函數往往具有不同的頻率和振幅,疊加方式為:

每一個疊加函數用Nnoise[2i(x,z)]表示,其中,i為疊加函數的序號,αi代表加權幅度值?;谀P偷暮喕托螒B的真實度考慮,本文假設α= 1/2,所以最終柏林噪音函數表達式為:

6)基于式(10)描述的最終的柏林噪聲函數,可以進行海面采樣網格點高程值的計算,其任意一點(x,z)的高程值可以利用下式進行計算:

式中:Pheightfield代表海面采樣網格點(x,z)的高程值,通過所有網格點的高程值,可以突顯表面波動起伏的態勢;Pplane(x,z)代表海面采樣網格點(x,z)的海平面高度值;fnoise(x,z)代表海面采樣網格點(x,z)的噪聲高度值;N代表(x,z)點處的切面法向量。

7)通過步驟6)計算出某一幀海面采樣網格點高程值,但是海洋每時每刻都是動態的,所以每一幀都得對海面采樣網格點的高程值進行更新來保證其連續性。假設p0,P1,P2,…,PtPn代表海洋某連續時刻的分形面。若ti-1

3 基于法線擾動的海面紋理渲染

法線擾動可以讓海面受向量的干擾而表現出粗糙不平,凹凸錯落的表面特征。該方法在網格模型不是非常精細的情況下,配合合理的光照效果,也能模擬出逼真的海洋場景。這對于減小系統開銷,提高實時性有著很大作用[10]。

對于世界場景中的任一海洋表面p,如果上面的某點受干擾向量F(u,v)作用進行擾動,將導致該點以固定的方向和固定的距離產生錯位。擾動后的效果形態可表述為:

式中,N(u,v)表示海洋表面上某點P(u,v)的法向量。擾動后新的法向量可表示為N′=P′u×P′v,其中p′u和p′v分別為:

因為海洋表面紋理的凹凸程度相對于海洋形態的尺寸而言小很多,所以為了在模擬過程中計算的簡便,對式(14)中F產生的作用進行忽略,從而得出:

綜上所述,對于擾動后的新的表面法向量可以表示為:

式中:N為某點擾動前的法向量;D=Fu(N×Pv)+ Fv(Pu×N),為擾動向量。通過法線擾動技術,使得海洋表面在多角度的漫游過程中,都能體現出符合現實感官的凹凸粗糙的紋理效果。

4 實驗結果

通過上述方法,并結合OGRE圖形引擎,最終生成了幀率穩定,真實感較強的海洋場景,程序的運行效果如圖3所示。該場景具有LOD的特效,離視點近的區域,網格劃分更密集,展現的細節更完整;而距離視點較遠的區域,沒有必要開銷過多的資源進行細節的刻畫。雖然系統運行采用的是128×128的網格分辨率,但結合法線擾動技術進行紋理的映射,最終也達到了較真實的視覺效果。

圖3 運行效果

在海洋表面網格建模的過程中,投影網格分辨率與場景真實感和程序運行幀率有關[11]。不同網格分辨率對應的運行幀率如表1所示。

表1 不同網格分辨率下的運行幀率

增加網格的分辨率意味著增加采樣網格點的數量,但增加采樣點也同時意味著程序會開銷更多的資源進行每個采樣點高度場的計算,從而降低系統的幀率。若以1024×1024的分辨率進行采樣,直接導致的結果是9幀/s的運行幀率,這會使人感覺到場景的不連貫性。

5 結束語

本文對于海洋場景的模擬主要從海面網格建模,采樣點的高度場計算和紋理映射3個方面進行完成的。每一步所采用的方法都是基于真實感和實時性的綜合考慮。但是,這對于海洋場景的研究還遠遠不夠,海面和海底的光照特效,海洋場景天氣特效以及船艦與海面的物理交互等等,都是以后深入研究的方向。

[1]劉曉,劉鎮,梅向東.基于實時LOD簡化繪制的渲染優化方法[J].湖南科技大學學報(自然科學版),2015,30(4):92-96.

[2]王強.三維海面可視化仿真技術研究與實現[J].信息通信,2015,156(12):40-41.

[3]YIN M,LI S.Dynamic load balancing strategy for sortfirst parallel rendering[J].Przegld Elektrotechniczny,2013,89(1b):56-58.

[4]胡瑩.三維建模流程的優化和簡化[J].湖南師范大學(自然科學學報),2014,37(2):90-94.

[5]MIHALEF V,METAXAS D,SUSSMAN M.Animation and control of Breaking waves[C]//Siggraph Symposium on Computer Animation.[S.l.]:[s.n.],2004.

[6]JOHANSON C.Real time water rendering[D].Lund: Lund University,2004.

[7]李捷,唐澤圣.三維復雜模型的實時連續多分辨率繪制[J].計算機學報,1998,21(6):481-491.

[8]HUANG Jingjia,LI Sheng,LAI Shunnan,et al.Realtime rendering of large-scale ocean environments[J]. Computer Aided Drafting,Design and Manufacturing,2015,25(2):47-53.

[9]殷詩潤.無邊際三維海洋的真實感建模與仿真研究[D].成都:電子科技大學,2013.

[10]張婕,成彬,王曉明,等.法線式凹凸映射在分塊紋理映射中的應用[J].生物醫學工程學雜志,2014,31(4):899-904.

[11]孫磊.圖形引擎中大規模海洋的實時渲染與交互技術研究與實現[D].成都:電子科技大學,2009.

Research and Realization on the Rendering of Ocean

ZHANG Wei
(School of Information and Software Engineering,University of Electronic Science and Technology of China,Chengdu 611731,China)

In order to simulate the ocean system of natural scene more realisticly,improve application quality in the important fields such as oceanic exploration,films,games,military simulation and so on,a reserch about ocean surface grid modeling,height fields calculating and texture mapping is carried out.On the other hand,in order to satisfy the real-time ability and eliability during running,the algorithm of projected grid,Perlin noise and the technique of normal disturbance are respectively adopted.What’s more,the algorithm of projected grid is optimized and the grid projecting of inhomogeneous visual plane is carried out.As a result,an ocean system with realistic shape,movement mode and environment is formed.The system has good real-time ability and eliability through verification.

projected grid;Perlin noise;normal disturbance;inhomogeneous;ocean system

TP301.6

A

10.3969/j.issn.1672-4550.2016.05.015

2016-09-18;修改日期:2016-09-30

四川省科技廳應用基礎項目(2014JY017)

張維(1987-),男,碩士,主要從事大數據分析、信息安全、圖像處理方面工作。

猜你喜歡
半軸海面噪音
一種橡膠扭力半軸組件
法蘭盤半軸鉆鉸錐孔專用夾具設計
海面床,輕輕搖
探明究竟,大道至簡
——對2018年廣州市一道中考題的研究
噪音,總是有噪音!
第六章 邂逅“胖胖號”
無法逃避的噪音
噪音的小把戲
白噪音的三種用法
海面上的“一千座埃菲爾鐵塔”
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合