跨界王者:CFD工程师荣获奥斯卡大奖

跨界王者:CFD工程师荣获奥斯卡大奖的图1

小鳄鱼爱洗澡中水的流动采用计算机模拟技术重构

无论是在《加勒比海盗:世界尽头》中爆炸的火球,还是《星球大战前传3:西斯的复仇》中旋转的漩涡,都可以看出利用数字模拟的视觉特效,大量应用在各种好莱坞大片中。虽然以前认为对电影特效等应用仿真程序过于复杂且昂贵,但随着计算机计算速度变得越来越快,计算结构也在不断优化,现在,模拟这种现象已经变得非常实用。此外,由于计算机仿真能力已经获得提升以获得越来越逼真的效果,甚至用于生成的图像更好的地将接缝与现场表演相融合,基于物理的模拟已经变得不仅易于处理,而且成为在电影和视频游戏中创建逼真的虚拟世界的宝贵工具。

电影和游戏特效中的物理现象,如水,火,烟,爆炸,刚体动力学和弹性体的变形等。这些都是偏微分方程控制的。用计算机求解这类方程的算法的发展是应用数学和计算科学的应用之一。事实上,一些技术(最值得注意的是Level-set方法)已经彻底改变了整个电影行业,甚至获得了奥斯卡大奖。

在2010年Notices of the AMS发表的Crashing waves, awesome explosions, turbulent smoke, and beyond: Applied mathematics and scientific computing in the visual effects industry这篇文章中,描述了视觉效果行业中应用数学和计算科学的一些最引人注目的应用。特殊效果模拟工具虽然基于物理,但必须能够以直观的方式确保可信度和效果。重点介绍了计算流体动力学计算固体动力学,刚体模拟以及碰撞检测和分辨率的技术。 本文的内容也主要翻译自这篇文章。

计算流体力学技术可用于模拟许多现象。冲击波、海洋场景可以利用CFD仿真,爆炸,火球和烟雾效果现在也都使用CFD。在使用CFD之前,计算机生成的CG特效(例如爆炸)是由施加到被动未连接粒子的力场驱动的,产生的结果不尽如人意。然而,通过改进硬件和更快算法的组合,对烟雾,火,水和其他流体的基于CFD的仿真特效的应用,已经变得更加普遍。

从欧拉参照系,即坐标与流体运动无关的参考系,不可压缩流体的速度由Navier-Stokes方程控制。CFD中使用了许多数值方案来求解这些方程。我们可以将计算机图形中常用的许多方法分为两类:通常在网格上求解的分裂或投影方法,以及光滑粒子法。

最初的光滑粒子法用于模拟天体物理问题。Müller等人介绍了使用光滑粒子法模拟液体到计算机图形的概念。诸如光滑粒子法之类的粒子方法能够实时模拟非常活跃的流体(例如,溅水,烟雾),使其成为视频游戏模拟的理想选择,并且可以使用更复杂和高分辨率的粒子模拟来创建逼真的运动效果和图片。此外,流体的这种粒子表示方法,使得仿真更易于确定模拟流体和空气之间的边界。

虽然Navier-Stokes方程和这些离散化求解足以确定流体的大部分行为,但必须解决额外的物理量,并且需要专门的处理以更好地捕获不同类型流体的行为。下面,我们将更详细地研究基于网格的烟雾,火灾和水的仿真方法。

跨界王者:CFD工程师荣获奥斯卡大奖的图2

上图为电影《海神号》中使用光滑粒子法以及level-set方法模拟的海洋特效。下图为《史努比》动画中的焦油怪表面被建模为水平集函数,并使用CFD进行动态演化

烟雾:由悬浮在热空气中的细颗粒组成,烟雾可以被建模为无粘性的不可压缩流体。烟雾的密度和气体的温度T可通过计算机求解得出。一些文献中描述的烟雾在低网格分辨率下有限差分产生的数值耗散问题在模拟烟雾的情况下,数值耗散使得电影工作人员不能获得烟雾中的褶皱和其他有趣效果。虽然较高分辨率的网格可能能够捕获这些效果中的一些,但这在计算上是昂贵的。

