关于这几个视效镜头背后的制作详情,我们做了如下技术解析,主要涉及对相关镜头中出现的大规模海洋流体和烟雾自然形态的仿真解析。
一、流体仿真解析
为了保证泰晤士河流域被陨石摧毁镜头的制作效果,ZENO流体解算提供了大量高效的功能来保证对这个超特大场景(10亿ZENO-FLIP解算)达到以小时为单位的美术制作迭代。其中主要涉及到ZENO流体系统的两大特性:2D-FFT频谱水面与3D-FLIP解算的强耦合,以及时空重仿真。
1、2D-FFT频谱水面与3D-FLIP解算的强耦合
据大部分艺术家使用反馈,对海洋类大规模流体的仿真制作方面,现有的一些商业软件并不能很好的控制海水海浪运动的节奏、态势及整体运动的宏观视觉效果,所以在ZENO的后期开发中我们特别设计研发了一套更利于控制,更利于宏观表现和更利于持续迭代的海洋系统。
关于如何保证海洋频谱在时空尺度上的可控性,ZENO系统中的海洋流体也提供了特殊机制作为解决方案,它允许用户使用真实单位(诸如:米、9.8的重力加速度、洋流速度、风向、风速、海浪大小等)去控制海洋行为,用户只需要按照现实世界单位带入设置,就能得到“比例感”合理的海洋行为。
ZENO中FFT与3D仿真的强耦合能力,将允许制作人员在2D仿真计算上进行节奏感和尺度感的快速迭代,并保证之后的3D-FLIP仿真与2D预演的高度一致性,极大的增加了海洋级3D流体解算的可控性,加快了美术人员的制作迭代效率。
在泰晤士河场景中, 我们的制作人员使用了ZENO海洋-流体系统的各种功能对河流的大尺度运动进行了多次迭代, 并最终对河流域进行了一个规模为10亿粒子的FLIP仿真解算。
然后,我们会对这个超特大场景中10亿粒子进行3D-FLIP解算,空间分辨率精细到0.375米,(注:河宽200米,深50米,长度千余米)来产生卷浪和各种水体运动细节。结合接下来会聊到的ZENO流体“时空重仿真”功能,我们在制作中会先把这个海洋过程解算一整个长段,600Frame,耗时仅需6小时,以备后续迭代使用。
在实际项目制作中,内容的需求和调整时刻在变化是再常见不过的事情。陨石的落点和速度、泰晤士河周围景物的形态、爆炸场的形态力度等,都需随最终画面的review一遍遍地修改迭代。
如果每次修改,都不得不重新对该场景中整个600个frame进行重新迭代,实在是太浪费时间了。做过此类效果的艺术家大都知道,可能这600个frame中的前200个frame都是废弃不用的,属于是海水到“湍流态”的过渡过程,但重仿真又不得不从头跑,实在是费时费力。
为了应对此类情况,ZENO中的FLIP流体系统支持从任何时刻的粒子态进行时空重仿真。ZENO可以从任意一个仿真缓存下来的粒子状态加载流体系统,只要静态碰撞体的变化不大(允许微调),动态碰撞体前后是衔接的,就能对后续过程进行衔接的重仿真解算。
以600 frame的全周期来算, 最后镜头中只需要用到420-550帧的范围,陨石落水更是只在第490-550帧之间。对此,ZENO的时空重仿真功能允许仅仅对陨石落水的部分,进行反复多次地迭代调整,而无需整体重算,每次迭代耗时仅需1小时(10亿FLIP,60frame)。
此外,时空重仿真功能(spatial-temporal resim STR)能保证后续的重仿真与前面的解算结果及前序结果的衔接顺畅, 即使在碰撞体有微调的情况下, 也能保证不产生视觉问题。
在完成计算后, 再使用ZENO流体系统中的包面工具对这些粒子进行包面计算,形成最终用于渲染的几何面,处理时长为2min/帧(十亿粒子)。
如何保证烟雾形态细节和烟雾动态连贯?
ZENO烟雾燃烧解算器的主要功能模块
在烟雾燃烧的图形学物理解算方面,与FLIP流体解算器不同,ZenoSmoke是一个纯网格法的Navier-Stokes方程解算器。ZenoSmoke系统中包含的MacCormack、BFECC等对流格式可以在任意大的时间步长下模拟出细节丰富的烟雾形态,并提供对流-反射方法来模拟出更真实的湍流动态。
我们也开发了针对GPU稀疏网格优化的多重网格线性系统求解器,用于加速流体的压力泊松方程的计算。在燃烧模拟方面,ZenoSmoke目前采用的体积燃烧模型可以让特效师方便的控制燃点温度、燃烧速率,燃烧产生的温度和烟雾以及体积膨胀等参数。
为了提供更多的艺术可控性,特效师也可以在ZenoSmoke系统中控制烟雾消散、温度冷却、浮力、风场、发射源和碰撞体。此外,ZenoSmoke系统还支持通过向速度场或温度场叠加分形噪声的方式,对烟雾施加人为可控的湍流动态或在烟雾边缘添加小尺度扰动,表现出最自然的扰动效果。
子步解算中的陨石插值
陨石的拖尾烟轨迹通常很长,但对于中近景的陨石解算,一方面需要较高分辨率的空间体素来展现烟雾动态中的细节,另一方面又不希望花费大量的计算资源来模拟整条拖尾烟轨迹。所以,在ZENO中我们支持导入Abc、FBX和USD等相机,当陨石飞出当前的相机画面之后即可停止发射烟雾。
加入倒塌的伦敦桥参与烟雾的碰撞解算
电影《流浪地球2》是泽森作为一个软件研发企业接到的一个出乎意料的制作项目,相关制作镜头也是因为同类软件无法满足计算效率和内存需求,从而在该项目中真正用上了自研的国产系统ZENO进行了大体量的物理特效解算。
据事后复盘,ZENO系统中多样化的控制工具和辅助功能为相关制作画面最终视觉效果的版本迭代节省了超100小时的时间。
未来,泽森团队也将更加着重于工具的开发和系统的升级迭代,把更多的AI计算工具引入到ZENO系统中,继续优化创新国产图形工具。