Blender 物理模拟:让3D场景"活"起来
物理模拟是Blender最令人着迷的功能之一。通过模拟重力、碰撞、柔软变形、流体运动,你可以创建出色的动态效果。本文系统讲解Blender中的三大物理模拟类型:刚体(Rigid Body)、软体(Soft Body)、流体(Fluid/MPM)。
一、刚体模拟(Rigid Body):硬物碰撞
1.1 刚体模拟原理
刚体模拟假设物体是不可变形的。Blender使用Bullet物理引擎计算刚体之间的碰撞和重力响应。
- Active刚体:受重力影响和碰撞影响
- Passive刚体:不受重力影响,但参与碰撞检测
- 质量(Mass):影响碰撞响应
1.2 刚体模拟实战:多米诺骨牌效应
- 在Blender中创建一排立方体(间距略小于立方体边长)
- 选中所有立方体,物理属性面板→刚体→添加主动刚体
- 创建一个平面作为地面,设置为被动刚体
- 将第一个立方体沿Y轴平移,按I插入位置关键帧(第1帧)
- 在第60帧,将第一个立方体移回原位,再次按I
- 按空格键播放动画,观察多米诺效应
1.3 刚体约束(Constraints)
刚体约束允许你限制刚体的运动自由度:
- Fixed:将两个刚体"焊接"在一起
- Hinge:铰链约束,只允许绕一个轴旋转
- Spring:弹簧约束,模拟悬挂系统
二、软体模拟(Soft Body):柔软变形
2.1 软体模拟原理
软体模拟假设物体是可变形的网格,受弹簧力(Spring Force)驱动。
2.2 软体模拟实战:掉落的果冻
- 创建一个立方体,细分3次,使网格足够密
- 在物理属性面板点击Soft Body
- 关键参数:Mass=0.5,Goal=0.1,Edges Pull=0.9
- 在立方体下方创建平面,设置为Collision
- 播放动画,观察果冻掉落并弹跳的效果
2.3 布料模拟(Cloth)
布料模拟是软体模拟的特例:
- 旗帜飘扬:创建平面,细分,添加Cloth修改器,一侧顶点用Pin Group固定
- 衣服模拟:将人物模型作为Collision Object
- 帐篷/雨伞:用Cloth的Pressure参数
三、流体模拟(Fluid Simulation)
3.1 Blender流体模拟的两种引擎
| 引擎 | 优点 | 适用场景 |
|---|---|---|
| FLIP(旧) | 稳定,可控性强 | 小范围水流 |
| MPM(新,4.3+) | 速度快,细节丰富 | 大场景,复杂流体 |
3.2 MPM流体模拟实战:倒水动画
- 创建两个物体:一个杯子(障碍物),一个水源(Inflow物体)
- 创建大立方体作为Domain(流体域),添加Fluid → Type: Domain,选择MPM
- 将杯子设置为Fluid → Type: Effector
- 将水源物体设置为Fluid → Type: Flow,Flow Type选Liquid
- 在Domain设置的Cache部分,设置Frame Start=1,Frame End=100,点击Bake All
四、模拟性能优化技巧
- 先低分辨率测试:流体模拟的计算量与分辨率的三次方成正比
- 缩小Domain尺寸:让Domain刚好包裹fluid区域
- 刚体数量控制:超过100个主动刚体的场景,计算会明显变慢
- 使用GPU加速:在Blender偏好设置→系统→Cycles渲染设备中选择GPU
五、模拟结果导出与渲染
- 烘焙(Bake):所有物理模拟都必须先烘焙
- 导出动画:烘焙完成后,File → Export → FBX,勾选Animation
- 渲染设置:物理动画建议用Cycles渲染,采样值至少128
总结
Blender的物理模拟系统是连接"静态3D模型"与"动态视觉效果"的桥梁。核心学习路径:先掌握刚体→再学软体/布料→最后攻克流体。
来源:Blender官方文档及物理模拟社区最佳实践整理
