SOUP是一款综合的Maya节点式辅助程式,它可以辅助完成很多特效,例如:烟雾、火焰、爆炸、水流等自然方针模拟特效。
烟雾效果
UpresFluid 节点解决了几个流体力学中的重大问题,它可以通过“看”这个流程分离动力学与解算过程。并且通过小型波动算法(基于Theodore Kim 和 Nils Thuerey开源模块) 处理更多的细节。
流体动力学模拟严格依赖于容器的分辨率,如果我们对动力学分辨率进行修改,就会得到不同的动力学行为。为了得到好的结果,我们不得不升高分辨率,但是这使调节变得非常的缓慢,我们希望能有一个低精度显示的调节方式,这会让我们的流程更快捷。
使用UpresFluid节点,能有效地消除必须依赖分辨率+解算和材质+观察这个流程。为此,我们使用2个流体容器,在第一个容器中,我们可以专注于流体的运动。在那里,我们可以不断改变流体的的分辨率,以实现最佳的运动状态,而不担心材质部分。当我们完成运动调节后,再去第二个容器调节材质渲染。
最终我们可以使用它的核心功能——wavelet turbulence来加入非常多的细节,这用Maya默认功能是极为不可能实现的。
爆炸、燃烧效果
Soup还内置了爆炸和燃烧的案例(作者是David Schoneveld),详细信息可参考视频:http://vimeo.com/17032492 http://vimeo.com/17033053
几何体
Maya PaintFX是一个非常强大的 L-System 但是功能上却不尽人意,比如替代几何体。为了填补这个空白,我们可以使用Soup的pfxToArray节点,它可以提取Maya PaintFX中的有用数据并进行再加工处理。
ArrayToDynamicArray节点代替几何体
在这里我们使用ArrayToDynamicArray节点成功提取了数据并将其替代为基本几何体。
RayProject节点可以搜集很多元素对象,例如:点、线、面和粒子。它可以通过投射来精确的搜集这些信息。
球体
在这个例子中我们把一个paintFX 的树投射到了一个多边形球体上。
制作水
Peak deformer功能可以让你在Maya中制作水更加的真实,他可以让融合表面更加的细腻自然。
nParticle模拟的水
上图是Maya的nParticle模拟的水,右面的图是加入Peak deformer 后的结果。 其SPH 算法是基于Ivan Turgeon 的PFVE。nParticle 经过peak和smooth优化模拟过的效果。
模拟粒子从物体内部发射的效果
Scatter 节点可以模拟粒子从物体内部发射的效果,而且可以结合pointCloudFluidEmitter配合流体云一起发射。而非通常情况下的物体表面发射。
和pointCloudField 很像,我们可以用物体整体来影响动力学,而非物体表面影响。甚至我们可以读取物体表面的任何信息,包括颜色等。
控制动力学
物体如何影响动力学也可以通过我们指定的区域进行控制,如图所示,白色区域影响而黑色区域不影响,这和角色的蒙皮权重很相似。
[page]
传递粒子方向属性
AttributeTransfer节点可以更有效的传递粒子属性给物体,比如“方向”。
几何分割
使用Shatter节点可以有效的对几何体进行分割,它可以基于有效的静态或动态的输入离散节点,可以是粒子、NURBS曲线等。这个节点基于Voronoi cells算法。
破碎宽度演算
在这里我对点云(粒子)做了一个动画,然后它根据运动距离产生碎裂宽度演算。
我们还可以实时破碎动态物体。
实时破碎
nMaxCutPP属性可以大幅提高就近裂点的性能。 通过限制范围,我们需要建立一个新的碎片,然后以最接近的n个点进行查找。输入点的密度越大,查找性能越强。如果这个属性值太低也可能会导致重复穿插。
动态解算碎块。
Satter节点的inPositionPP属性,可以用来提供自定义点云,并以这种方式来计算几何体内部。提供顶点,粒子,体元或PFX数据后处理的分散节点,可以实现许多有趣的效果 ,比如:统一填充对象。
统一填充对象
数据流程:
FluidAttributeToArray提取流体容器的体元的位置,并将它们传递到分散节点。分散节点携带网格对象以外的所有点。其余的点位置和距离表面数据会被传递给pointCloudFluidEmitter节点使用使之发射到容器内部。
流体沿体元中心发射
在提供的例子中,pointCloudFluidEmitter处于属性传输模式。利用这种技术,我们可以很容易地实现流体始终沿着体元中心发射的效果。
踩碎冰面效果
这是一个综合操作的例子,它通过读取角色与地面之间的元素集合来实现角色踩碎冰面的效果。
人体爆炸效果