一块CPU就能运行超逼真水流特效,胡渊鸣的算法被这样实现,本人看了都说好
原創(chuàng)關(guān)注前沿科技量子位郭一璞魚羊發(fā)自凹非寺量子位報道公眾號 QbitAI 還沉醉在《黑神話:悟空》精細的 3D 計算機特效里呢? 做 3D 特效這件事兒,一浪更比一浪強。
最近,一位名叫 John Lin 的網(wǎng)友,就分享了自己做的 3D 流體特效。 注意,用 GPU 渲染之后,運行下面分享的所有特效效果,都只要一塊 CPU。 而且是實時的,你可以用鼠標操縱改變水流和環(huán)境。 比如,彩虹色的流水注入不規(guī)則的泳池,整個水流的形狀、波瀾,完全符合現(xiàn)實世界的物理特征。
水滿則溢,右邊的瀑布劃出了漂亮的拋物線。
甚至還能做出這種類似跑馬燈的效果。
水揚上天,瞬間激起了潔白的浪花,沖撞天花板的各個角落。
如果把地形改的再復(fù)雜一點呢? 比如,我們把地形改成蘇州園林里的獅子林這種不規(guī)則假山組成的風格?
加上水流,頓時就有了靈動的江南感。
視角穿行其中,就像走在溶洞里一樣。
如果水流激蕩,一樣能穿過每條石頭縫。
真想@一下《江南百景圖》的策劃,下一部游戲別做 2D 平面風格了,做出這樣的特效豈不是更加狀況? 甚至,水流還可以適應(yīng)動態(tài)的地形。 不信你看下面的例子。
水流穿過上層容器中心的洞,形成瀑布澆灌下層容器。
如果我們把兩層之間的隔板刪掉,模擬的水流依然可以適應(yīng)地形的變化,用更快的速度墜落。
簡直巧奪天工。在只用一塊 CPU 的情況下,有效粒子最高值達到了 200 萬之高。 如果不過癮,你可以可以看看視頻完整版: 其實,上面的特效用到的工具是 MLS-MPM 算法,它的一作正是姚班畢業(yè)生、MIT 在讀博士胡淵鳴大神,在賓夕法尼亞大學蔣陳凡夫老師的指導(dǎo)下完成。
水流的效果,讓胡淵鳴本人都覺得驚艷,稱贊作者代碼功底強。 而且,不少同行開發(fā)者看到之后也都贊嘆不已,impressive、awesome,各種好詞輪流夸:
他們覺得,能在單個的 CPU 核心上跑起來,簡直驚人。
MLS-MPM 是什么胡淵鳴團隊發(fā)表在 SIGGRAPH 2018 上的一篇論文,介紹了 MLS-MPM 算法。 MLS-MPM,全稱是 Moving Least Squares Material Point Method,移動最小二乘材料點方法。 用移動最小二乘法,將 APIC(The Affine Particle-In-Cell Method)和動量方程弱形式一致的力計算統(tǒng)一起來,實現(xiàn)了新的應(yīng)力散度離散化,使 MPM 的運行速度快了兩倍,還成功模擬了 MPM 此前并不支持的各種新現(xiàn)象,包括材料切割、動態(tài)開放邊界和剛性體的雙向耦合。
它的基本步驟是這樣的:
(1)從粒子到網(wǎng)格。使用 APIC 將質(zhì)量和動量從粒子轉(zhuǎn)移到網(wǎng)格上。
(2)更新網(wǎng)格動量。用半隱式歐拉法或隱式歐拉法更新網(wǎng)格動量。
(3)從網(wǎng)格到粒子。使用 APIC 將網(wǎng)格中的速度和仿射/多項式系數(shù)傳遞給粒子。
(4)粒子變形梯度。利用速度梯度的 MLS 近似更新粒子變形梯度。
(5)更新粒子塑性。預(yù)測粒子變形梯度的塑性(如果有的話)。
(6)粒子平移。
用新速度更新粒子位置與傳統(tǒng) MPM 唯一的區(qū)別是步驟(2)中力的表達和步驟(4)中粒子變形梯度的更新。 MLS-MPM 在這兩個步驟中均比 MPM 更容易實現(xiàn),可以輕松實現(xiàn)性能的提升。
另外,為了解決材料不連續(xù)和剛體耦合等問題,胡淵鳴團隊還開發(fā)了 Compatible Particle-In-Cell(CPIC)算法,允許基于粒子和網(wǎng)格節(jié)點之間的相對位置的材料點不連續(xù)和無限薄的邊界。 這樣就可以把 MPM 和剛性體雙向耦合在一起,實現(xiàn)切割的模擬。
現(xiàn)在,借助這個算法,就可以實現(xiàn)各種和符合物理規(guī)則、看起來像真的一樣的運動特效了。
傳送門如果你想具體了解 MLS-MPM 算法,可以看這篇論文:
A Moving Least Squares Material Point Method with Displacement Discontinuity and Two-Way Rigid Body Coupling
http://taichi.graphics/wp-content/uploads/2019/03/mls-mpm-cpic.pdf
GitHub 地址在此:
https://github.com/yuanming-hu/taichi_mpm
不過,由于這個項目比較早期,胡淵鳴本人更推薦使用「太極」:
https://github.com/taichi-dev/taichi
試一試,說不定能做出更驚艷的作品?
總結(jié)
以上是生活随笔為你收集整理的一块CPU就能运行超逼真水流特效,胡渊鸣的算法被这样实现,本人看了都说好的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淘宝属于什么垃圾啊?
- 下一篇: 他们为什么选择中科大少年班?官方公布48