沈祉怡 趙冰化 張曉蕾
(1.92941部隊 葫蘆島 125001)(2.95890部隊 武漢 430030)(3.中國南方航空湖北分公司 武漢 430000)
?
基于OpenGL的實時三維海浪可視化仿真
沈祉怡1趙冰化2張曉蕾3
(1.92941部隊 葫蘆島 125001)(2.95890部隊 武漢 430030)(3.中國南方航空湖北分公司 武漢 430000)
海浪虛擬仿真技術是海上虛擬作戰平臺模型庫構建的重要組成,直接影響到平臺運行的逼真性和可行性。論文首先以重力波為例,分析了對規則海浪模型的仿真方法,然后采用線性波浪疊加法和海浪譜理論,探討了不規則海浪模擬及其三維生成算法,通過建立海面規則網格,調用OpenGL函數庫,實現了對真實海浪進行模擬,為建立海上虛擬作戰平臺海浪模型提供了一種技術方案。
不規則波浪; 海浪譜; 實時仿真; OpenGL
Class Number TP391
海上虛擬作戰平臺需要構建諸多模型庫,關于海浪的建模和實時三維動態仿真是其中一個重要研究課題。海浪模擬作為計算機仿真模擬的熱點和難點之一,一直以來都受到人們廣泛關注。真實的海浪是一種復雜的隨機過程,無論時間還是空間上,都具有不規則性和不重復性[1]。國內外許多學者對此進行了大量研究,歸納起來目前在海浪仿真領域比較常用的幾種方法有:基于幾何造型的方法、基于物理量模型的方法、基于海浪譜的方法和基于Perlin噪聲的方法。
基于海浪譜的方法利用多年來的海洋學觀測結果,無需解復雜的動力學方程就能生成較真實的海浪,20世紀50年代初,Pierson[2]最先將Rice關于無線電噪聲的理論應用于海浪,從此利用譜以隨機過程描述海浪成為主要的研究途徑,至今已提出多種海浪譜,如Pierson-Moscowitz[2]、JOSWAP[3]、Bretschneider、Wallops和TMA譜等[4]。Mastin[5]采用Pierson-Moscowitz譜合成不同振幅和相位的正弦波來仿真海面。Premoze等[6]采用JOSWAP譜,運用與Mastin相似的方法,得到了真實感較強的海面仿真效果,Cieutat等[7]又對其進行了改進,并將水波產生的力應用到船模型上,實現了一個艦艇模擬訓練器。
Tessendorf和Jensen[8]等分別借鑒海洋經驗模型和統計模型,對大量正弦波進行疊加,然后通過快速傅里葉變換(FFT)模擬海浪。Tessendorf的方法被很好地應用到了“水世界”和“泰坦尼克號”兩部電影中。王勝正[9]把海浪高度作為一個獨立變量,時間t時,點x的高度記作h(x,t),x表示地平線上某一點,記作x=x(x,z)。后來他又對該方法進行了改進。尹勇、徐利明等[10]采用基于浪級劃分和海浪譜模擬海浪。Thon[11]綜合采用擺線(trochoid)和譜分析方法模擬平靜的水面。
綜合國內外的研究現狀以及目前海上虛擬作戰平臺對于海浪模型的需求,研究其實時三維動態仿真有著重大的技術價值和現實意義。本文首先以重力波為例,分析并實現了對規則海浪模型的仿真,然后采用線性波浪疊加法和海浪譜理論,探討了不規則海浪模型及其三維生成算法,并調用OpenGL函數庫實現了對真實海浪的模擬。
2.1 重力波的數學模型分析
首先研究規則的海浪模型,以經常觀測到的重力波為例,它通常是由水面的風力引起的。關于重力波,可以設定為一個初始時刻呈指數分布的流體高度擾動,在重力作用下的波動自由傳播過程。流體高度的初始分布函數為
(1)
其中,x0和d分別為擾動中心位置和擾動波幅的半寬。流體在重力作用下開始運動,形成重力波并以圓形向各個方向傳播。根據式(1),重力波滿足平面上一維淺水波方程的特征。對于一維淺水波方程(u和h是流體流速和深度,g為重力加速度):
(2)
在t時刻,重力波形如圖1中波1所示,在(t+Δt)時刻,波形如圖1中波2所示,在H平面的一個波長水域為單位圓環域,自由表面映射成單位圓,底部邊界映射成(r=r0)和(r+Δr)=(r0+Δr)=(r0+u*Δt)的兩個圓。波形傳播示意圖如圖1所示。由(1~2)及圖1可以解出,在任意一點(x,y,h)處,各個變量之間的關系:
(3)

