他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

郭一璞 魚羊 發自 凹非寺
量子位 報道 | 公眾號 QbitAI

還沉醉在《黑神話:悟空》精細的3D計算機特效裏呢?

做3D特效這件事兒,一浪更比一浪強。

最近,一位名叫John Lin的網友,就分享了自己做的3D流體特效。

注意,用GPU渲染之後,運行下面分享的所有特效效果,都只要一塊CPU

而且是實時的,你可以用鼠標操縱改變水流和環境。

比如,彩虹色的流水注入不規則的泳池,整個水流的形狀、波瀾,完全符合現實世界的物理特徵。

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

水滿則溢,右邊的瀑布劃出了漂亮的拋物線。

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

甚至還能做出這種類似跑馬燈的效果。

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

水揚上天,瞬間激起了潔白的浪花,衝撞天花板的各個角落。

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

如果把地形改得再複雜一點呢?

比如,我們把地形改成蘇州園林裏的獅子林這種不規則假山組成的風格?

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

加上水流,頓時就有了靈動的江南感。

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

視角穿行其中,就像走在溶洞裏一樣。

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

如果水流激盪,一樣能穿過每條石頭縫。

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

真想@一下《江南百景圖》的策劃,下一部遊戲別做2D平面風格了,做出這樣的特效豈不是更加狀況?

甚至,水流還可以適應動態的地形。

不信你看下面的例子。

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

水流穿過上層容器中心的洞,形成瀑布澆灌下層容器。

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

如果我們把兩層之間的隔板刪掉,模擬的水流依然可以適應地形的變化,用更快的速度墜落。

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

簡直巧奪天工。在只用一塊CPU的情況下,有效粒子最高值達到了200萬之高。

如果不過癮,你可以可以看看視頻完整版:

其實,上面的特效用到的工具是MLS-MPM算法,它的一作正是姚班畢業生、MIT在讀博士胡淵鳴大神,在賓夕法尼亞大學蔣陳凡夫老師的指導下完成。

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

水流的效果,讓胡淵鳴本人都覺得驚豔,稱讚作者代碼功底強。

而且,不少同行開發者看到之後也都讚歎不已,impressive、awesome,各種好詞輪流誇:

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行
他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

他們覺得,能在單個的CPU核心上跑起來,簡直驚人。

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行
他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

MLS-MPM是什麼

胡淵鳴團隊發表在SIGGRAPH 2018上的一篇論文,介紹了MLS-MPM算法。

MLS-MPM,全稱是Moving Least Squares Material Point Method,移動最小二乘材料點方法。

用移動最小二乘法,將APIC(The Affine Particle-In-Cell Method)和動量方程弱形式一致的力計算統一起來,實現了新的應力散度離散化,使MPM的運行速度快了兩倍,還成功模擬了MPM此前並不支持的各種新現象,包括材料切割、動態開放邊界和剛性體的雙向耦合。

它的基本步驟是這樣的:

(1)從粒子到網格。使用APIC將質量和動量從粒子轉移到網格上。

(2)更新網格動量。用半隱式歐拉法或隱式歐拉法更新網格動量。

(3)從網格到粒子。使用APIC將網格中的速度和仿射/多項式係數傳遞給粒子。

(4)粒子變形梯度。利用速度梯度的MLS近似更新粒子變形梯度。

(5)更新粒子塑性。預測粒子變形梯度的塑性(如果有的話)。

(6)粒子平移。用新速度更新粒子位置

與傳統MPM唯一的區別是步驟(2)中力的表達和步驟(4)中粒子變形梯度的更新。

MLS-MPM在這兩個步驟中均比MPM更容易實現,可以輕鬆實現性能的提升。

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

另外,為了解決材料不連續和剛體耦合等問題,胡淵鳴團隊還開發了Compatible Particle-In-Cell(CPIC)算法,允許基於粒子和網格節點之間的相對位置的材料點不連續和無限薄的邊界。

這樣就可以把MPM和剛性體雙向耦合在一起,實現切割的模擬。

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

現在,藉助這個算法,就可以實現各種和符合物理規則、看起來像真的一樣的運動特效了。

他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行
他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行
他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行

【來源:量子位】

聲明:轉載此文是出於傳遞更多信息之目的。若有來源標註錯誤或侵犯了您的合法權益,請作者持權屬證明與本網聯繫,我們將及時更正、刪除,謝謝。 郵箱地址:[email protected]

版權聲明:本文源自 網絡, 於,由 楠木軒 整理發佈,共 1631 字。

轉載請註明: 他用胡淵鳴的算法做超逼真水流特效,只要一塊CPU就能實時運行 - 楠木軒