物质点法(MPM)是一种粒子与网格混合使用的模拟方法,[Stomakhin et al. 2013] 用 MPM 方法实现了雪的模拟,并于电影《冰雪奇缘》中使用。
[Hu et al. 2018] 提出了 MLS-MPM(移动最小二乘物质点法),对传统 MPM 算法进行了性能优化,并且使代码实现更简洁。
详细查看睿客网上的 Homework > Homework7-Simulation-Taichi > Homework7-Simulation-Taichi.pptx 了解算法的详细内容
- Taichi 框架是 MIT 博士生 Yuanming Hu(胡渊鸣)开发的计算机图形学代码库,在此基础上可以实现很多物理模拟算法,参考 Taichi
- 我们只学习使用 88行实现冰雪奇缘 中的2D版本的代码
2. mls-mpm88 (example_00_mls_mpm88)说明
MPM 的基本流程是:模拟对象的物理量存储在粒子中,在每一步执行 advance(dt) 函数将模拟向前推进 dt 时间,其中在每一步中都执行以下步骤,用辅助背景网格更新粒子的运动状态:
1. P2G:将粒子(质量和动量)通过B样条插值到网格(lines 18-36)
2. Update Grid:更新格点的位置(lines 37-46)
3. G2P:将网格速度插值到粒子(lines 48-59)
4. Update F:粒子形变梯度更新(lines 61)
5. Plasticity:更新弹性和塑性梯度(lines 63-67)
6. Advection:粒子位置更新(lines 60)
与传统 MPM 相比,MLS-MPM 只需要改变两个步骤:(2) 中格点上力的计算和 (4) 中粒子形变梯度F的更新。
算法及代码中使用的部分参数如下:
- 仿真参数(网格密度 n,模拟步长 dt)
- 物理参数(杨氏模量 E,泊松比 nu,重力加速度)
- 粒子参数(粒子采样的形状,粒子的初始速度,粒子的质量/密度)
[^Stomakhin et al. 2013]: Stomakhin et al. "A Material Point Method for Snow Simulation." ACM Transactions on Graphics (SIGGRAPH 2013)
[^Hu et al. 2018]: Hu et al. "A Moving Least Squares Material Point Method with Displacement Discontinuity and Two-Way Rigid Body Coupling." ACM Transactions on Graphics (SIGGRAPH 2018)
[^Hu et al. 2019]: Taichi: A Language for High-Performance Computation on Spatially Sparse Data Structures. ACM Transactions on Graphics (SIGGRAPH Asia 2019)