概述
流体模拟(德语:Fluidsimulation, Strömungssimulation)在VFX语境下并非指物理片场设备,而是一种计算机图形技术:在计算机上对流体(即液体和气体)的行为进行物理学驱动的计算。通过这种技术可以生成在片场无法实际拍摄,或因体积过大、成本过高或过于危险而无法拍摄的效果,例如水、海洋、飞溅、烟雾、雾气、火焰和爆炸。
该模拟(近似地)求解流体动力学基本方程——纳维-斯托克斯方程或欧拉方程。与科学流体模拟(CFD)不同,电影中的重点不在于精确的物理正确性,而在于视觉上的说服力。然后对结果进行渲染,并与拍摄的实拍或CG序列进行合成(Compositing)。
工作原理与方法
流体模拟存在多种基本方法,它们在流体空间表示方式上有所区别:
- 基于网格(欧拉法): 空间被划分为体素网格;每个单元格存储速度、密度和温度等参数。常用于烟雾和火焰。
- 基于粒子(拉格朗日法): 流体由大量可移动的粒子表示(例如SPH——平滑粒子流体动力学)。
- 混合方法(PIC/FLIP): 结合了粒子和网格。FLIP(流体隐式粒子)是高分辨率液体、飞溅和水面常用的方法。
- Level-Set方法: 隐式描述流体表面;用于复杂3D水、烟雾和火焰等。
历史上具有里程碑意义的工作包括Foster和Metaxas(1996年)的3D纳维-斯托克斯实现,“Stable Fluids”方法(Jos Stam,1999年)采用半拉格朗日平流,以及Ronald Fedkiw及其合作者(2001/2002年起)通过Level-Set方法对烟雾、火焰和水进行的扩展。
软件和工具
流体模拟是VFX部门(FX艺术家/技术总监)的一个独立专业领域。常用的工具有:
| 工具 | 制造商 | 侧重点 |
|---|
| Houdini (FLIP, Pyro FX) | SideFX | 水/液体、烟雾、火焰、爆炸 |
| Bifrost | Autodesk (Maya) | 流体和3D VFX |
| Phoenix (Chaos Phoenix) | Chaos | 火焰、烟雾、液体、海浪 |
| RealFlow | Next Limit | 液体 |
| Mantaflow | 开源(Blender中,2020年起) | 烟雾、火焰、液体 |
在制作中的应用
流体模拟在后期制作中使用,并且是计算量最大的VFX任务之一;高分辨率的模拟通常在渲染农场上计算。著名的应用案例包括水和海洋特效、魔法特效,以及大片中的大规模火焰和爆炸场景。在片场,这些效果的物理对应物是实际的大气和SFX部门(例如,造雾机、水力装置、烟火特效)——当实际实现不可行或风险过高时,数字流体模拟会对其进行补充或替代。