31Oct

流体模拟背后的科学By Mike Seymour【Part_02】

时间: 2014-10-31 分类: 经验分享 作者: anzyu 9003 次浏览

TAGS: , , , , , ,

  接上文:流体模拟背后的科学By Mike Seymour【Part_01】

  以下是让你可以在合理的时间里面计算出写实流体的一些关键技术点: SPH(Smooth Particle Hydrodynamics)方法是一种用Navier-Stokes的粒子系统,仿真完后再把这些粒子变成polygon。这种方式对于倒酒的流体特效很适合,但是对于如海水般大量流体就会有困难。000   Volume Grid 
  只有表面的流体, 又被称为Volume Fluids。例如在Houdini里面,可以很有效率地描述海洋波浪的高度与频率, 这种方法没有粒子, 对于小尺度的倒酒效果不合适. 这种方法通成被称为Euler法。

  FLIP
  FLIP解算法是粒子解算法与volume解算法两种的混合,《加勒比海盗神鬼奇航:幽灵海》美人鱼装在玻璃牢笼里面的流体, 就是用Naiad的FLIP模拟出来的。FLIP跟粒子或是SPH相比最大的优点在于每个Frame需要计算公式的次数不需要这么多,SPH解算法在计算的时候,每个Frame都要计算好几次,有点像是时间上的反锯齿计算,这样的公式往往必须要解算10-100次才有可能得到好效果,要不然很容易产生分子炸开的问题。Houdini也提供三种解算模式,包含了FLIP的方式。针对Houdini 11 Side Effects的资深数学家Jeff Lait说: ” 当FLIP流体被解算的时候, 会暂时产生速度场,粒子的速度场会被转移到grid里面。用来处理流体的弹射方向,这样可以避免粒子重迭,也可以避免它们都往同一个方向移动。FLIP流体的另外一个优点是不同的流体可以迭在一起,不会影响到系统的稳定度。SPH法当两个粒子很靠近的时候很容易就炸飞,对于FLIP来说,你可以添加新的粒子到流体里面,例如石头丢到水里面飞溅起来的分子。

  Naiad案例分享 
  Exotic Matter公司的Naiad流体软件用的方法是PIC-FLIP,deFLIP甚至更先进,但是求发布。Exotic Matter CEO Marcus Nordenstam做了这样的解释: “FLIP用了新的方法来改善以粒子呈现流体的计算方式,每次的模拟过程中我们会从粒子产生grid,把粒子的速度与表面信息转移到grid上面,然后压力会透过grid来计算,而把计算的结果更新到粒子身上,然后粒子再把新的速度转移到grid上面,这样来计算称为一次的step,反复的跑这样的流程可以算出很写实的流体。ILM-naiad2  问: Naiads能允许添加新的粒子吗?例如当石头丢到水里溅起水花。
  答:可以。有很多发射的operators可以做到这件事,不论这是一级流体或是二级流体都可以。

  问: Naiad的精度到多少?你认为还要花很多时间开发才能得到好的精度吗?
  答:Naiad的精度几乎是一等一的。是目前的尖端科技,如果是工程用的流体软件价格是Naiad的十倍,能达到最棒的精度。Naiad还可以同时计算刚体与流体,而大部分的流体仿真软件都是把刚体与流体分开计算的, 这会影响到细节与精度。
  另外一个重点是细节与分辨率,即便是分辨率很粗糙,Naiad也能提供大量的细节,。Naiad不是用传统的方式调整分辨率, 它不是靠单纯固定大小的细胞或是称voxel来计算的。而是以动态的自适应的方式来处理。因此,Naiad的流体不会局限在某个框框里面计算, 这要归功于Naiad独特的3D tiling系统。 

  问:有没有可能靠一种方式就能计算所有尺度的流体呢? 
  答:Navier- Stokes方程式可以应用到分子般大小的尺度都可以,也可以适用于大尺度上面,所以物理上方程式都是通的,唯一的差别是在不同尺度上面某些方程式变得比较重要,例如在小尺度的世界里面,表面张力的影响很大;但是大尺度里面,表面张力就可以忽略。

  问: 在做需要计算黏度的项目的时候, 要考虑到什么? 
  答:Naiad会计算黏度, 不同于其他软件Naiad会分别计算速度的向量, 因此结果会更精确, 也因此Naiad算出来的黏稠流体会有写实的缠绕效果。从用户的角度来看, Naiad调整黏度很容易使用。甚至还可以用3D材质来控制黏度的变化,同样的观念也可以用来控制流体的密度。

  问:Naiad可以怎样整合到工作流程里面? 要怎要输出到Houdini?
  答:没有预设的输出。但提供里一个图表,有点像是Nuke里面合成的节点那样。Naiad图表般含了File Operators,可以让你把数据快取到硬盘里面,你可以输出成mesh,也可以输出成3D场的数据,例如速度,也可以输出成粒子。
  Naiad图表里面也有render operators。目前只支持Solid Angle’s Arnold renderer,而我们也有跟Chaos Group合作,让它支持使用V-Ray。所以输出的时候不只是可以输出成mesh甚至还可以算图!  最常用的整合方式是透过我们的外挂软件。例如Maya与Houdini的外挂。例如你可以把动态的角色自Maya输出/输入到Naiad,计算流体模拟,然后在把数据导回到Maya里面。

  问:关于当今流体方面的研究有趋缓吗? 变得更加成熟?
  答:当今大部分的研究都希望用最新的硬件架构让计算更有效率, 但是对于多物理(multiphysics) 例如同时计算流体与软件或是刚体,这方面的研究还有很多要做。

  问:我们如果用Naiad来算流体 速度会多快? 
  答:跟分辨率有关。 Naiad很稳定,不管你计算的step有多少次。如果step太少的话结果会过于平滑,所以大部分的人会用多一点的粒子,高分辨率来计算出写实的流体效果。

anzyu

本文作者:

专注于精致的视觉特效,记录,分享。日思日睿,笃志笃行!我要投稿

喜欢我们的文章请您与朋友分享:

相关文章:

Comments

目前有 8 条精彩评论

  1. 松果
    松果 发表于: 2014-12-4 08:36:34

    好高端哦!!!

  2. 尚吾网
    尚吾网 发表于: 2014-11-26 15:00:00

    再次来访,一如既往的支持。

  3. 我买得起
    我买得起 发表于: 2014-11-14 12:54:14

    博客不错。来学习了。也帮您添点人气。有空来我这边逛逛喔。

  4. shui
    shui 发表于: 2014-11-13 00:02:17

    你这个研究的好高端,特效、流体……

  5. 偏方网
    偏方网 发表于: 2014-11-4 19:06:29

    很高深得我看不懂,支持一下。

  6. 小Z
    小Z 发表于: 2014-11-4 15:36:56

    路过,踩踩

  7. 收录独立博客
    收录独立博客 发表于: 2014-11-1 17:54:12

    博客版式不错,文章也很有启发。望加访

  8. 大A
    大A 发表于: 2014-11-1 14:43:52

    必须手动点赞

Comments
发表评论

电子邮件地址不会被公开。*标记为必填选项

按 [ Ctrl+Enter ] 键直接提交

  • 正确格式为: http://www.anzyu.com
返回顶部