閆志偉, 朱曉臨, 劉洋洋, 梁欣鑫(合肥工業(yè)大學(xué)數(shù)學(xué)學(xué)院,合肥230009)
?
一種改進(jìn)的定位流體方法
閆志偉, 朱曉臨, 劉洋洋, 梁欣鑫
(合肥工業(yè)大學(xué)數(shù)學(xué)學(xué)院,合肥230009)
[摘 要]針對模擬流體,提出了一種基于定位流體方法的改進(jìn)模型,繼承了定位動態(tài)學(xué)方法的穩(wěn)定性以及光滑粒子流體動力學(xué)方法的光滑性,通過將流體粒子按速度值動態(tài)分配支集半徑和給流體粒子添加密度限制來增加計算準(zhǔn)確性并加強(qiáng)流體的表面細(xì)節(jié)的模擬效果.
[關(guān)鍵詞]流體模擬;光滑粒子動力學(xué);定位動態(tài)學(xué);定位流體
流體模擬是計算機(jī)圖形學(xué)的一個重要研究領(lǐng)域,自從20多年前粒子系統(tǒng)引入計算機(jī)圖形學(xué)領(lǐng)域以來,基于粒子方法的流體模擬技術(shù)一直都在不斷的發(fā)展和改善.早在1992年Monaghan就提出了SPH (Smoothed Particles Hydrodynamics)方法模擬流體[1].譚小輝、萬旺根[2]用SPH方法模擬了水流倒入水杯的動態(tài)過程.Frank Losasso[3]結(jié)合SPH和PLS(Particle Level Set)兩種方法模擬了大場景的逼真海浪效果.Fengquan Zhang[4]改進(jìn)了SPH方法中的壓力項的求解公式,近似保證了水流模擬的不可壓縮性,模擬出來的液體飛濺的效果也很好.Solenthaler[5]用預(yù)測校正粒子的壓力方法來確保模擬流體的不可壓縮性,這種處理巧妙地避免了求解壓力項中復(fù)雜的泊松方程,同時還可以用大時間步長來模擬.Hagit Schechter[6]在粒子表面人工添加了一層“幽靈粒子”(Ghost Particle)防止粒子模擬的非常規(guī)聚集和潑濺效果.Kenneth[7]用限制流體(Constraint Fluids)的方法,不在對SPH中的Navier-Stokes方程求解,而是替換成一個較為簡單的密度限制方程,雖然該方法可以加快流體模擬的速度,但是模擬出來的效果一般.Matthias Müller[8]提出了定位動態(tài)學(xué)方法(Position Based Dynamics,PBD),其直接在限制流體方法中更新粒子的位置值而不是像原來的類SPH方法中的去更新速度值.這種方法有效的避免了粒子的碰撞問題,具有很好的穩(wěn)定性,模擬出來的效果也很真實.Matthias Müller[9]又提出了定位流體(Position Based Fluids,PBF)的方法;該方法基于定位動態(tài)學(xué),用SPH方法來計算PBD方法中的密度限制的迭代過程,而且在處理壓力項時,采取添加人工壓力項的方式大大簡化了運算過程,還改善了粒子模擬的表面張力效果,使得最終模擬出來的效果極為逼真.
在大場景的流體模擬中,定位流體方法不僅計算量小而且模擬效果真實.然而,這個計算量小只是相對于其他類SPH方法來說的,其本身的計算量還是很大;因此該模擬方法對計算機(jī)硬件的要求很高.其次,效果的逼真也是建立在大規(guī)模的粒子運動基礎(chǔ)之上,若單就細(xì)節(jié)模擬的效果來對比,定位流體模擬是不優(yōu)于SPH方法的.本文改進(jìn)的目的就是為了提高粒子細(xì)節(jié)模擬效果的同時又能較好的減少粒子運動的計算量.
流體模擬要求的不可壓縮性體現(xiàn)在密度上就是要保證粒子的密度值不變,定位流體的思想就是當(dāng)粒子不能保證密度不變時對粒子的位置進(jìn)行修正直到該粒子所處的位置基本達(dá)到所要求其密度在限定的誤差范圍內(nèi).首先對粒子i,令
其中pi表示粒子i的位置,ρ0是粒子的靜止密度,而粒子i的密度ρi由SPH方法中求密度公式計算
其中pj表示粒子i的支集半徑內(nèi)除粒子i外粒子j的位置,j=1,2,…,n;h是支集半徑,表示以粒子i為中心,h為半徑的范圍.mj表示粒子j的質(zhì)量.求密度的核函數(shù)為
其中r=pi-pj是兩個粒子位置的位矢,r=|r|.
接下來要找出一個粒子的位置修正值Δp,使之滿足等式
為了更快速地得到粒子位置校正值Δp,可以限定Δp與函數(shù)梯度C(p)的方向一致,這樣就可以確定一個標(biāo)量λ滿足
再由(3)式可以進(jìn)一步得出
即
此處的梯度用下面的核函數(shù)來近似估計
綜上可得
公式(8)在粒子支集半徑內(nèi)的粒子很少的時候會導(dǎo)致數(shù)值的不穩(wěn)定,因此不加選擇的使用外力混合的方法
ε是一個調(diào)節(jié)參數(shù);此時公式(8)變?yōu)?/p>
為了加速粒子位置校正值的更新,把支集半徑內(nèi)的粒子的密度限制系數(shù)λj也考慮到粒子位置的變化因素中,此時Δp的值就變?yōu)?/p>
在SPH方法中,還有一個常見的問題就是粒子總是會有聚成一團(tuán)的情形,這主要是因為粒子支集半徑內(nèi)的粒子數(shù)較少,某些粒子的壓力項為負(fù)值形成的.如果給粒子人工添加一個非負(fù)的壓力項,這個問題就可以避免.這里加入的壓力項也是一個平滑核函數(shù)
其中當(dāng)
時,計算出的數(shù)據(jù)穩(wěn)定性就比較理想.此時公式(11)變?yōu)?/p>
這樣通過數(shù)次迭代后,進(jìn)行位置校正過的粒子密度會控制在我們可以接受的誤差范圍內(nèi),并且粒子會將支集半徑內(nèi)的粒子拉向自己,產(chǎn)生模擬的流體表面張力效果.
后面為了保持模擬過程的能量守恒,還需要給粒子加入渦流限制(vorticityconfinement).添加每個粒子的旋轉(zhuǎn)力形式如下
其中ωi表示旋量,v表示速度表示粘性力,ε*是一個調(diào)節(jié)參數(shù).此處的核函數(shù)計算估計形式如下
最后為了保證每個粒子的連續(xù)運動的實時效果,給粒子人工添加了適當(dāng)?shù)恼承粤?/p>
(i)在計算公式(1)時,當(dāng)粒子出現(xiàn)在邊界或與固體碰撞時,其支集半徑內(nèi)的粒子數(shù)過少,會導(dǎo)致計算密度限制方程精度很低.因此我們將邊界處的粒子的密度限制方程改寫成如下形式
(ii)雖然PBF方法穩(wěn)定性很好,進(jìn)行大規(guī)模場景的流體模擬時可以降低對粒子支集半徑的要求,但是PBF方法的計算量還是很大.因此,我們提出如下改進(jìn).
在常規(guī)流體模擬的場景中,除邊界外流體都是連續(xù)的.從粒子的角度看,一個內(nèi)部粒子與其鄰近粒子的屬性值的差別很小,而正是利用這種微小的差別,我們可以在計算相對“安靜”的粒子屬性值時降低計算量.根據(jù)粒子速度值的大小,我們將所有粒子分為三種:活躍粒子(activeparticle)、普通粒子(ordinaryparticle)、惰性粒子(inactiveparticle).計算活躍粒子時,用較大的迭代次數(shù)和支集半徑;相對地,計算惰性粒子時,則用較小的迭代次數(shù)和支集半徑.
上述改進(jìn)的第1步雖然增加了少許的計算量,但卻可以加強(qiáng)模擬的細(xì)節(jié)效果;改進(jìn)的第2步則是在減少計算量的同時,增強(qiáng)粒子邊界、表面處模擬的細(xì)節(jié)效果.
步驟4 計算支集半徑內(nèi)每個粒子的λi;
步驟5 根據(jù)公式(13)計算支集半徑內(nèi)每個粒子的Δpi;
步驟6 通過迭代進(jìn)一步的校正Δpi;
步驟9 對更新的速度添加渦流限制和粘性力.
實驗平臺是Windows 8系統(tǒng),程序開發(fā)的軟件選用Microsoft Visual Studio 2008,三維圖形的編程接口為OpenGL.算法實現(xiàn)的硬件環(huán)境是Intel(R)Core(TM)i3-4130的CPU、4G內(nèi)存的PC機(jī).下圖給出了我們的實驗結(jié)果.
圖1 模擬了粒子從左側(cè)向右流動趨近靜止的運動狀態(tài)
對比圖分別為第4,15,33幀圖像.左:定位流體方法,幀率為2.0080,;右:改進(jìn)后的定位流體方法,幀率為2.1276.從上面的對比圖中,我們可以很明顯的看出改進(jìn)后的方法粒子的分布位置更自然,針對5500粒子能夠計算效率提升近7%.
最后,使用Marching Cubes方法進(jìn)行表面重建,其效果如圖2所示.
定位流體方法是目前適應(yīng)大場景流體模擬最好的方法,同時也是最耗時的方法.我們的實驗結(jié)果表明文章中的改進(jìn)確實可以較大幅度的減少定位流體方法的計算量,同時還能夠較好的提高模擬的表面細(xì)節(jié)效果.
流體模擬的不可壓縮性是很難保證的[10],除去方法計算的誤差,模擬過程的數(shù)值耗散和能量守恒問題大多由此而來.定位流體方法也只能做到模擬過程的近似不可壓縮.如何更好的去解決流體模擬的不可壓縮性問題也一直是諸多流體模擬方法不斷發(fā)展與創(chuàng)新的關(guān)鍵所在[11-12].本文雖然給出了提高計算速度的改進(jìn)定位流體方法,但是對于定位流體本身巨大的計算量來說還是略顯不足.我們未來的工作方向?qū)⒅饕旁诰唧w的真實感繪制和更有效的解決定位流體的數(shù)值耗散問題,這方面文獻(xiàn)[13]對自由表面的再構(gòu)建的創(chuàng)新方法將對我們有所幫助.
圖2 水流的仿真圖
[參 考 文 獻(xiàn)]
[1] Monaghan J J.Smoothed particle hydrodynamics[J].Annual review of astronomy and astrophysics,1992,30:543-574.
[2] 譚小輝,萬旺根,黃炳,崔濱.基于SPH的三維流體模擬[J].計算機(jī)應(yīng)用于軟件,2009,26(12):222-258.
[3] Losasso F,Talton J O,Kwatra N,F(xiàn)edkiw R.Two-Way Coupled SPH and Particle Level Set Fluid Simulation [J].IEEE Translations on visualization and computer graphics,2008,14(4):797-804.
[4] Zhang F,Shen X,Long X,et al.Real-time particle fluid simulation with wcsph[J].Pacific Graphics Short Papers,2012:29-34.
[5] Solenthaler B,Pajarola R.Predictive-Corrective Incompressible SPH[J].ACMSIGGRAPH,2009,28(3):401-406.
[6] Schechte H,Bridson R.Ghost SPH for Animating Water[J].ACM Transactions on Graphics(TOG),2012,31(4):61-69.
[7] Bodin K,Lacoursiere C,Servin M.Constraint Fluids[J].IEEE Transactions on visualization and computer graphics,2012,18(3):516-527.
[8] Muller M,Charypar D.Gross M.Particle-Based Fluid Simulation for Interactive Applications[J].Eurographics/SIGGRAPH Symposium on Computer Animation,2003,Proceeding SCA’03:154-159.
[9] Macklin M,Müller M.Position based fluids[J].ACM Transactions on Graphics(TOG),2013,32(4):104-109.
[10] Khayyer A,Gotoh H,Shao S D.Development of CISPH method for accurate water-surface tracking in breaking waves[J].Coastal Engineering,2008,55(3):236-273.
[11] Solenthaler B,Gross M.Two-scale particle simulation[C].ACM Transactions on Graphics(TOG).ACM,2011,30(4):81-88.
[12] Akinci N,Ihmsen M,Akinci G,et al.Versatile rigid-fluid coupling for incompressible SPH[J].ACM Transactions on Graphics(TOG),2012,31(4):62-70.
[13] Yu J,Turk G.Reconstructing surfaces of particle-based fluids using anisotropic kernels[J].ACM Transactions on Graphics(TOG),2013,32(1):5-17.
An Improved Method of Position Based Fluids
YAN Zhi-wei, ZHU Xiao-lin, LIU Yang-yang, LIANG Xin-xin
(School of Mathematics,Hefei University of Technology,Hefei 230009,China)
Abstract:This paper puts forward an improved model for fluid simulation according to Position Based Fluids,which inherits the stability of Position Based Dynamics(PBD)method and the smoothness of Smoothed Particles Hydrodynamics(SPH)method.In this method,we distrabuted different supported radius for different particles according to velocity and added density constraints for paticles,which improved calculation accuracy and simulation effects.
Key words:fluid simulation;smoothed particles hydrodynamics(SPH);position based dynamics(PBD);position based fluids(PBF)
[基金項目]國家自然科學(xué)基金資助項目(61272024)
[收稿日期]2015-03-15
[中圖分類號]TP391
[文獻(xiàn)標(biāo)識碼]A
[文章編號]1672-1454(2016)01-0038-06