相反,Fedkiw等人引入了涡度限制技术(由Steinhoff提出的应用于直升机湍流场仿真的技术),即使在低分辨率网格上也可以抵消这种耗散。在《终结者3》 和《星球大战3》中可以看到烟雾CFD特效的例子。

跨界王者:CFD工程师荣获奥斯卡大奖的图3

闪电狗中的Rhino球(左下,右下)和道路(顶部)的几何断裂

火焰:在许多情况下,火灾与烟雾类似,可以建模为不可压缩流体。同样,涡量可用于产生湍流火球和旋转火焰,并且可以在模拟中添加额外的燃烧颗粒以引发新的火焰。

虽然这些燃烧颗粒可以产生火球的膨胀效应和太空船的爆炸特效,但是依然需要额外的工具来模拟真正的燃烧。Nguyen等介绍了将气态燃料和火焰气态产物建模为单独的不可压缩流体的想法。这些技术被用来制造《哈利波特和火焰杯》中龙的火焰气息。

水:当然,CFD对特效的一个更明显的应用是模拟水。电影中使用的最先进的水模拟技术基本上是基于Foster和Fedkiw引入的level-set方法。Fedkiw得益于在电影中使用level-set模拟水现象分享了奥斯卡技术成就奖。 正如火灾的反应前沿由水平集函数定义,水的表面可以以相同的方式定义。然而,数值耗散可能导致水的界面失去尖锐。粒子水平集方法通过将水面定义为水平集函数和粒子的组合来实现对该界面的保持。

对这种方法进行了一些改进和艺术控制,许多电影都具有基于粒子水平集的特殊效果,包括《海神号》中汹涌的大海和洪水泛滥,《后天》中的风暴潮 和《加勒比海盗:世界尽头》中的漩涡。在好莱坞,CFD技术不仅限于对普通气体和流体进行建模。在《终结者3》中熔化的Terminatrix,在《怪物史瑞克》中泥浆,啤酒和其他流体用粒子水平集方法进行了模拟。此外,CFD的仿真技术也已用于模拟头发等非流体。

跨界王者:CFD工程师荣获奥斯卡大奖的图4

跨界王者:CFD工程师荣获奥斯卡大奖的图5

来自加勒比海盗的戴维琼斯刚性模拟装备

固体:在复杂的网格划分问题和基于物理的实体模拟之间,应用数学在CG序列中起着不可或缺的作用,而不仅仅是流体。无论是你最喜欢的《怪物史瑞克》角色还是《后天》的世界末日都市风景,几乎每一个CG实体都在网格表面或体积上使用显式求解。网格生成、变形和拓扑变化都是CG工程师面临的数学复杂挑战。艺术家转向基于物理的模拟场景,其中诸如惯性之类的物理效应可以提供更多的真实感,或者难以用手控制场景的复杂性。肉体模拟可以赋予CG角色逼真的肌肉膨胀和涟漪脂肪。头发模拟器可以解决数千个相互作用的头发的复杂性,刚体模拟可以控制爆炸性太空船的动态。

几何,网格和断裂:网格生成是创建新CG对象时遇到的第一个问题。艺术家通常使用表面网格,表面网格通过组合和变形图元或通过将激光扫描数据从模型转换为三角形或四边形表面来创建。 尽管大多数CG对象的艺术家版本是三角形表面的形式,但大多数模拟需要对象的四面体体积形式。另外,在精心成形的三角形表面破裂或破碎的场景中,有必要以某种方式创建在碎片上定义的新的碎片网格。

在电影《闪电狗》中,Hellrung等人开发了一种算法,该算法将每个片段精确地分解为单独的三角形表面网格,并允许直接转移未破裂模型的纹理和外观属性。该方法利用了Sifakis等人的切割算法。 文献通过复制切割元素并将切割表面嵌入这些元素中来切割四面体体积。在嵌入过程中,切割元素分为“材料”和“空白”部分,分别定义对象内部和外部的区域。切割算法以这样的方式计算每个体积片段的三角形边界,使得片段的每个三角形包含在未切割对象或断裂表面的三角形内。

跨界王者:CFD工程师荣获奥斯卡大奖的图6

头发的高几何复杂性给研究人员带来了挑战。(左):真发的特写镜头(右):模拟的头发