圖1 重力波傳播映射波形
2.2 基于OpenGL的重力波仿真
對重力波進行模擬,首先令波速u=-4,波長A=2,PI=3.14159,初始相位w=0,相位增幅Δw=0.1,則最初的波形(t=t0)的主要代碼如下:
wave[x][y] = 2*sin((float)x*180/PI); w[x][y]=0;
在(t=t0+Δt)時刻,波形的主要代碼如下:
s = sqrt((x-dx)*(x-dx) + (y-dy)*(y-dy)); w[x][y] += △w;
t = s/u; wave[x][y] = A*sin(2*PI *(w[x][y]+t));
在PC機器(CPU為雙核Intel(R) T5670,內存2M,GForce 9300顯卡)運行效果截圖如圖2所示,運行環境為Visual Studio 2008 + OpenGL 2.1庫。

圖2 重力波模擬
3.1 P-M海浪譜分析
海浪譜是海浪變化的重要統計性質,它代表了固定點海浪波能量相對于頻率的分布,對于描述海浪運動具有十分重要的意義。目前已提出的海浪譜主要以風向和浪能量等要素作為參數。換而言之,基于海浪譜的海浪模型能夠交互地調節風向、海浪能量等參數。由于與風向相關的海浪波動理論仍有許多至今無法解決的問題,所以從理論上導出海浪譜是十分困難的,海浪譜主要通過長期觀察得到。
目前常用的海浪譜有P-M譜、Phillips譜、B-M譜等。本文將基于P-M譜構建基本的海浪模型,其譜公式如下(式中,a=8.1×10-3;β=0.74;ag2=0.78):
(4)

(5)
3.2 不規則海浪數學模型分析
對于充分發展的海浪,其統計特性是穩定的,不隨時間改變,因此可以將這時的海浪作為一個平穩隨機過程來研究。海浪可由多個(理論上因為無限多個)不同周期和不同隨即初相位的余弦波疊加而成,公式如式(6):
×cos(kixcosθj+kiysinθj-ωit+εij)
(6)
式中,η(x,y,t)為固定點(x,y)處的波動水面相對于靜止水面在t時刻的瞬時高度;ωi和ki為第i個組成波的圓頻率和波數;t分別為海浪運動的時間;εij為第i個組成波的初始相位,此處取為(0,2π)中的隨機變量。S(ωi,θj)為方向譜,一般寫成如下形式:
S(ωi,θj)=S(ω)G(ω,θ)
(7)
Δω=(ωH-ωL)/M

(8)
3.3 基于OpenGL的不規則海浪模擬
對不規則海浪進行模擬,首先令波長A=0.15+0.05*t,PI=3.14,第i個組成波的初始相位εij,相位增幅Δw=0.1,則海浪波形仿真的具體過程如下。
3.3.1 海浪數學仿真
首先定義一個隨機變量εij:
float e = 0 + rand()%6.28;
櫻桃番茄播種適期是根據當地終霜期早晚、栽培品種與目的、苗床以及分苗次數等情況來確定。一般春季露地栽培,以當地終霜期往前推算60~70天為適宜播種日期??衫藐柶琛卮?、溫室等設施育苗。播前應進行種子處理,多實行普通的溫湯浸種,或采用藥劑浸種。將浸過的種子放在25~30℃的環境下,2~3天即可出芽。選晴天上午播種,先澆底水后再播,可撒播,播種要均勻,覆土厚度不超過1厘米。利用營養缽和育苗盤育苗的,先將容器裝滿營養土,整齊的擺放在畦內,然后澆透水,每穴播2~3粒種子,播種后覆土,然后加蓋地膜或小拱棚,以利增溫和保濕。
其次選取合適的采樣間隔,建立海面規則網格,通過網格點的水平坐標(x,y)和時間來反演出該點點額波高。為仿真簡單起見,令波長為一遞增隨機變量,則海浪的模擬仿真代碼如下:
for (A=0.05;A<5;A=A+0.05)
{
water[i][j] = A *r *cos(10.0 * ( (i + 0.1 * j) / Meshsize) * 2.0 * 3.14 *(wt[i][j]+t)) + e
}
3.3.2 定義觀察點和光源
gluLookAt參數可以設置觀察點的位置,它的參數比較多,前三個參數表示了觀察點的位置,中間三個參數表示了觀察目標的位置,最后三個參數代表從(0,0,0)到(x,y,z)的直線,它表示了觀察者認為的“上”方向。sun_light_XX定義了太陽光源,它是一種白色的光源。
gluLookAt(10.0, 50.0, -100.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0);
GLfloat sun_light_position[] = {0.0f, 0.0f, 5.0f, 1.0f};
GLfloat sun_light_ambient[] = {1.0f, 1.0f, 1.0f, 1.0f};
GLfloat sun_light_diffuse[] = {1.0f, 1.0f, 1.0f, 1.0f};
GLfloat sun_light_specular[] = {1.0f, 1.0f, 1.0f, 1.0f};
3.3.3 仿真結果
在PC機器(CPU為雙核Intel(R) T5670,內存2M,Gforce 9300顯卡)運行效果截圖如圖3所示,運行環境為Visual Stidio 2008 + OpenGL 2.1庫。

