一種動(dòng)態(tài)插值方法和海面場(chǎng)景生成方法
【專利摘要】本發(fā)明公開了一種動(dòng)態(tài)插值方法和海面場(chǎng)景生成方法,動(dòng)態(tài)插值方法包括將海面生成點(diǎn)坐標(biāo)設(shè)置為與時(shí)間相關(guān)的函數(shù)和計(jì)算任意一點(diǎn)處應(yīng)添加的動(dòng)態(tài)插值點(diǎn)個(gè)數(shù)和各動(dòng)態(tài)插值點(diǎn)對(duì)應(yīng)的坐標(biāo);海面場(chǎng)景生成方法采用新的動(dòng)態(tài)插值方法——多重動(dòng)態(tài)不均勻插值,可以根據(jù)具體的高度差的值動(dòng)態(tài)地添加一個(gè)或多個(gè)點(diǎn),這樣就能夠有效地減少圖像由于隨機(jī)參數(shù)的不可預(yù)見性和不可控性產(chǎn)生的圖像不連續(xù)現(xiàn)象,提高仿真效果,同時(shí)由于減少了海浪波動(dòng)方程的三角函數(shù)計(jì)算,對(duì)提高仿真的實(shí)時(shí)性也有較好的作用。
【專利說明】一種動(dòng)態(tài)插值方法和海面場(chǎng)景生成方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種動(dòng)態(tài)插值方法和海面場(chǎng)景生成方法。
【背景技術(shù)】
[0002] 海浪的研究在現(xiàn)代水力學(xué)、流體力學(xué)、波浪學(xué)、計(jì)算機(jī)圖形學(xué)、虛擬現(xiàn)實(shí)應(yīng)用、雷達(dá) 回波模擬等領(lǐng)域中凸現(xiàn)出重要價(jià)值。海浪模擬技術(shù)作為海浪研究的重要內(nèi)容:在軍事領(lǐng)域 中應(yīng)用于海戰(zhàn)場(chǎng)環(huán)境仿真研究、海軍戰(zhàn)術(shù)導(dǎo)彈飛行控制實(shí)驗(yàn)、海面回波仿真、雷達(dá)成像模擬 研究等,為作戰(zhàn)平臺(tái)的仿真開發(fā)、武器系統(tǒng)的研制奠定基礎(chǔ)。
[0003] 目前針對(duì)海浪的建模方法有很多類,但多數(shù)建模方法只針對(duì)某些具體應(yīng)用需求, 使得模型的側(cè)重點(diǎn)有所不同。例如三維網(wǎng)絡(luò)游戲、動(dòng)畫片、海戰(zhàn)場(chǎng)環(huán)境仿真等應(yīng)用中,模型 的建立更注重實(shí)時(shí)性的要求,因而此領(lǐng)域?qū)⒃谔岣邔?shí)時(shí)性的前提下,增強(qiáng)視覺的逼真效果。 對(duì)于某些工程性較強(qiáng)的領(lǐng)域,如船舶控制工程試驗(yàn)、海面回波仿真及對(duì)海面波浪的SAR成 像仿真等應(yīng)用中,則進(jìn)一步要求海浪模擬的逼真程度。
[0004] 目前海浪的三維仿真一般采用基于海浪譜的方法,它是采用適當(dāng)?shù)暮@俗V反演方 法模擬海浪,一般常采用的反演方法有線性過濾法和線性疊加法。所謂線性過濾法就是根 據(jù)待模擬的海浪譜,設(shè)計(jì)出一個(gè)過濾器,在這個(gè)過濾器的一端輸入某一已知的隨機(jī)過程,通 常采用白噪聲,在另一端即可得到所需模擬的波面過程。采用此法得到的海浪與真實(shí)的海 浪譜有較大誤差,所以沒有得到廣泛應(yīng)用。所謂線性疊加法就是將海浪視為由多個(gè)不同振 幅、不同角頻率和不同隨機(jī)相位的波疊加而成,只要找到各個(gè)組成波的波幅、角頻率、隨機(jī) 相位等要素,就可以得到這個(gè)隨機(jī)過程的一次實(shí)現(xiàn)。這種方法物理概念清晰,計(jì)算方便快 速,而且模擬結(jié)果和海浪譜非常吻合,所以利用率較高。目前,線性疊加法中應(yīng)用較多的是 Longuet-Higgins模型和快速傅立葉變換(FFT)法。
[0005] Mastin于1987年提出一種海水模擬的統(tǒng)計(jì)學(xué)模型,此模型通過快速傅立葉變換 (FFT)將經(jīng)驗(yàn)得出的海浪譜轉(zhuǎn)換成海面高度場(chǎng),基于快速傅立葉變化的海浪模擬是在這些 波浪模擬方法中效果比較逼真的一種模擬方法。由于浪的彌散性,使疊加而成的正弦波看 上去是連續(xù)的,而不僅僅是一堆不相關(guān)的正弦波的簡(jiǎn)單疊加,從而避免了形成不均勻的波 浪場(chǎng)。由于FFT具有周期性,我們可以通過FFT變換生成一小塊海域,然后拼接成較大的海 面。
[0006] 海浪的計(jì)算機(jī)實(shí)現(xiàn)需要大量的數(shù)據(jù)計(jì)算才能生成,但是由于海面仿真數(shù)據(jù)量大, 計(jì)算量多,普通計(jì)算機(jī)難以逼真的完成大場(chǎng)景的海面實(shí)時(shí)仿真,計(jì)算的實(shí)時(shí)性是海面仿真 的瓶頸。三維海浪的運(yùn)動(dòng)效果的真實(shí)感和實(shí)時(shí)性是兩個(gè)衡量模擬效果的重要方面,在兩者 之間找出平衡點(diǎn)是十分必要的,常采用的方法有動(dòng)態(tài)插值、紋理映射技術(shù),雙緩沖技術(shù)以及 LOD (Levels of Detail)技術(shù)。
[0007] 蘇州大學(xué)陳志偉的碩士論文《基于統(tǒng)計(jì)模型和GPU的實(shí)時(shí)海浪模擬研究》提出以 下研究論點(diǎn):以快速傅里葉變換方法生成海浪表面的算法為基礎(chǔ),利用編程工具CUDA將 FFT運(yùn)算從CPU移至GPU上執(zhí)行,提高了海浪高度場(chǎng)的生成速度。為了能夠提高大規(guī)模海浪 的繪制速度,該論文提出了一種利用投影網(wǎng)格算法進(jìn)行海面網(wǎng)格劃分的方法,來替代用來 加快場(chǎng)景繪制的傳統(tǒng)LOD技術(shù),并利用環(huán)境紋理映射技術(shù)進(jìn)行實(shí)時(shí)海浪繪制。本發(fā)明提出 了一種采用新的動(dòng)態(tài)插值方法實(shí)現(xiàn)海面場(chǎng)景的生成。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的目的是提供一種動(dòng)態(tài)插值方法以實(shí)現(xiàn)海面場(chǎng)景的生成,同時(shí)提供了一種 使用該動(dòng)態(tài)插值方法的海面場(chǎng)景生成方法。
[0009] 為了實(shí)現(xiàn)以上目的,本發(fā)明動(dòng)態(tài)插值方法所采用的技術(shù)方案是:一種動(dòng)態(tài)插值方 法,步驟如下:
[0010] (1)將海面生成點(diǎn)坐標(biāo)為(X,y,z)設(shè)置為與時(shí)間相關(guān)的函數(shù):
[0011] Yj = (x, z, t) = Ajsin (kjX-ω jt+Φ j) cos (kjZ-ω jt+Φ j)
[0012] 其中,Ai為根據(jù)輸入的設(shè)定參數(shù)按照對(duì)應(yīng)關(guān)系所取的仿真設(shè)定值;
[0013] 凡為設(shè)定的仿真周期,則% = 1/凡;
[0014] h為組成波的波數(shù)A = ω J/g ;
[0015] 朽為隨機(jī)生成的相位角;
[0016] (2)計(jì)算任意一點(diǎn)處應(yīng)添加的動(dòng)態(tài)插值點(diǎn)個(gè)數(shù)N和各動(dòng)態(tài)插值點(diǎn)對(duì)應(yīng)的坐標(biāo);假 定兩相鄰時(shí)刻分別為t 2,其計(jì)算公式如下:
[0017] N=Int(d/l)
[0018] 其中,d為該點(diǎn)在相鄰兩個(gè)時(shí)刻的波高差值;1為均勻度參數(shù);
[0019]
【權(quán)利要求】
1. 一種動(dòng)態(tài)插值方法,其特征在于,步驟如下: (1) 將海面生成點(diǎn)坐標(biāo)為(X,y,Z)設(shè)置為與時(shí)間相關(guān)的函數(shù): Yi = (x, z, t) = Ajsin (kjX-ω jt+Φ j) cos (kjZ-ω jt+Φ j) 其中,A為根據(jù)輸入的設(shè)定參數(shù)按照對(duì)應(yīng)關(guān)系所取的仿真設(shè)定值; 凡為設(shè)定的仿真周期,則% = 1/% ; h為組成波的波數(shù)A = ω^/g ; 奶為隨機(jī)生成的相位角; (2) 計(jì)算任意一點(diǎn)處應(yīng)添加的動(dòng)態(tài)插值點(diǎn)個(gè)數(shù)N和各動(dòng)態(tài)插值點(diǎn)對(duì)應(yīng)的坐標(biāo);假定兩 相鄰時(shí)刻分別為h、t2,其計(jì)算公式如下: N = Int (d/1) 其中,d為該點(diǎn)在相鄰兩個(gè)時(shí)刻的波高差值;1為均勻度參數(shù); t - t ^ ^ ^ . (.-V",,/" ) = (A,? 6 ) + (^~L)[(..v,, y,, Z,, /,) - (.V,, y,, Z,, /,)], 0 5? n 5? Ν' h-h 其中,(Xi,yi,Zp t)和(x2, y2, z2, t2)為該點(diǎn)在兩相鄰時(shí)刻tp t2的坐標(biāo);tn為tp t2之 間第n個(gè)動(dòng)態(tài)插值點(diǎn)對(duì)應(yīng)的時(shí)刻,(xn,yn,zn,tn)為t n時(shí)刻對(duì)應(yīng)的坐標(biāo)值。
2. -種海面場(chǎng)景生成方法,其特征在于,步驟如下: (1) 利用FFT法計(jì)算海面生成點(diǎn)坐標(biāo)(X, y, z); (2) 將點(diǎn)坐標(biāo)(X, y, z)設(shè)置為與時(shí)間相關(guān)的函數(shù): Yi = (x, z, t) = Ajsin (kjX-ω jt+Φ j) cos (kjZ-ω jt+Φ j) 其中,A為根據(jù)輸入的設(shè)定參數(shù)按照對(duì)應(yīng)關(guān)系所取的仿真設(shè)定值; 凡為設(shè)定的仿真周期,則% = 1/% ; h為組成波的波數(shù)A = ω^/g ; 灼為隨機(jī)生成的相位角; (3) 計(jì)算任意一點(diǎn)處應(yīng)添加的動(dòng)態(tài)插值點(diǎn)個(gè)數(shù)N和各動(dòng)態(tài)插值點(diǎn)對(duì)應(yīng)的坐標(biāo);假定兩 相鄰時(shí)刻分別為h、t2,其計(jì)算公式如下: N = Int (d/1) 其中,d為該點(diǎn)在相鄰兩個(gè)時(shí)刻的波高差值;1為均勻度參數(shù); (-W",ζ"Λ.) = (AV.VI,ZI4) + ~L)[(.V,. V,"Z,,/,)-(.V,, y,,Z;./,)], 05?nSSN h ~l\ 其中,(Xi,yi,Zp t)和(x2, y2, z2, t2)為該點(diǎn)在兩相鄰時(shí)刻tp t2的坐標(biāo);tn為tp t2之 間第n個(gè)動(dòng)態(tài)插值點(diǎn)對(duì)應(yīng)的時(shí)刻,(xn,yn,zn,tn)為t n時(shí)刻對(duì)應(yīng)的坐標(biāo)值; (4) 根據(jù)視景體大小,利用L0D構(gòu)建細(xì)節(jié)層次模型; (5) 利用雙緩沖進(jìn)行加速海浪繪制。
3. 根據(jù)權(quán)利要求2所述的海面場(chǎng)景生成方法,其特征在于:所述步驟(4沖利用L0D構(gòu) 建細(xì)節(jié)層次模型時(shí),采用3級(jí)L0D網(wǎng)格,將整個(gè)海面按照離視點(diǎn)遠(yuǎn)近,劃分非大小相等的三 塊,每塊采用不同的分辨率構(gòu)造網(wǎng)格,網(wǎng)格間采用二叉樹分割。
4. 根據(jù)權(quán)利要求2或3所述的海面場(chǎng)景生成方法,其特征在于:所述步驟(5)中利用雙 緩沖進(jìn)行加速海浪繪制時(shí),調(diào)用OpenGL中的函數(shù)SetPixelFormatO繪制海浪運(yùn)動(dòng)圖像的 裝置,設(shè)置顯示形式為雙緩沖;繪制完成后,調(diào)用函數(shù)SwapBuffetsO交換圖形緩沖區(qū)圖像 裝置,用于將圖形緩沖區(qū)圖像內(nèi)容交換到當(dāng)前畫面緩沖區(qū);圖形緩沖區(qū)和當(dāng)前畫面緩沖區(qū) 的顯示數(shù)據(jù)交替出現(xiàn)實(shí)現(xiàn)海面場(chǎng)景的生成。
【文檔編號(hào)】G06T19/00GK104299259SQ201410151789
【公開日】2015年1月21日 申請(qǐng)日期:2014年4月16日 優(yōu)先權(quán)日:2014年4月16日
【發(fā)明者】李建勝, 陳杰, 郝向陽, 劉松林, 王俊亞, 賀磊, 蔣理興, 欽桂勤, 葛磊, 朱述龍, 黃東華 申請(qǐng)人:李建勝, 陳杰, 郝向陽, 劉松林, 王俊亞, 賀磊, 蔣理興, 欽桂勤, 葛磊, 朱述龍, 黃東華