《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 二維數(shù)據(jù)隨機延拓成三維水域動畫方法研究
二維數(shù)據(jù)隨機延拓成三維水域動畫方法研究
2015年微型機與應(yīng)用第2期
歐訓勇
(瓊州學院 電子信息工程學院,海南 三亞 572022)
摘要: 提出一種簡單有效的、節(jié)約計算開銷的方法,用于制作實現(xiàn)三維場景中水域動畫效果。該方法的實現(xiàn)過程為利用二維模擬水流或波浪數(shù)據(jù)延拓到三維空間中,實現(xiàn)水沿其主導傳播方向產(chǎn)生波動動畫,其中利用了基于物理方程和粒子系統(tǒng)的方法。在動畫過程中,這些二維水流幀畫面被隨機地沿橫向方向取樣,在動畫時間和由用戶自定義噪聲的參數(shù)設(shè)置下取得的切片(稱為時間片)結(jié)構(gòu)中進行。在重構(gòu)三維水流畫面中,使用了帶平滑濾波器的幾何技術(shù),以彌補因取樣所造成的切片損傷。使用隨機布朗運動噪聲數(shù)據(jù)補償三維畫面數(shù)據(jù),逼真地顯示了漣漪波和怒濤波的動畫。
關(guān)鍵詞: 漣漪波 怒濤波 隨機延拓 仿真
Abstract:
Key words :

  摘  要: 提出一種簡單有效的、節(jié)約計算開銷的方法,用于制作實現(xiàn)三維場景中水域動畫效果。該方法的實現(xiàn)過程為利用二維模擬水流或波浪數(shù)據(jù)延拓到三維空間中,實現(xiàn)水沿其主導傳播方向產(chǎn)生波動動畫,其中利用了基于物理方程和粒子系統(tǒng)的方法。在動畫過程中,這些二維水流幀畫面被隨機地沿橫向方向取樣,在動畫時間和由用戶自定義噪聲的參數(shù)設(shè)置下取得的切片(稱為時間片)結(jié)構(gòu)中進行。在重構(gòu)三維水流畫面中,使用了帶平滑濾波器的幾何技術(shù),以彌補因取樣所造成的切片損傷。使用隨機布朗運動噪聲數(shù)據(jù)補償三維畫面數(shù)據(jù),逼真地顯示了漣漪波怒濤波的動畫。

  關(guān)鍵詞: 漣漪波;怒濤波;隨機延拓;仿真

0 引言

  近些年來,計算機動畫技術(shù)表現(xiàn)得極為突出,取得了豐碩的成果。借助計算機圖形技術(shù)對各種自然現(xiàn)象的二維、三維動畫自動生成的研究方法不斷涌現(xiàn),例如計算機模擬生成的爆炸、水流、波浪等動畫效果。這些自然現(xiàn)象的計算機生成方法給動畫制作帶來了極大的方便,為二維和三維動畫場景的制作縮短了周期、降低了成本。

  對于創(chuàng)作大面積水域動畫,如海面的波浪飛濺及波浪洶涌澎湃的動畫時,因其過于復(fù)雜,計算量大,這在計算機動畫領(lǐng)域是一個極具挑戰(zhàn)的課題。本文提出一種簡單高效、節(jié)約計算量的方法來實現(xiàn)大面積海浪、波濤的動畫生成。其原理為利用水波動的二維仿真數(shù)據(jù)隨機延拓成三維水流波動效果。其實現(xiàn)過程如圖1所示。

001.jpg

1 相關(guān)研究文獻分析

  計算機模擬水流動畫技術(shù)已經(jīng)取得了長足發(fā)展。參考文獻[1]利用小振幅波理論和細胞自動機方法構(gòu)建水波動畫的算法;參考文獻[2]使用參數(shù)方法描述水流動畫;參考文獻[3]基于水面的正弦關(guān)系建模描述大型海浪動畫及畫面渲染技術(shù),在處理更復(fù)雜的水動力學有局限性;為獲得更為真實的水波動畫效果與飛濺效果,參考文獻[4]使用粒子系統(tǒng)結(jié)合高維場模型技術(shù)模擬水流動畫;而參考文獻[5]描述通過添加粒子產(chǎn)生噴霧和泡沫的水動畫的視覺效果;在參考文獻[6]中,表現(xiàn)一個全三維波浪粉碎效果的動畫是通過控制用戶定義的二維切片庫進行的;參考文獻[7]提出了基于粒子系統(tǒng)模擬的自適應(yīng)采樣算法,著眼于幾何形狀復(fù)雜區(qū)域的計算,同時減少了流體深處的粒子數(shù)。

  本文的方法由參考文獻[8]的思想改良而成,有關(guān)要點如下:

 ?。?)引入新的隨機內(nèi)容,提供了更好的可控性;

 ?。?)隨機布朗運動(FBM)噪聲的使用,低/高通濾波器(LPF/HPF)和參數(shù)β(相對于波前的形狀/復(fù)雜性)的效果;

 ?。?)多邊形生成渲染,包括表面粒子檢測、低通濾波器的切片取樣。