圖3 不規則波模擬
由于可見性判斷會同時考慮視見體的六個面,算法相當復雜,因為本文在紋理映射和網格視點可見性方面,仍需要有改進的空間。
該方法簡單直觀,實時性相對較好,可適用于對真實性要求不是很高的情況。但由于采用規則矩形粗網格,進行實時繪制時要避免FFT方法產生的視覺重復性,因此降低了仿真的質量和真實感。
本文首先以重力波為例,分析并實現了對規則海浪模型的仿真,然后采用線性波浪疊加法和海浪譜理論,探討了不規則海浪模型及其三維生成算法,并調用OpenGL函數庫實現了對真實海浪的模擬,仿真在實時性與真實感方面均取得了較好的效果,為建立海上虛擬作戰平臺海浪模型提供了一種可行的技術方案。
[1] 潘玉田,馬新謀,楊棟.三維隨機波浪的數值仿真研究[J].火炮發射與控制學報,2010(3):5-8.
[2] Pierson W J, Moskowitz L. A Proposed Spectral Form for Fully Developed Wind Seas Based on the Similarity Theory of S. A. Kitaigorodskii[J]. Journal of Geophysical Research,1964,69(24):5181-5190.
[3] 肖維超.海浪繪制及仿真技術研究[D].哈爾濱:哈爾濱工程大學,2009:12-31.
[4] 解翠,金一丞,李志華,等.改進的實時海浪網格模型[J].系統仿真學報,2004,16(10):2146-2148.
[5] Mastin G A, Watterberg P A, Mareda J F. Fourier synthesis of ocean scenes[J]. IEEE Computer Graphics and Applications,1987,7(3):16-23.
[6] Premoze S, Ashikhmin M. Rendering natural waters[J]. Compurer Graphics Forum,2001,20(4):189-200.
[7] Cieutat J M, Gonzato J C, Guitton P. A general ocean waves model for ship design[C]//Proc. of Virtual Concept Conference, France: Biarritz,2003:187-194.
[8] Tessendorf J. Simulating ocean water[J]. Simulating Nature: Realistic and Interactive Techniques. SIGGRAPH,2001:4-16.
[9] 王勝正,關克平,徐鐵.航海視景仿真的海浪生成算法[J].上海海事大學學報,2005,26(1):16-18.
[10] Yin Y, Jin Y C, Ren H X. Wave simulation of visual system in marine simulator based on wave spectrums[C]//Proc. of MARSIM’03, Japan: Kanazawa,2003:288-294.
[11] Thon S, Dischler J M, Ghazanfarpour D. Ocean waves synthesis using a spectrum-based turbulence function[C]//Computer Graphics International,2000:65-72.
Real-time Visualization of Three-dimensional Simulation of the Waves Based on OpenGL
SHEN Zhiyi1ZHAO Binghua2ZHANG Xiaolei3
(1. No. 92941 Troops of PLA, Huludao 125001)(2. No. 95890 Troops of PLA, Wuhan 430030) (3. Hubei Branch of China Southern Airlines, Wuhan 430000)
The key technology of wave simulation is an important part of marine virtual combat platforms. It directly affects the fidelity and feasibility. Firstly, the mathematical model and simulation of gravitational waves is analyzed and completed OpenGL-based gravity wave simulation. Then the mathematical model based on wave spectrum is studied, including P-M wave spectrum analysis and mathematical model of irregular waves. Finally, the OpenGL-based simulation of irregular waves is completed.
irregular waves, wave spectrum, real-time simulation, OpenGL
2015年1月17日,
2015年2月27日 作者簡介:沈祉怡,女,助理工程師,研究方向:指揮自動化及三維模擬仿真。趙冰化,女,講師,研究方向:信息系統與智能決策。張曉蕾,女,工程師,研究方向:計算機應用、航空電子。
TP391
10.3969/j.issn1672-9730.2015.07.033