具有豐富細節(jié)的大規(guī)模海洋場景半物理繪制方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)計大規(guī)模流體場景繪制領(lǐng)域,尤其涉及一種具有豐富細節(jié)的大規(guī)模海洋 場景半物理繪制方法。
【背景技術(shù)】
[0002] 非物理的大規(guī)模海場景繪制方法基于海洋學(xué)家長期觀測所得的經(jīng)驗?zāi)P投鴮崿F(xiàn), 能夠?qū)崟r繪制真實感海洋場景。然而物理模擬的缺失使得它難以模擬浪花、船只尾跡等細 節(jié)現(xiàn)象。而基于物理的海洋場景繪制方法通過求解奈奎斯特方程真實模擬水體中每一小塊 粒子的運動規(guī)律,從而得到真實、準(zhǔn)確的物理現(xiàn)象。然而其極低的運算效率,只適合離線繪 制,難以應(yīng)用于虛擬現(xiàn)實、游戲制作等領(lǐng)域。前人的方法難以同時滿足"真實性"與"實時 性"兩個性質(zhì)。
[0003] 下面先介紹已有的大規(guī)模海洋場景繪制方法:
[0004] 1)基于非物理的模擬方法
[0005] 這類方法主要可以分為三類:空間域方法、頻譜域方法和混合法??臻g域方法的主 要思想是把水面建模為一個高度場,用一系列周期函數(shù)的疊加來計算高度場數(shù)據(jù)。頻譜域 的方法也把水面建模成一個高度場,但是與空間域方法不同的是,這類方法使用經(jīng)驗觀察 得到的水波頻譜來計算高度場數(shù)據(jù)??臻g域與頻譜域的混合方法在用幾何方法描述水面的 基礎(chǔ)上增加了波列成分的細節(jié),因此模擬效果也比較真實。但非物理的方法無法得到真實 的力學(xué)數(shù)據(jù),因此無法產(chǎn)生諸如尾浪、船尾浪花飛濺等真實物理效果。
[0006] 2)基于物理的模擬方法
[0007] 這類方法主要可以細分成為三類:歐拉法、拉格朗日法和混合法。歐拉法是一種基 于網(wǎng)格的方法,它使用2D或者3D的網(wǎng)格,從流體空間中的各個固定點著手,分析每個固定 點上的流體速度、壓強、密度等參數(shù)隨時間和空間的變化。拉格朗日法是一種基于粒子的方 法,用一系列遵循物理規(guī)則的粒子來表示流體,把單個流體粒子作為研宄對象,研宄其運動 要素(位置、速度等)的變化過程,并通過綜合各個流體粒子的運動來獲得一定空間內(nèi)所有 流體質(zhì)點的運動規(guī)律。歐拉法與拉格朗日法混合的主要思想是對三維水體用歐拉網(wǎng)格法表 示,再用拉格朗日法進行小尺度的泡沫和浪花等效果的模擬。這些方法能夠真實的模擬水 體的各種細節(jié)活動,但因為計算量大,無法到達實時繪制,因此難以應(yīng)用于虛擬現(xiàn)實、游戲 等領(lǐng)域。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的目的在于解決現(xiàn)大規(guī)模海場景繪制方法難以同時滿足實時性與真實性 兩方面的問題,提供一種具有豐富細節(jié)的大規(guī)模海洋場景半物理繪制方法。
[0009] 一種具有豐富細節(jié)的大規(guī)模海洋場景半物理繪制方法包括以下步驟:
[0010] 1)使用快速傅里葉變換方法求解海浪菲利普頻譜空間域的高度和梯度數(shù)據(jù);
[0011] 2)根據(jù)當(dāng)前視點位置生成對應(yīng)的海洋細節(jié)層次網(wǎng)格,把步驟1)求得的高度數(shù)據(jù) 賦予海洋網(wǎng)格高度信息;
[0012] 3)根據(jù)步驟1)求得的梯度數(shù)據(jù)求解海洋網(wǎng)格頂點的高斯曲率信息,進而求解海 洋泡沫紋理的透明度;
[0013] 4)通過求解二維波動方程,得到船只尾浪高度信息,疊加在步驟1)所得網(wǎng)格高度 數(shù)據(jù);
[0014] 5)對船只外部框架進行體素化,計算船體受力,并更新船體位置;
[0015] 6)根據(jù)船體與海浪的位置關(guān)系,使用粒子系統(tǒng)生成浪花飛濺效果。
[0016] 所述步驟1)為:
[0017] (1)根據(jù)菲利普頻譜經(jīng)驗公式,求得菲利普頻譜值Ph:
[0018]
【主權(quán)項】
1. 一種具有豐富細節(jié)的大規(guī)模海洋場景半物理繪制方法,其特征在于包括以下步驟: 1) 使用快速傅里葉變換方法求解海浪菲利普頻譜空間域的高度和梯度數(shù)據(jù); 2) 根據(jù)當(dāng)前視點位置生成對應(yīng)的海洋細節(jié)層次網(wǎng)格,把步驟1)求得的高度數(shù)據(jù)賦予 海洋網(wǎng)格高度信息; 3) 根據(jù)步驟1)求得的梯度數(shù)據(jù)求解海洋網(wǎng)格頂點的高斯曲率信息,進而求解海洋泡 沫紋理的透明度; 4) 通過求解二維波動方程,得到船只尾浪高度信息,疊加在步驟1)所得網(wǎng)格高度數(shù) 據(jù); 5) 對船只外部框架進行體素化,計算船體受力,并更新船體位置; 6) 根據(jù)船體與海浪的位置關(guān)系,使用粒子系統(tǒng)生成浪花飛濺效果。
2. 根據(jù)權(quán)利要求1所述的一種具有豐富細節(jié)的大規(guī)模海洋場景半物理繪制方法,其特 征在于所述步驟1)為: (1) 根據(jù)菲利普頻譜經(jīng)驗公式,求得菲利普頻譜值Ph:
其中L=V2/g,表示在連續(xù)的風(fēng)速V下能夠產(chǎn)生的最大的波浪,g表示重力加速度,免 表示風(fēng)向,A是一個調(diào)節(jié)能量譜大小的常數(shù)j是一個二維向量(kx,kz),代表傅里葉分解 中每個諧波分量的角速度,其中kx= 2Jrn/Lx,kz= 2Jrm/Lz,n和m滿足-N/2彡n<N/2 和-M/2彡m<M/2,這里L(fēng)#L彥示要生成的波浪高度場所覆蓋區(qū)域的兩個方向的尺寸, 而N和M表示在這個兩個方向上所生成的離散高度值的數(shù)目; (2) 根據(jù)Ph計算菲利普頻譜系數(shù)fi(lt):
式中MPI2是滿足標(biāo)準(zhǔn)正態(tài)分布的隨機數(shù); (3) 根據(jù)計算海面高度數(shù)據(jù)h(X,t):
其中X為海面每一點在XOZ平面上的位置坐標(biāo)(x,t); (4) 根據(jù)海面高度數(shù)據(jù)h(X,t)求得梯度數(shù)據(jù)(Tx,Tz):
3. 根據(jù)權(quán)利要求1所述的一種具有豐富細節(jié)的大規(guī)模海洋場景半物理繪制方法,其特 征在于所述步驟2)為: (1) 初始化整個空間為4個頂點的矩形網(wǎng)格Gp網(wǎng)格頂點為xn,xi2,xi3,xi4; (2) 對所有矩形網(wǎng)格匕進行以下操作: (a)根據(jù)當(dāng)前視點矩陣Mvie_int計算矩形網(wǎng)格G,頂點的屏幕空間坐標(biāo)x'iJ= Mviewpoint*X;[j'jG{1,2,3,4}; (b) 根據(jù)x'u求得矩形網(wǎng)格Gi的屏幕空間占有面積Si; (c) 如果Si大于設(shè)定的面值閾值常數(shù)S,則將G1平均分為4個矩形網(wǎng)格,并依次對這4 個矩形網(wǎng)格進行操作(2),否則把步驟1)中求得的對應(yīng)該矩形四個頂點的高度數(shù)據(jù)賦予該 矩形四個頂點。
4. 根據(jù)權(quán)利要求1所述的一種具有豐富細節(jié)的大規(guī)模海洋場景半物理繪制方法,其特 征在于所述步驟3)為: (1) 根據(jù)每一點在x軸方向上的梯度數(shù)據(jù)1;和z軸方向上的梯度數(shù)據(jù)Tz估算該點的 尚斯曲率Kgauss:
(2) 根據(jù)Kgauss計算每一點的泡沫紋理透明度ai:
5. 根據(jù)權(quán)利要求1所述的一種具有豐富細節(jié)的大規(guī)模海洋場景半物理繪制方法,其特 征在于所述步驟4)為: (1) 對船體尾部附近的64*64網(wǎng)格范圍內(nèi)的頂點,通過二維波動方程顯式求解在當(dāng)前 時間t的尾浪高度f(X,t):
其中v為船只速度, (2) 更新范圍內(nèi)每一點i的海面網(wǎng)格h(X,t): h' (X,t) =h(X,t)+f(X,t) 其中,h' (X,t)為更新后的每一點i海面網(wǎng)格。
6. 根據(jù)權(quán)利要求1所述的一種具有豐富細節(jié)的大規(guī)模海洋場景半物理繪制方法,其特 征在于所述步驟5)為: (1) 根據(jù)每個船體外表框架三角面片,計算三角面片重心位置x。,將x。作為每一體素的 位置; (2) 根據(jù)重心X。計算吃水深度:
(3) 根據(jù)hdMP計算波浪對體素x。的作用力F。:
其中《為\所在三角面片與XOZ平面夾角;B為用戶自定義參數(shù),代表船只吃水深度 變化的轉(zhuǎn)化率; (4) 計算水下體素數(shù)量占總體體素數(shù)量百分比y,估算船只吃水體積Vin: vin=Vboat*y 其中VbMtS該船總體體積。并且計算浮力Ff (5) 根據(jù)牛頓第二定律,使用F。和F泔算船只的運動,并更新船體位置。
7.根據(jù)權(quán)利要求1所述的一種具有豐富細節(jié)的大規(guī)模海洋場景半物理繪制方法,其特 征在于所述步驟6)為: (1) 求解產(chǎn)生的粒子數(shù)量K:
其中C為設(shè)定好的速度對粒子數(shù)量影響常量 (2) 求解產(chǎn)生的粒子的平均速度il
其中D,E為設(shè)定好的吃水深度改變速度對粒子在垂直方向上和其他方向上的影響比 (3) 設(shè)定常量y作為方差,生成K個S作為均值,y作為方差的隨機向量,作為產(chǎn)生粒 子的速度; (4) 用步驟(3)結(jié)果初始化粒子系統(tǒng)參數(shù),根據(jù)牛頓第二定律讓粒子系統(tǒng)隨時間運動, 從而產(chǎn)生浪花飛濺效果。
【專利摘要】本發(fā)明公開了一種具有豐富細節(jié)的大規(guī)模海洋場景半物理繪制方法。其步驟為:1)求解海浪菲利普頻譜空間域的高度和梯度數(shù)據(jù);2)?根據(jù)當(dāng)前視點位置生成對應(yīng)的海洋細節(jié)層次網(wǎng)格,把求得的高度數(shù)據(jù)賦予海洋網(wǎng)格高度信息;3)根據(jù)求得的梯度數(shù)據(jù)求解海洋網(wǎng)格頂點的高斯曲率信息,求解海洋泡沫紋理的透明度;4)?通過求解二維波動方程,得到船只尾浪高度信息,疊加所得網(wǎng)格高度數(shù)據(jù);5)?對船只外部框架進行體素化,計算船體受力,并更新船體位置;6)?根據(jù)船體與海浪的位置關(guān)系,使用粒子系統(tǒng)生成浪花飛濺效果。本發(fā)明解決了以往方法難以同時滿足“真實性”與“實時性”兩個需求。本方法能夠?qū)崟r的獲得更加真實、具有豐富細節(jié)的大規(guī)模海洋場景。
【IPC分類】G06T17-30
【公開號】CN104574518
【申請?zhí)枴緾N201410826749
【發(fā)明人】王章野, 柳振東, 廖惟博
【申請人】浙江大學(xué)
【公開日】2015年4月29日
【申請日】2014年12月26日