2 二維數(shù)據(jù)仿真方法

  2.1 模擬仿真方法

  一般來說,水動力學可以由如下微分方程描述:

  12.png

  其中,u是速度,t是時間,ρ為密度,p是壓力,ν是粘度,f是外力。

  MPS方法[9]是通過粒子相互作用來解決式(1)和(2)的。對式(2)應(yīng)用壓力映射后,MPS方法離散化并轉(zhuǎn)化成粒子相互作用的方程。粒子間的所有作用僅限于給定的截止半徑re內(nèi)。兩粒子間相互作用的重量被定義為:

  34.png

  其中,r分別是兩粒子i和j在位置ri和rj間的距離。

  在MPS方法中,流體的局部密度是用粒子數(shù)密度(PND)來表示的。粒子i的PND被定義為:

  5.png

  在自由表面的外側(cè)區(qū)域中不存在粒子時,自由表面上方的PND值減小。這樣,水粒子i滿足的條件為:

  ni<δn0(6)

  其中,n0是PND的標準值,δ是閾值,它們被認為是在自由表面上。

  2.2 水粒子分類

  在三維中重建流水表面,把水粒子根據(jù)它們的PND分類。這一簡單的分類的優(yōu)勢在于,可以無需特殊處理或計算,就能得到水表面和飛濺水花粒子數(shù)的合理近似值。由以下條件根據(jù)式(6)進行分類:

 ?。?)飛濺的水花粒子ni<δ1n0;

 ?。?)水表面粒子δ1n0≤ni≤δ2n0;

 ?。?)水中粒子ni>δ2n0。

  δ1和δ2為用戶自定的閾值。

  2.3 二維水波仿真

  利用二維MPS方法對漣漪波和怒濤波兩類不同的水波進行模擬,其算法如下[10-11]:

 ?。?)初始化模擬環(huán)境;

 ?。?)for each時間步長;

 ?。?)添加粒子;

 ?。?)計算并賦予粒子作用力;

 ?。?)平流粒子數(shù);

 ?。?)設(shè)置相鄰粒子和計算粒子數(shù)(PND);

 ?。?)提取水表面或飛濺水花粒子數(shù);

 ?。?)刪除粒子;

  (9)end for。

  程序?qū)嶒炛惺褂昧艘恍┲匾姆抡鎱?shù),各參數(shù)的值如表1所示。

004.jpg

3 三維動畫仿真

  對上述的二維水波動畫方法,以隨機方式延拓成三維空間中的水波。對于三維表面重建,使用二維高斯濾波器。

  3.1 隨機延拓方法

  很容易想象,如果一個單一的二維波面在三維中被復(fù)制,所產(chǎn)生的表面在橫向方向上看起來絕對是均勻的,如圖2所示。

002.jpg

  切片采樣過程以下列隨機公式取得:

  78.png

  其中,S為仿真動畫的幀;i為自然數(shù),是動畫時間;k取值0,1,…,K-1,是動畫切片;N是噪聲函數(shù);F為噪聲波動范圍參數(shù);A為控制動畫速度的參數(shù);中括號“[]”表示為運算后取最接近的整數(shù)。對于更換噪聲函數(shù)N,采用隨機布朗運動(fBm或也稱為1/fβ)的噪聲。fBm噪音完全由它的功率頻譜控制,與頻率f成反比,參數(shù)β為加權(quán)系數(shù)。

  根據(jù)式(7)和式(8),幀S為在某個動畫時刻i的第k個切片,是根據(jù)隨機式(7)和在約束條件下式(8)下所取得的。如圖1所示。一旦所有的切片都填滿了由隨機取樣的幀,這些切片被線性采樣以構(gòu)造三維水流波形。

  3.2 曲面近似

  為了處理三維表面重建,使用帶高斯濾波器的高度場技術(shù)。這能夠重建近似的三維水面,而補救線狀偽影所造成的二維切片的采樣。

  在XZ平面上創(chuàng)建大小為N×M基礎(chǔ)網(wǎng)格如下:

  9.jpg

  為了取得更好的結(jié)果,在兩個相鄰的切片和截面積(3Δx,2Δz)高斯濾波參數(shù)σ=2.0之間插入一個額外的切片。

