合作客戶/
拜耳公司 |
同濟大學 |
聯合大學 |
美國保潔 |
美國強生 |
瑞士羅氏 |
相關新聞Info
十分自然的表面張力模擬效果:櫻桃落在水面是真實還是模擬的?
來源:機器(qi)之心 瀏覽 910 次(ci) 發(fa)布時(shi)間(jian):2021-07-19
作(zuo)者:阮良(liang)旺
十分自(zi)然的(de)表面張力模(mo)擬效果。
櫻(ying)桃落(luo)在水面(mian),你能分(fen)辨出(chu)這張圖(tu)是真實還是模擬的嗎?
因為(wei)表(biao)面張力的存在,落葉可(ke)浮于水(shui)面、水(shui)黽得(de)以(yi)在水(shui)面爬行,這是十分自然的現象。
而計算機(ji)模擬表面張力,也可以(yi)達到十分真實的效果(guo)。
近(jin)日,在由北(bei)京(jing)大(da)學(xue)(xue)陳寶權教(jiao)授(shou)研究團隊與北(bei)京(jing)電影學(xue)(xue)院未(wei)來影像高精尖創新中心、達特茅斯學(xue)(xue)院、德(de)克薩(sa)斯農工大(da)學(xue)(xue)合作(zuo)的論文《Solid-Fluid Interaction with Surface-Tension-Dominant Contact》中,作(zuo)者們提出全新的模擬框架處理(li)帶表面張力(li)的流(liu)固強耦合,能夠精確模擬各種與表面張力(li)相(xiang)關的物(wu)理(li)過程。
本文(wen)入(ru)選了SIGGRAPH 2021論文(wen)Trailer(精選預(yu)告片),并(bing)將在(zai)計算機動漫節Computer Animation Festival(CAF)上(shang)播放,并(bing)在(zai)SIGGRAPH主頁(ye)推薦(jian)。
以下為論文一作、北大(da)圖靈班學生阮良旺對此(ci)研究的解讀。
簡介
樹葉落在(zai)(zai)水(shui)面(mian)(mian)上(shang)泛起陣陣漣漪,密度(du)比水(shui)大(da)的(de)(de)(de)回形(xing)針卻(que)能漂(piao)浮(fu)在(zai)(zai)水(shui)面(mian)(mian)上(shang),這(zhe)些現(xian)(xian)象的(de)(de)(de)背后有(you)一個(ge)(ge)共同原因(yin)——表(biao)面(mian)(mian)張力。現(xian)(xian)有(you)的(de)(de)(de)物理(li)模(mo)(mo)(mo)擬技術能夠(gou)單獨模(mo)(mo)(mo)擬流(liu)(liu)體(ti)(ti)和(he)固(gu)體(ti)(ti),但(dan)是想(xiang)要(yao)在(zai)(zai)屏幕上(shang)重現(xian)(xian)表(biao)面(mian)(mian)張力的(de)(de)(de)作用時,我們(men)需要(yao)搭(da)建一個(ge)(ge)全新的(de)(de)(de)模(mo)(mo)(mo)擬框架。在(zai)(zai)這(zhe)篇(pian)文章中(zhong),我們(men)使用顯式三角(jiao)網格表(biao)示(shi)流(liu)(liu)體(ti)(ti)表(biao)面(mian)(mian)的(de)(de)(de)薄層,并在(zai)(zai)薄層中(zhong)建立表(biao)面(mian)(mian)張力模(mo)(mo)(mo)型,然后采用統(tong)一的(de)(de)(de)模(mo)(mo)(mo)擬框架將流(liu)(liu)體(ti)(ti)、流(liu)(liu)體(ti)(ti)表(biao)面(mian)(mian)層和(he)固(gu)體(ti)(ti)三者耦(ou)合(he)起來,實現(xian)(xian)表(biao)面(mian)(mian)張力驅動的(de)(de)(de)流(liu)(liu)固(gu)耦(ou)合(he)模(mo)(mo)(mo)擬。在(zai)(zai)這(zhe)個(ge)(ge)框架下,我們(men)可以(yi)模(mo)(mo)(mo)擬一些之前不(bu)(bu)能實現(xian)(xian)的(de)(de)(de)表(biao)面(mian)(mian)張力效(xiao)果(guo):密度(du)大(da)于水(shui)的(de)(de)(de)物體(ti)(ti)漂(piao)浮(fu)在(zai)(zai)水(shui)面(mian)(mian)上(shang),水(shui)面(mian)(mian)上(shang)的(de)(de)(de)物體(ti)(ti)相互吸引(甜麥圈效(xiao)應),以(yi)及表(biao)面(mian)(mian)張力不(bu)(bu)足以(yi)支(zhi)撐物體(ti)(ti)后的(de)(de)(de)水(shui)面(mian)(mian)破碎效(xiao)果(guo)。
表面張力
表(biao)面張力原理(li)圖(tu),來自wikipedia
表(biao)(biao)面張力指的(de)是流體表(biao)(biao)面會盡(jin)可能(neng)收縮的(de)趨勢。微觀原理上是因為(wei)流體表(biao)(biao)面的(de)分(fen)子密度(du)比流體內部的(de)分(fen)子密度(du)更為(wei)稀(xi)疏,因而(er)表(biao)(biao)面分(fen)子之間的(de)平均距(ju)離更大,所以分(fen)子間的(de)相(xiang)互(hu)作用(yong)表(biao)(biao)現為(wei)一(yi)種吸引力。從宏觀上來講(jiang),我們(men)可以定義一(yi)個表(biao)(biao)面張力勢能(neng):
其中是(shi)流(liu)體表(biao)面(mian)(mian)的(de)(de)面(mian)(mian)積,稱為表(biao)面(mian)(mian)張(zhang)力(li)(li)系(xi)數(shu)。當流(liu)體與(yu)固(gu)(gu)體發(fa)生作用(yong)時,流(liu)體表(biao)面(mian)(mian)的(de)(de)分(fen)子同時會受到(dao)(dao)固(gu)(gu)體分(fen)子的(de)(de)作用(yong),從而將表(biao)面(mian)(mian)張(zhang)力(li)(li)作用(yong)在固(gu)(gu)體上(shang)(shang)。固(gu)(gu)體根據表(biao)面(mian)(mian)特(te)性不同可(ke)以(yi)(yi)分(fen)為親水(shui)(shui)和疏(shu)水(shui)(shui)兩類(lei),疏(shu)水(shui)(shui)材(cai)質在水(shui)(shui)面(mian)(mian)上(shang)(shang)會受到(dao)(dao)向上(shang)(shang)的(de)(de)表(biao)面(mian)(mian)張(zhang)力(li)(li)作用(yong),對(dui)于(yu)一(yi)些細小的(de)(de)結構來(lai)說這(zhe)個力(li)(li)要比(bi)浮力(li)(li)更為明顯(xian)。比(bi)如說水(shui)(shui)黽是(shi)一(yi)種可(ke)以(yi)(yi)生活在水(shui)(shui)面(mian)(mian)上(shang)(shang)的(de)(de)昆蟲(chong),它的(de)(de)腳(jiao)非(fei)常細長,并且有很(hen)多絨毛來(lai)保持疏(shu)水(shui)(shui)特(te)性,因而水(shui)(shui)黽可(ke)以(yi)(yi)依靠表(biao)面(mian)(mian)張(zhang)力(li)(li)維持自身的(de)(de)重量,并通過(guo)腳(jiao)來(lai)劃(hua)動水(shui)(shui)面(mian)(mian)來(lai)向前運動甚至跳起。
方法介紹
算法(fa)原(yuan)理圖
我們的(de)(de)(de)(de)耦(ou)(ou)合(he)系統分為(wei)三(san)(san)個部(bu)分:流(liu)(liu)體(ti)(ti),表(biao)(biao)(biao)面(mian)(mian)(mian)層(ceng),固(gu)(gu)體(ti)(ti)。流(liu)(liu)體(ti)(ti)部(bu)分我們采(cai)用傳統的(de)(de)(de)(de)歐拉網(wang)格(ge)的(de)(de)(de)(de)模(mo)擬方(fang)法(fa),在(zai)(zai)交錯網(wang)格(ge)(Staggered Grid)上用算符分離的(de)(de)(de)(de)方(fang)法(fa)求解離散不(bu)可壓(ya)的(de)(de)(de)(de)Navier Stokes方(fang)程。固(gu)(gu)體(ti)(ti)部(bu)分采(cai)用傳統的(de)(de)(de)(de)拉格(ge)朗日方(fang)法(fa)求解牛頓(dun)方(fang)程。我們的(de)(de)(de)(de)主要貢獻在(zai)(zai)于在(zai)(zai)流(liu)(liu)體(ti)(ti)與固(gu)(gu)體(ti)(ti)之間插入(ru)了一層(ceng)有(you)質量、有(you)厚度(du)的(de)(de)(de)(de)流(liu)(liu)體(ti)(ti)表(biao)(biao)(biao)面(mian)(mian)(mian)層(ceng),這(zhe)(zhe)個表(biao)(biao)(biao)面(mian)(mian)(mian)層(ceng)直接對應我們上面(mian)(mian)(mian)介紹的(de)(de)(de)(de)流(liu)(liu)體(ti)(ti)表(biao)(biao)(biao)面(mian)(mian)(mian)分子稀疏的(de)(de)(de)(de)部(bu)分。因(yin)為(wei)這(zhe)(zhe)個表(biao)(biao)(biao)面(mian)(mian)(mian)層(ceng)非常薄,我們可以(yi)使用帶虛擬厚度(du)的(de)(de)(de)(de)單層(ceng)三(san)(san)角網(wang)格(ge)來表(biao)(biao)(biao)示,然后在(zai)(zai)這(zhe)(zhe)個表(biao)(biao)(biao)面(mian)(mian)(mian)層(ceng)上施加(jia)表(biao)(biao)(biao)面(mian)(mian)(mian)張(zhang)力勢能。為(wei)了將(jiang)這(zhe)(zhe)三(san)(san)個部(bu)分耦(ou)(ou)合(he)起(qi)來,我們在(zai)(zai)表(biao)(biao)(biao)面(mian)(mian)(mian)層(ceng)和背(bei)景網(wang)格(ge)、固(gu)(gu)體(ti)(ti)和背(bei)景網(wang)格(ge)之間定義了速度(du)的(de)(de)(de)(de)插值矩陣,同時將(jiang)流(liu)(liu)體(ti)(ti)的(de)(de)(de)(de)壓(ya)強作用在(zai)(zai)表(biao)(biao)(biao)面(mian)(mian)(mian)層(ceng)和固(gu)(gu)體(ti)(ti)上,以(yi)及(ji)將(jiang)表(biao)(biao)(biao)面(mian)(mian)(mian)張(zhang)力作用在(zai)(zai)固(gu)(gu)體(ti)(ti)上,這(zhe)(zhe)樣我們將(jiang)這(zhe)(zhe)三(san)(san)部(bu)分寫進一個三(san)(san)相耦(ou)(ou)合(he)方(fang)程里(li)進行統一求解和更(geng)新。最終我們算法(fa)的(de)(de)(de)(de)流(liu)(liu)程如下:
算法流程圖
部分結果展示
這里我(wo)(wo)們展示我(wo)(wo)們論文的部(bu)分結(jie)果(guo),更多(duo)結(jie)果(guo)請查看我(wo)(wo)們的視頻(pin)(點文末“閱讀(du)原文”跳轉)。在(zai)櫻桃(tao)、回(hui)形針、樹葉和小船(chuan)這三(san)個(ge)例(li)子(zi)中,我(wo)(wo)們使用盡(jin)量與真實圖(tu)片相同(tong)的配置進行模擬,都得(de)到了與真實圖(tu)片相差無幾的結(jie)果(guo),體(ti)現了我(wo)(wo)們算法的真實性。
例子1:櫻桃
真實圖片©ValeryOrlov
模擬結果:櫻桃和水/櫻桃和牛奶
在(zai)這個(ge)例子中我(wo)們展(zhan)示了(le)在(zai)其他條件都相(xiang)同(tong)的(de)(de)情況(kuang)下,我(wo)們僅(jin)僅(jin)改(gai)變了(le)流(liu)體的(de)(de)表(biao)(biao)面張(zhang)力系數(shu),櫻桃掉進表(biao)(biao)面張(zhang)力系數(shu)更大的(de)(de)水(shui)面上可以(yi)漂(piao)浮起(qi)來,但是在(zai)表(biao)(biao)面張(zhang)力系數(shu)更小的(de)(de)牛奶里(li)就(jiu)會掉下去。
例子2:回形針
真實圖(tu)片©RobertD.Anderson
模擬結果:回形針
在(zai)(zai)這個例(li)子中(zhong)我們成功使密(mi)(mi)度(du)(du)大于水(shui)的(de)回(hui)形(xing)針(zhen)漂浮(fu)在(zai)(zai)水(shui)面上,水(shui)面下面的(de)條(tiao)狀背景(jing)會因為水(shui)面的(de)彎曲而變形(xing),從左到(dao)(dao)(dao)右(you)回(hui)形(xing)針(zhen)的(de)密(mi)(mi)度(du)(du)逐漸(jian)增大,中(zhong)間條(tiao)紋的(de)密(mi)(mi)度(du)(du)也(ye)在(zai)(zai)逐漸(jian)增加。在(zai)(zai)最(zui)右(you)邊的(de)場(chang)景(jing)中(zhong),回(hui)形(xing)針(zhen)的(de)密(mi)(mi)度(du)(du)達到(dao)(dao)(dao)了7.9 g/cm^3(金屬鐵的(de)密(mi)(mi)度(du)(du)),是(shi)(shi)水(shui)密(mi)(mi)度(du)(du)的(de)將近8倍,但(dan)是(shi)(shi)依然可以依靠表面張(zhang)力漂浮(fu)起來,得到(dao)(dao)(dao)的(de)條(tiao)紋分布與真實圖片(pian)最(zui)為接(jie)近。
例子3:樹葉和小船
真(zhen)實圖片©Pictoscribe-/Flickr
模擬結果:小船和樹葉
在(zai)(zai)這個例子中我(wo)們展示了(le)我(wo)們方(fang)法(fa)可以方(fang)便地(di)處(chu)理(li)薄殼剛(gang)體的(de)情(qing)況,小船和樹(shu)葉(xie)都(dou)使用單層三角網格(ge)來表示。在(zai)(zai)樹(shu)葉(xie)的(de)邊界上,我(wo)們再(zai)次(ci)得到了(le)與真(zhen)實圖(tu)片幾(ji)乎完全一致的(de)結果。
模擬結果:水黽機器人
在這(zhe)個(ge)例子中,我們設計了一個(ge)類似于(yu)水(shui)黽的(de)水(shui)上機器(qi)人,它可以依(yi)賴自(zi)身的(de)關(guan)節(jie)驅動(dong)在水(shui)面上向前運動(dong)。