- +1
一块CPU就能运行超逼真水流特效,胡渊鸣的算法被这样实现,本人看了都说好
原创 关注前沿科技 量子位
郭一璞 鱼羊 发自 凹非寺
量子位 报道 | 公众号 QbitAI
还沉醉在《黑神话:悟空》精细的3D计算机特效里呢?
做3D特效这件事儿,一浪更比一浪强。
最近,一位名叫John Lin的网友,就分享了自己做的3D流体特效。
注意,用GPU渲染之后,运行下面分享的所有特效效果,都只要一块CPU。
而且是实时的,你可以用鼠标操纵改变水流和环境。
比如,彩虹色的流水注入不规则的泳池,整个水流的形状、波澜,完全符合现实世界的物理特征。




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




甚至,水流还可以适应动态的地形。
不信你看下面的例子。



如果不过瘾,你可以可以看看视频完整版:
其实,上面的特效用到的工具是MLS-MPM算法,它的一作正是姚班毕业生、MIT在读博士胡渊鸣大神,在宾夕法尼亚大学蒋陈凡夫老师的指导下完成。

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




胡渊鸣团队发表在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更容易实现,可以轻松实现性能的提升。

这样就可以把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
试一试,说不定能做出更惊艳的作品?
— 完 —
本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。
原标题:《一块CPU就能运行超逼真水流特效!胡渊鸣的算法被这样实现,本人看了都说好》
本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问http://renzheng.thepaper.cn。





- 报料热线: 021-962866
- 报料邮箱: news@thepaper.cn
互联网新闻信息服务许可证:31120170006
增值电信业务经营许可证:沪B2-2017116
© 2014-2026 上海东方报业有限公司




