3ds Max流体力学插件 FumeFX试用报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3ds Max流体力学插件FumeFX试用报告
模拟流体复杂的运动及其制作流体特效动画,一直以来被运用在计算机图形的各个领域,同时也是计算机图形学内比较广的一个研究课题。而流体特效一直以来都是3ds Max的一个伤口,无法与Maya Fluid Effects [1] [2] 抗衡。其主要原因是现阶段3ds Max还没有集成内置的流体动力学运算引擎,导致人们通常要去使用Realflow这样的独立流体插件来在3ds Max中实现流体效果,虽然效果令人满意,但要让Realflow配合3ds Max的动力学、脚本、粒子系统一起使用的话,操作起来显然就没有一个内置的流体力学插件来得方便,而3ds Max现有的内置流体力学插件的效果也是不尽如人意的,因此我们也很少能看到一部大片中有通过3ds Max来实现流体效果的案例。
2006年12月,SitniSati公司(原Afterworks)发布了一款新的3ds Max流体力学插件—— Fume FX,该插件是基于真实物理中流体力学原理而设计的,主要是为3ds Max 用户提供火焰、浓烟、爆炸及其他流体效果的解决方案。与之前所有3ds Max的流体插件相比,Fume FX最大的特点就是它不仅能很好地模拟出复杂流体气体的运动行为,同时还能考虑到物理学中温度、重力、燃料、能量等因素对模拟效果的影响,这对计算机图形学发展作出的贡献是巨大的。从官方网站所提供的图片来看,Fume FX 的效果已经相当不错了,完全可以满足大片中流体效果的需求。
前些天我拿到了这个插件的试用版本,虽然现在还是1.0版,但效果已经相当棒了。据说1.1已经出了,同时效果也有更大的改进,在此十分期待这个 Fume FX 的1.1版本,如果笔者能拿到1.1的试用版的话,一定对比现在的1.0版本写一篇评测性的教材和大家一起分享,现在就由我来向大家介绍一下Fume FX 以及关于流体这个名词他们背后的故事。
Fluid Mechanics流体力学及其发展历史:
流体是气体和液体的总称。在人们的生活和生产活动中随时随地都可遇到流体,所以流体力学是与人类日常生活和生产事业密切相关的。流体力学这一门物理学科主要研究在各种力的作用下,流体本身的状态,以及流体和固体壁面、流体和流体间、流体与其他运动形态之间的相互作用的力学分支。而在流体力学中研究得最多的流体是水和空气。
流体力学是在人类同自然界作斗争和在生产实践中逐步发展起来的。对流体力学学科的形成第一个做出贡献的是古希腊的阿基米德,他建立了包括物理浮力定律和浮体稳定性在内的液体平衡理论,奠定了流体静力学的基础。此后千余年间,流体力学没有重大发展。直到15世纪,意大利达•芬奇的著作才谈到水波、管流、水力机械、鸟的飞翔原理等问题;17世纪,帕斯卡阐明了静止流体中压力的概念。但流体力学尤其是流体动力学作为一门严密的科学,却是随着经典力学建立了速度、加速度、力、流场等概念,以及质量、动量、能量三个守恒定律的奠定之后才逐步形成的。
如今各大高校的物理专业都开设了流体力学这一课程,这也是物理专业中最难学习的课程之一,现在流体力学也被分支成更多更细的学科。如:物理-化学流体动力学、磁流体力学等。而通过Fume FX 和Realflow之类的插件我们也可以看出:计算机图形学也是流体力学发展的受益者之一了。
计算机流体力学的发展 [4]:
计算机流体力学是用电子计算机和离散化的数值方法对流体力学问题进行数值模拟和分析的一个新分支。早期的流体模拟,由于计算能力有限,主要采用参数建模的方法,比较有代表性的是1986年Darwyn R.Peachey博士发表的海面及波涛的模拟一文[3]。文中通过将波浪函数表示成一系列线性波型的组合,更进一步将各个波型简化为波形和相位的组合函数,从而合成浅水表面高度场,能处理波折射问题,并采用粒子系统来模拟当波浪破碎或者碰到障碍物时形成的浪花。
但由于这篇文章中表示的水的粒子或者网格只是在其初始位置附近运动,所以它们都无法表现真正的流动效果,也无法处理边界给水面带来的影响。又如基于统计的FFT经验模型[5] 可以很好地描述波幅较小的海平面,但是对于以上这些模型,人们觉得控制起来很困难,而且不能模拟一些复杂的、细
节更为丰富的效果,于是很多研究者转向基于物理的方法去研究。
描述流体现象最为完整的为雷诺-均值奈维尔-斯托克斯[4](NSE:Navier-Stokes Equation),简称N-S方程,是湍流最古老的方法。此方程是法国科学家C.-L.-M.-H.纳维于1821年和英国物理学家G.G.斯托克斯于1845年分别建立的。该方程是根据牛顿第二定律推导出来的。
基于物理的方法主要分为两种[4]:第一种方法是从研究流体所占据的空间中各个固定点处的运动着手,分析被运动流体所充满的空间中每一个固定点上的流体的速度、压强、密度等参数随时间的变化,以及研究由某一空间点转到另一空间点时这些参数的变化,该方法被称为欧拉法,是一种基于网格的方法;第二种方法是从分析流体各个微团的运动着手,即研究流体中某一指定微团的速度、压强、密度等描述流体运动的参数随时间的变化,以及研究由一个流体微团转到其他流体微团时参数的变化,以此来研究整个流体的运动,被称为拉格朗日法,是一种基于粒子的方法。[4]
对于流体来说,采用欧拉法的计算效率较高(有限差分法),而计算流体的自由边界(例如浪花)则是拉格朗日法(粒子方法)占优,所以现在出现一些混合方法(如levelset)。
而计算机流体技术发展到今天,关键部分已经不再是简单的模仿液体的运动,真正具有挑战性,同时也是流体力学的关键在于:实现如烟雾、火焰、爆炸等特效。一方面真实的实现这样的流体效果需要考虑到很多如温度、湿度、重力、燃料、能量等环境因素。把这些条件全部考虑到流体的解算中计算会变的相当复杂、巨大。另一方面如果这些效果能很好的用CG技术来实现,就不需要工作人员进行实拍了,那样既不安全也不经济。Fume FX的意义在于它能在3ds Max上准确的基于物理流体力学原理对这些效果进行真实的模拟。
如图是计算机安装好Fume FX以后的信息,提示版本是1.0,它的正版用户可以随时享受免费的资源、教材、软件更新以及在线帮助。原先著名的烟火插件Afterburn和景观插件Dreamscape也同样出品自这家公司。
Fume FX对火焰的模拟
这个是我模仿广告做的一个Fume FX火焰的测试,场景很简单,就是一个铁环在空中燃烧,使用V-ray进行渲染,参数也并不是太高,速度却很一般。E6600 OC到3.6G,解算150帧动画需要近半个小时,难以置信。不过这样的速度是Fume FX本身的解算方法所决定的,一会在下文中会稍做分析。
技术性评点:最常见的燃烧现象就是火焰,燃烧实际上是一种低速流动燃烧的过程,现阶段最为精确的模拟方法来自采用全NS方程来求解,并考虑了燃烧过程。前面也提到了欧拉法研究流体,是在规则网格上采用有限差分求截NSE的方法 [4]。它将NSE离散到网格上,然后计算各个固定点网格