刚体模拟:最简单的模拟对象是刚体。顾名思义,这些物体只能遵循刚性运动(即旋转和平移)。刚体可分为两种类型:无约束刚体,如《珍珠港》中破碎战斗机的碎片,以及约束其自由度的关节连接的刚体(称为铰接刚体),如《星球大战1》中的战斗机器人或在《加勒比海盗:聚魂棺》中戴维琼斯的胡子。

布和头发:由于它们的复杂性,CG布料和头发/毛皮几乎总是模拟而不是手工控制。然而,这种复杂性还意味着标准的几何碰撞处理算法不能有效地解决所有碰撞,并且布/头发很容易变得缠结,产生可见的伪影。

对于布料而言,现代方法是使用三阶段过程来确保不会错过任何碰撞。首先,使用足够小的基于惩罚的排斥来预防接触,以防止视觉伪影。然后,在第二阶段中,迭代地应用碰撞脉冲,如在“几何碰撞处理”子部分中那样。第三,刚性组(其中碰撞对象被严格演化)被用作最终安全网,对碰撞进行后处理。实践中使用的这种算法的一个例子是《星球大战2》中尤达的长袍。

头发模拟比布料更复杂,因为大量的头发相互作用和碰撞。最常见的方法不是模拟每个单独的链,而是通过模拟较小的引导毛发(通常不超过几百个)并插入大量毛发进行渲染来管理许多毛发相互作用的复杂性。稀疏团块的使用通常允许使用廉价的排斥罚分而不是真正的几何碰撞处理,因为预期导向具有厚度。这种技术的例子包括《闪电狗》中penny女主角的毛发。或者,有几种方法可以将每个模拟头发作为流体状连续体积的一部分进行处理。这些方法自然地模拟头发交互而没有明显的碰撞。

最近McAdams等人探索了一种混合技术,将头发计算通过拉格朗日粒子来处理。然而,与以前基于连续体的方法不同,它只模拟不直接相互作用的引导毛发,这种方法模拟许多毛发(数千个),它们可以通过与布料相同的几何碰撞处理算法直接碰撞。

跨界王者:CFD工程师荣获奥斯卡大奖的图7

上图为使用成束技术模拟来自《闪电狗》中Penny的头发。仅模拟了几百根头发,其余的在渲染时添加了耗散。下图是所有毛发都是在这种混合体积/几何碰撞算法中模拟的结果。

实时模拟:由于处理器速度的提高和多核处理器的可用性,使用偏微分方程的数值方法的模拟正以越来越快的速度使用。一个非常新的例子是实时模拟,也就是说,模拟运行得足够快,用户可以在模拟运行时与它们进行交互。也许使实时模拟成为可能的最明显的方法是通过粗化模拟对象的表示来降低模型的复杂性。但是,在许多情况下,实时应用所需的粗化程度会产生令人无法接受的不良结果。因此,一个活跃的研究领域是模型简化,其中实时低分辨率模拟利用预先计算的更高分辨率的模拟信息。

当创建具有自然现象的场景时,这种技术很快将在视频游戏中变得普遍。这些技术也被用于模拟手术。比如下图就显示了恶性黑素瘤手术过程中弹性软组织的有限元模拟。当求解器求解控制方程时,用户实时切割和变形并缝合组织。

跨界王者:CFD工程师荣获奥斯卡大奖的图8

恶性黑素瘤去除程序。底部图像阵列使用强加的表面纹理以更好地可视化组织的后过程平衡配置

总结:随着数字方法在电影和视频游戏中的适用性的提高,对应用数学和科学计算的新认识正在出现。效果行业的这一新兴方面正在成为应用数学家的一个令人兴奋的新前沿,它将数学和计算机科学见解的需求与电影制作艺术相结合。影响行业中应用数学的新生状态正在推动研究和开发工作,以提供产生更大规模和更令人印象深刻的效果所需的算法和创新。也就是说,因为科学计算技术最近才在电影中大规模实用,它们在电影制作过程中的全部功效和最终位置还远未确定。未来几年将努力充分发挥行业中应用数学的潜力,这只能由具有数学,计算机科学和物理背景的研究人员来完成。

来源:CFD界

(1条)
默认 最新
厉害
评论 点赞
点赞 5 评论 1 收藏
关注