專利名稱:一種基于面網(wǎng)格的實時水滴仿真方法
技術(shù)領(lǐng)域:
本發(fā)明涉及物理仿真技術(shù)領(lǐng)域,尤其涉及一種基于面網(wǎng)格的實時水滴仿真方法。
背景技術(shù):
水滴經(jīng)常出現(xiàn)在日常生活的場景中,比如浴室的玻璃,雨天的車窗等。同大體積的流體相比,水滴具有較大的粘性和表面張力,因此其仿真難度更大。當水滴以三維體素表示時,如此大的粘性和表面張力需要非常小的步長才能保證精度和穩(wěn)定性。三維體素表示需要很大的內(nèi)存開銷才能記錄表面的細節(jié),使得制作包含很多水滴的一般場景的時候會非常困難。因此一般的流體仿真方法不適合用于水滴的仿真。Wang提出了一種基于潛水方程的流體仿真方法(H. Wang, G. Miller, and G. Turk, "Solving general shallow wave equations on surfaces,,,in Proceedings of the 2007 ACM SIGGRAPH/Eurοgraphics symposium on Computer animation (SCA 2007), 2007, pp. 2 - 238),這種采用高度場表示的網(wǎng)格能夠很方便的模擬水滴在固體表面的流動,但是不能夠處理凹陷的固體表面和水柱的斷裂。Thtoey則采用了面網(wǎng)格來表示水滴表面的細節(jié)(N. Thiirey, C. ffojtan, M. Gross, and G. Turk, "A multiscale approach to mesh-based surface tension flows, ,, ACM Transactions on Graphics (SIGGRAPH 2010),vol. 29,no. 4,pp. 48:1 - 48:10,July 2010),但是他們的方法計算量很大,需要離線計算。平均曲率流的隱式解法可以參考Desbrun的論文(M. Desbrun, M. Meyer, P. Schroder, and Α. H. Barr, "Implicit fairing of irregular meshes using diffusion and curvature flow, ” in Proceedings of the 26th annual conference on Computer graphics and interactive techniques (SIGGRAPH ' 99), 1999, pp. 317 - 324 ;D. Mathieu, Μ. Mark, S. Peter, and A. H. Barr, "Discrete differential geometry operators in nD. " Springer-Verlag, 2000, pp. 35 - 57),^Laplace-Beltrami
在稀疏線性空間,因此可以用大步長進行迭代,但是他們提出的方法會造成體積損失。要對體積進行修正,可以采用(I. Eckstein, J. -P. Pons, Y. Tong, C. -C. J. Kuo, and Μ. Desbrun, "Generalized surface flows for mesh processing,,,in Proceedings of the fifth Eurographics symposium on Geometry processing (SGP 2007), 2007, pp. 183 - 192)提出的體積修正方法。由于三維體素化表達不適合表示水滴,而面網(wǎng)格表示則會有很多的優(yōu)勢。大的粘性使得速度場趨向光滑,因此可以忽略水滴內(nèi)部的運動,而只關(guān)注其表面。同時,表面張力可以通過表面的平均曲率直接計算。這些現(xiàn)象使得表面趨向光滑,并使得網(wǎng)格的拓撲變化更易實現(xiàn)。
發(fā)明內(nèi)容
本發(fā)明針對電影及游戲中出現(xiàn)的水滴,其運動計算量大且不穩(wěn)定的問題,提出了一種基于面網(wǎng)格的實時水滴仿真方法。本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的一種基于網(wǎng)格的實時水滴仿真方法,該方法采用三角形面網(wǎng)格來表示水滴;通過變形操作模擬流體粘性和表面張力以及與固體接觸時的接觸角;然后通過網(wǎng)格操作實現(xiàn)網(wǎng)格的融合與分裂,并對網(wǎng)格進行優(yōu)化。進一步地,所述通過變形操作模擬流體粘性和表面張力以及與固體接觸時的接觸角,包括以下子步驟
(1)對網(wǎng)格中每個頂點施加外力,包括重力、固體表面吸附力、摩擦力以及一部分粘滯阻力,這些外力用于修正頂點的速度和位置;
(2)隱式計算網(wǎng)格的平均曲率流;
(3)顯式形成接觸角,即水滴邊緣與固體表面形成的角度;具體如下首先搜索所有與固體表面接觸的頂點,從中提取出接觸線,并計算出接觸線上每一點與固體表面所成的角度;如果角度大于最大角,則對該頂點施加向外的外力;如果角度小于最小角,則對該頂點施加向內(nèi)的外力;
(4)對網(wǎng)格進行體積修正,對計算過程造成的體積損失通過局部和全局兩種方法進行修正。進一步地,所述通過網(wǎng)格操作實現(xiàn)網(wǎng)格的融合與分裂,并對網(wǎng)格進行優(yōu)化包括以下子步驟
(1)網(wǎng)格融合具體如下對于兩個其包圍盒相交的網(wǎng)格,找出兩個網(wǎng)格相交的交線, 將原網(wǎng)格沿著這條交線切開,并重新三角化。對每一個網(wǎng)格上的三角形,計算其位于另外一個網(wǎng)格的內(nèi)部還是外部,將標記為內(nèi)部的三角形刪除,并將所有標記為外部的三角形合并成為一個新的網(wǎng)格;
(2)網(wǎng)格分裂在進行邊刪除操作的過程中,如果刪除一條邊后,網(wǎng)格就不再是流形,則在此處將網(wǎng)格一分為二。具體如下當要刪除的邊確定后,搜索其兩個頂點的一環(huán)鄰域,如果發(fā)現(xiàn)公共的頂點,并且這個頂點不屬于與此邊相鄰的三角形,那么就在這三個頂點處插入新的頂點和三角形,使原網(wǎng)格分裂為兩個新的網(wǎng)格。如果要刪除的邊所在的網(wǎng)格已經(jīng)只是一個四面體,則將此四面體刪除;
(3)網(wǎng)格優(yōu)化包括邊折疊,邊分裂,邊翻轉(zhuǎn);
本發(fā)明的有益效果是,將流體仿真的自由度從三維體素降低到二維網(wǎng)格的頂點,從而大大減少了計算的空間和時間開銷。整個模型分為兩步變形操作,使得水滴形狀發(fā)生變化;網(wǎng)格操作,使得網(wǎng)格產(chǎn)生融合與分裂效果,并且對網(wǎng)格進行優(yōu)化。本發(fā)明可以很容易的與現(xiàn)有的流體方針技術(shù)相結(jié)合,用來制作高精度的流體動畫。
圖1是本發(fā)明提出的算法流程圖2是本發(fā)明提出的形成接觸角運算示意圖3是本發(fā)明提出的網(wǎng)格分裂算法示意圖,圖3 (a)顯示了通過添加新的頂點和三角形將網(wǎng)格分裂成四面體的過程,圖3 (b)顯示了一種需要特殊處理的情況;
圖4是本發(fā)明的兩水滴碰撞,融合并震蕩的效果圖,其中圖4 (a)是碰撞前地水滴,圖 4 (b)和(c)顯示融合震蕩過程中的兩個狀態(tài);圖5是本發(fā)明的一滴水滴落在固體表面,被固體表面吸附形成接觸線的效果圖,其中圖5 (a)是滴落前地水滴,圖5 (b)是吸附過程中的水滴,圖5 (c)是最終形成接觸線的水滴;
圖6是本發(fā)明的不同表面張力系數(shù)的流體在相同材料的表面表現(xiàn)出不同形狀的效果
圖7是本發(fā)明的不同表面張力系數(shù)的流體Rayleigh-Plateau不穩(wěn)定現(xiàn)象效果圖,其中圖7 (a)是張力系數(shù)較小時的效果,圖7 (b)是中等張力系數(shù)的效果,圖7 (c)是張力系數(shù)較大時的效果。
具體實施例方式所有的水滴都是由三角形面網(wǎng)格來表示的。面網(wǎng)格的數(shù)據(jù)結(jié)構(gòu)包括頂點坐標,每一個三角形所包含的頂點,以及面網(wǎng)格上一環(huán)鄰域的鄰接關(guān)系。網(wǎng)格可以采用半邊結(jié)構(gòu),或者其它的能夠直接獲得網(wǎng)格上一環(huán)鄰域的結(jié)構(gòu)來表示。由于小尺度下相對大粘性和強表面張力,水滴的運動主要是受到表面影響?;诿婢W(wǎng)格的流體仿真方法主要分為兩個步驟,第一步包含了基于物理規(guī)律的面網(wǎng)格變形運算,這個運算考慮外力、摩擦力、表面張力以及其他同水滴相關(guān)的物理現(xiàn)象。第二步包含一系列改變網(wǎng)格拓撲結(jié)構(gòu)的網(wǎng)格操作,包括網(wǎng)格融合,網(wǎng)格分裂以及網(wǎng)格優(yōu)化。整個系統(tǒng)流水線如圖1所示。我們通過4個子步驟來實現(xiàn)網(wǎng)格的變形操作,更新網(wǎng)格每個頂點的速度和位置。對網(wǎng)格中每個頂點施加外力,包括重力和接觸力,首先作用在網(wǎng)格的形狀和速度上。隨后,隱式計算網(wǎng)格的平均曲率流,模擬表面張力的效果。當水滴與固體表面接觸時,為了產(chǎn)生不同的浸潤效果,再根據(jù)接觸角的情況,在接觸線上顯式地形成接觸角。最終通過體積修正運算來修正整個過程中產(chǎn)生的體積損耗。變形運算完成之后, 再進行網(wǎng)格的融合,分裂及優(yōu)化操作。這些操作之間相互獨立,并按順序執(zhí)行,因此可以視為對網(wǎng)格頂點速度和位置的算子。當經(jīng)過了前一個算子運算之后,頂點的速度和位置就作為下一個算子的輸入。為了
簡化表達,我們用ν嚴和;^來表示
頂點i在算子運算前的速度和位置,用來表示算子運算后的速度和位置。具體闡
述如下
一、對網(wǎng)格中每個頂點施加外力
需要添加的外力包括重力、固體表面吸附力、摩擦力以及一部分粘滯阻力。用、, 表示頂點i在這一步前的速度,添加重力可以表示為+ 其中 < 是運算后
的速度,g是重力加速度,u是時間步長。
權(quán)利要求
1.一種基于網(wǎng)格的實時水滴仿真方法,其特征在于,該方法采用三角形面網(wǎng)格來表示水滴;通過變形操作模擬流體粘性和表面張力以及與固體接觸時的接觸角;然后通過網(wǎng)格操作實現(xiàn)網(wǎng)格的融合與分裂,并對網(wǎng)格進行優(yōu)化。
2.根據(jù)權(quán)利要求1所述基于網(wǎng)格的實時水滴仿真方法,其特征在于,所述通過變形操作模擬流體粘性和表面張力以及與固體接觸時的接觸角,包括以下子步驟(1)對網(wǎng)格中每個頂點施加外力,包括重力、固體表面吸附力、摩擦力以及一部分粘滯阻力,這些外力用于修正頂點的速度和位置;(2)隱式計算網(wǎng)格的平均曲率流;(3)顯式形成接觸角,即水滴邊緣與固體表面形成的角度;具體如下首先搜索所有與固體表面接觸的頂點,從中提取出接觸線,并計算出接觸線上每一點與固體表面所成的角度;如果角度大于最大角,則對該頂點施加向外的外力;如果角度小于最小角,則對該頂點施加向內(nèi)的外力;(4)對網(wǎng)格進行體積修正,對計算過程造成的體積損失通過局部和全局兩種方法進行修正。
3.根據(jù)權(quán)利要求1所述基于網(wǎng)格的實時水滴仿真方法,其特征在于,所述通過網(wǎng)格操作實現(xiàn)網(wǎng)格的融合與分裂,并對網(wǎng)格進行優(yōu)化包括以下子步驟(1)網(wǎng)格融合具體如下對于兩個其包圍盒相交的網(wǎng)格,找出兩個網(wǎng)格相交的交線, 將原網(wǎng)格沿著這條交線切開,并重新三角化;對每一個網(wǎng)格上的三角形,計算其位于另外一個網(wǎng)格的內(nèi)部還是外部,將標記為內(nèi)部的三角形刪除,并將所有標記為外部的三角形合并成為一個新的網(wǎng)格;(2)網(wǎng)格分裂在進行邊刪除操作的過程中,如果刪除一條邊后,網(wǎng)格就不再是流形,則在此處將網(wǎng)格一分為二 ;具體如下當要刪除的邊確定后,搜索其兩個頂點的一環(huán)鄰域,如果發(fā)現(xiàn)公共的頂點,并且這個頂點不屬于與此邊相鄰的三角形,那么就在這三個頂點處插入新的頂點和三角形,使原網(wǎng)格分裂為兩個新的網(wǎng)格;如果要刪除的邊所在的網(wǎng)格已經(jīng)只是一個四面體,則將此四面體刪除;(3)網(wǎng)格優(yōu)化包括邊折疊,邊分裂,邊翻轉(zhuǎn)。
全文摘要
本發(fā)明公開了一種基于面網(wǎng)格的實時水滴仿真方法,該方法通過將三維流體運動模型簡化為面網(wǎng)格模型;通過在每一步迭代隱式計算平均曲率流,產(chǎn)生表面張力的效果;通過接觸角運算改變水滴接觸固體表面時的形狀;本發(fā)明通過進行一系列的網(wǎng)格優(yōu)化及連通性測試,實現(xiàn)網(wǎng)格的融合與分裂,并提高網(wǎng)格的質(zhì)量,實時獲得與多種真實物理實驗接近的水滴運動效果,包括水滴碰撞時的小波,水柱的截斷以及水滴在固體表面的流動。
文檔編號G06T17/20GK102298794SQ20111027120
公開日2011年12月28日 申請日期2011年9月14日 優(yōu)先權(quán)日2011年9月14日
發(fā)明者周昆, 張譯中, 王華民, 王帥, 童一穎 申請人:浙江大學(xué)