3.3 三維漣漪波

  對于模擬漣漪波時,通過在不同方向合成幾類波的方式略有不同。用這種方法,消除了沿橫向方向的波形外觀,它產(chǎn)生在單一方向上的運動。為了最終的h(P)值在每個小區(qū)中心P上的基礎(chǔ)網(wǎng)格IXZ逼近,由式(10)合成臨近點在每個方向上的高度。

  10.png

  其中,ω是用戶自定義重量值,hd是相鄰點Q在d方向上的高度值。

4 實驗效果

  根據(jù)前述的方法和相應(yīng)程序算法,在Intel(R)Core(TM)主頻為2.83 GHz,內(nèi)存為4 GB的環(huán)境下,利用Delphi結(jié)合OpenGL三維引擎庫進行編程實現(xiàn)。漣漪波和怒濤波在不同的布朗隨機運動噪聲參數(shù)下取得了不同動畫效果,如圖3、圖4所示。

003.jpg

5 結(jié)論

  本文提出了利用二維水面波動曲線延拓形成三維的水波動畫效果,利用各類技術(shù)補償二維切片損傷重構(gòu)三維曲面,形成逼真的海水波濤及漣漪動畫效果,在實驗過程中較同類方法實現(xiàn)的三維海浪波濤動畫有相當?shù)男?。?jié)約使用大量的粒子數(shù),為后期動畫效果的渲染節(jié)約了系統(tǒng)資源。此研究為動畫制作中的大型水域動畫場景的計算機生成提供了技術(shù)支持,節(jié)約了大量類似開發(fā)的成本并縮短制作周期。此項技術(shù)方法將繼續(xù)向GPU領(lǐng)域邁進,以期在今后的研究中能更好地以快速渲染自動生成大型水域中的波濤洶涌、水浪渦旋等動畫效果。

參考文獻

  [1] 楊懷平,胡事民,孫家廣.一種實現(xiàn)水波動畫的新算法[J].計算機學報,2002,25(6):612-617.

  [2] FOURNIER A, REEVES T. A simple model of ocean waves[J]. Proceedings of SIGGRAPH, 1986(20):75-84.

  [3] DARLES E, CRESPIN B, GAZANFARPOUR D. A survey of ocean simulation and rendering techniques in computer graphics[J]. Computer Graphics Forum,2011,30(1):43-60.

  [4] MAES M M, FUJIMOTO T, CHIBA N. Efficient animation of water flow on irregular terrains[C]. Proceedings of International Conference on Computer Graphics and Interactive Techniques, GRAPHITE′06, 2006:107-115.

  [5] TAKAHASHI T, FUJII H, KUNIMATSU A, et al. Realistic animation of fluid with splash and foam[J]. Computer Graphics Forum, 2003,22(3):391-400.

  [6] ADAMS B, PAULY M, KEISER R, et al. Adaptively sampled particle fluids[J]. ACM Transactions on Graphics,2007,26(3):48.

  [7] HONG W, HOUSE D, KEYSER J. Adaptive partcles for incompressible fluid simulation[J]. The Visual Computer,2008,24(7):535-543.

  [8] FUJIMOTO T, MIYAUCHI S, SUZUKI T, et al. Noise-based animation of waving phenomena[C]. Proceedings of   IWAIT2005, IEICE Technical Report. Image Engineering, 2005,104(545):93-98.

  [9] KOSHIZUKA S, NOBE A, OKA Y. Numerical analysis of breaking waves using the MPS method[J]. International Journal for Numerical Methods in Fluids, 1998(26):751-769.

  [10] 李海,汪繼文.基于粒子系統(tǒng)的位置可控有聲煙花模擬[J].微型機與應(yīng)用,2013,32(9):32-34.

  [11] 袁雪霞,王繼州.導彈煙霧的快速模擬[J].微型機與應(yīng)用,2013,32(10):32-34.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。