合作客戶/
拜耳公司 |
同濟大學 |
聯合大學 |
美國保潔 |
美國強生 |
瑞士羅氏 |
相關新聞Info
十分自然的表面張力模擬效果:櫻桃落在水面是真實還是模擬的?
來源:機器之心 瀏覽 1140 次 發布時間:2021-07-19
作者:阮良旺
十分自然的表面張力模擬效果。
櫻桃落在水面,你能分辨出這張圖是真實還是模擬的嗎?
因為表面張力的存在,落葉可浮于水面、水黽得以在水面爬行,這是十分自然的現象。
而計算機模擬表面張力,也可以達到十分真實的效果。
近日,在由北京大學陳寶權教授研究團隊與北京電影學院未來影像高精尖創新中心、達特茅斯學院、德克薩斯農工大學合作的論文《Solid-Fluid Interaction with Surface-Tension-Dominant Contact》中,作者們提出全新的模擬框架處理帶表面張力的流固強耦合,能夠精確模擬各種與表面張力相關的物理過程。
本文入選了SIGGRAPH 2021論文Trailer(精選預告片),并將在計算機動漫節Computer Animation Festival(CAF)上播放,并在SIGGRAPH主頁推薦。
以下為論文一作、北大圖靈班學生阮良旺對此研究的解讀。
簡介
樹葉落在水面上泛起陣陣漣漪,密度比水大的回形針卻能漂浮在水面上,這些現象的背后有一個共同原因——表面張力。現有的物理模擬技術能夠單獨模擬流體和固體,但是想要在屏幕上重現表面張力的作用時,我們需要搭建一個全新的模擬框架。在這篇文章中,我們使用顯式三角網格表示流體表面的薄層,并在薄層中建立表面張力模型,然后采用統一的模擬框架將流體、流體表面層和固體三者耦合起來,實現表面張力驅動的流固耦合模擬。在這個框架下,我們可以模擬一些之前不能實現的表面張力效果:密度大于水的物體漂浮在水面上,水面上的物體相互吸引(甜麥圈效應),以及表面張力不足以支撐物體后的水面破碎效果。
表面張力
表面張力原理圖,來自wikipedia
表面張力指的是流體表面會盡可能收縮的趨勢。微觀原理上是因為流體表面的分子密度比流體內部的分子密度更為稀疏,因而表面分子之間的平均距離更大,所以分子間的相互作用表現為一種吸引力。從宏觀上來講,我們可以定義一個表面張力勢能:
其中是流體表面的面積,稱為表面張力系數。當流體與固體發生作用時,流體表面的分子同時會受到固體分子的作用,從而將表面張力作用在固體上。固體根據表面特性不同可以分為親水和疏水兩類,疏水材質在水面上會受到向上的表面張力作用,對于一些細小的結構來說這個力要比浮力更為明顯。比如說水黽是一種可以生活在水面上的昆蟲,它的腳非常細長,并且有很多絨毛來保持疏水特性,因而水黽可以依靠表面張力維持自身的重量,并通過腳來劃動水面來向前運動甚至跳起。
方法介紹
算法原理圖
我們的耦合系統分為三個部分:流體,表面層,固體。流體部分我們采用傳統的歐拉網格的模擬方法,在交錯網格(Staggered Grid)上用算符分離的方法求解離散不可壓的Navier Stokes方程。固體部分采用傳統的拉格朗日方法求解牛頓方程。我們的主要貢獻在于在流體與固體之間插入了一層有質量、有厚度的流體表面層,這個表面層直接對應我們上面介紹的流體表面分子稀疏的部分。因為這個表面層非常薄,我們可以使用帶虛擬厚度的單層三角網格來表示,然后在這個表面層上施加表面張力勢能。為了將這三個部分耦合起來,我們在表面層和背景網格、固體和背景網格之間定義了速度的插值矩陣,同時將流體的壓強作用在表面層和固體上,以及將表面張力作用在固體上,這樣我們將這三部分寫進一個三相耦合方程里進行統一求解和更新。最終我們算法的流程如下:
算法流程圖
部分結果展示
這里我們展示我們論文的部分結果,更多結果請查看我們的視頻(點文末“閱讀原文”跳轉)。在櫻桃、回形針、樹葉和小船這三個例子中,我們使用盡量與真實圖片相同的配置進行模擬,都得到了與真實圖片相差無幾的結果,體現了我們算法的真實性。
例子1:櫻桃
真實圖片©ValeryOrlov
模擬結果:櫻桃和水/櫻桃和牛奶
在這個例子中我們展示了在其他條件都相同的情況下,我們僅僅改變了流體的表面張力系數,櫻桃掉進表面張力系數更大的水面上可以漂浮起來,但是在表面張力系數更小的牛奶里就會掉下去。
例子2:回形針
真實圖片©RobertD.Anderson
模擬結果:回形針
在這個例子中我們成功使密度大于水的回形針漂浮在水面上,水面下面的條狀背景會因為水面的彎曲而變形,從左到右回形針的密度逐漸增大,中間條紋的密度也在逐漸增加。在最右邊的場景中,回形針的密度達到了7.9 g/cm^3(金屬鐵的密度),是水密度的將近8倍,但是依然可以依靠表面張力漂浮起來,得到的條紋分布與真實圖片最為接近。
例子3:樹葉和小船
真實圖片©Pictoscribe-/Flickr
模擬結果:小船和樹葉
在這個例子中我們展示了我們方法可以方便地處理薄殼剛體的情況,小船和樹葉都使用單層三角網格來表示。在樹葉的邊界上,我們再次得到了與真實圖片幾乎完全一致的結果。
模擬結果:水黽機器人
在這個例子中,我們設計了一個類似于水黽的水上機器人,它可以依賴自身的關節驅動在水面上向前運動。