一块CPU就能运行超逼真水流特效!胡渊鸣的算法被这样实现,本人看了都说好...

   日期:2020-08-25     浏览:118    评论:0    
核心提示:郭一璞 鱼羊 发自 凹非寺量子位 报道 | 公众号 QbitAI还沉醉在《黑神话:悟空》精细的3D计算机特效里呢?做3D特效这件事儿,一浪更比一浪强。最近,一位名叫John Lin的网友..._a moving least squares material point method with displacement discontinuity
郭一璞 鱼羊 发自 凹非寺
量子位 报道 | 公众号 QbitAI

还沉醉在《黑神话:悟空》精细的3D计算机特效里呢?

做3D特效这件事儿,一浪更比一浪强。

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

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

而且是实时的,你可以用鼠标操纵改变水流和环境。

比如,彩虹色的流水注入不规则的泳池,整个水流的形状、波澜,完全符合现实世界的物理特征。

水满则溢,右边的瀑布划出了漂亮的抛物线。

甚至还能做出这种类似跑马灯的效果。

水扬上天,瞬间激起了洁白的浪花,冲撞天花板的各个角落。

如果把地形改的再复杂一点呢?

比如,我们把地形改成苏州园林里的狮子林这种不规则假山组成的风格?

加上水流,顿时就有了灵动的江南感。

视角穿行其中,就像走在溶洞里一样。

如果水流激荡,一样能穿过每条石头缝。

真想@一下《江南百景图》的策划,下一部游戏别做2D平面风格了,做出这样的特效岂不是更加状况?

甚至,水流还可以适应动态的地形。

不信你看下面的例子。

水流穿过上层容器中心的洞,形成瀑布浇灌下层容器。

如果我们把两层之间的隔板删掉,模拟的水流依然可以适应地形的变化,用更快的速度坠落。

简直巧夺天工。在只用一块CPU的情况下,有效粒子最高值达到了200万之高。

如果不过瘾,你可以可以看看视频完整版:

其实,上面的特效用到的工具是MLS-MPM算法,它的一作正是姚班毕业生、MIT在读博士胡渊鸣大神,在宾夕法尼亚大学蒋陈凡夫老师的指导下完成。

水流的效果,让胡渊鸣本人都觉得惊艳,称赞作者代码功底强。

而且,不少同行开发者看到之后也都赞叹不已,impressive、awesome,各种好词轮流夸:

他们觉得,能在单个的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更容易实现,可以轻松实现性能的提升。

另外,为了解决材料不连续和刚体耦合等问题,胡渊鸣团队还开发了Compatible Particle-In-Cell(CPIC)算法,允许基于粒子和网格节点之间的相对位置的材料点不连续和无限薄的边界。

这样就可以把MPM和刚性体双向耦合在一起,实现切割的模拟。

现在,借助这个算法,就可以实现各种和符合物理规则、看起来像真的一样的运动特效了。

传送门

如果你想具体了解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

试一试,说不定能做出更惊艳的作品?

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

每天5分钟,抓住行业发展机遇

如何关注、学习、用好人工智能? 

每个工作日,量子位AI内参精选全球科技和研究最新动态,汇总新技术、新产品和新应用,梳理当日最热行业趋势和政策,搜索有价值的论文、教程、研究等。

同时,AI内参群为大家提供了交流和分享的平台,更好地满足大家获取AI资讯、学习AI技术的需求。扫码即可订阅:

加入AI社群,与优秀的人交流

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「在看」吧 !

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服