原文地址: http://blog.sina.com.cn/s/blog_83b7abaa0101jmqa.html

文章作者:GuaicaiVFX

作者QQ:924254194

大家知道前几天Maya2015正式版发布了,一款无数特效师的大型流体制作利器就这样没了~  不久FluX 2014 开始公测,一款世界首款完全可扩展的流体软件,且可靠性非常高。好了不废话具体信息去官方网了解吧~   http://www.qualoth.com/home/product/flux.asp

也可以去看下载软件后附带的PDF文档~

刚刚用到FluX 2014 ,一样是基于Node Graph的软件深深吸引了我,开始的时候我试着用Naiad的思路去使用这个Graph,但是节点的设计就差点让我放弃自己去琢磨FluX,非常多的端口,并且设计的各种不合理(就此FluX的Graph是必须吐槽一下的~~~)

说到概念,大家必须将Naiad和Houdini 凑在一起来对比,我的理解是这样的。

LeveSet ——>Volume(Houdini)

Field ———>Field(Houdini DOP ,Naiad Field)Scale and Vector

Particle——> Particle(Particle大家都知道)

以上就是我的理解~知道了这些就会对你构建FluX Graph有帮助

这里需要懂的是LeveSet是一个类似volume的东西,所以就会有一个EmitParticleFromLeveSet 这样一个节点,既然发射Particle是来自LeveSet了,现在有LeveSet了,但是没有Particle,这个EmitParticleFromLeveSet节点只是一个功能节点,所以还需要一个东西来让他去满足这个功能就是Particle,所以就会有个叫Particle的节点。这就像Naiad一样大家用过的基本都知道。


简单思路是这样了

LeveSet也可以看做一个东西,一个Volume,既然发射Particle可以基于LeveSet那么LeveSet就需要我们去自定义他的外形,玩Houdini的人就知道这是这个和SOP里面的Volume VOP,Volume Mix,Volume Resize 是一样的,对LeveSet的处理就像是对Volume的处理;下图是对LeveSet塑形的基本节点,因为公测版本很多功能限制,所以只有这些可以使用.

现在来看一下FluX Graph的简单链接

这是一个操作两个LeveSet制作层不同的形状然后Merge在一起然后以Mesh的形式显示出来:

打开可以看到两个LeveSet节点,然后都是用AddImplicitBox和AddImplicitSphere节点分别对两个leveSet做塑形处理,简单说就是把这个LeveSet做成一个像Box和Sphere的形状;下边就是MergeLeveSet的节点,就是简单的将两种形态的LeveSet做融合成一个LeveSet;然后为了显示出来,我把它做了一个LeveSetToMesh的处理,让LeveSet转换成网格,最后就是类似于Naiad的Mesh-Scope节点一样将Mesh显示出来,就是MeshShape节点。最后效果如下;

这个就是简单的对LeveSet处理的链接思路

让我们来细细研究一下这些节点连接~~

大家细看这些节点,就马上感觉开始复杂了。其实并非那样。

Global可以想是Naiad的Global节点,他其实就是Main Node(主节点)即主设置节点;就是设置StartFrame,EndFrame,CellSize,CFL,Resolution…等等的主要设置~ 比较特别的就是他的这些设置参数的数据可以是以不同的数据类型输出出来,可以随意调用自己需要数据,如下图

就是说想怎么连就怎么连。。。。

这里还需要说一下,有很多节点看到输入口很多,很多人总以为要全部都要链接,并不是的有一部分主要的他会自动与Global节点链接的,不用在意那些端口,除非你想自己单独设置不是从Global里面调用的,当然可以断开他的连接自己手动设置(手动设置就是双击节点旁边的Node Property Windows里面就会显示该节点的参数设置。

看,这个LeveSet节点所需要的全局设置的数据是CellSize,Resolution,SubdomainDimension三个参数。

现在讲讲他的输入断的其他部分;

这里这个AddImplicitBox节点的输入端口全部不是调用全局设置的

这些输入口其实都有自己的数据类型

inLeveSet就是把你要处理的LeveSet输入进来,所以看到上一个图片的LeveSet输出的就是一个LeveSet;旁边的On OFF就是节点的开关,这个输入口的数据类型就是Bool,

就是说你可以将某给节点的输出的同样的数据类型的数据连接进来,让他去调用那个节点的数据,下面的输入口就是差不多的意思。有人会说要是不知道什么数据类型的输出口输入什么数据类型的输入口怎么办呢;这个时候点击你要连接的输出口后去寻找你要连接的的输入口,就会标记出蓝色的连接的输入口,这些就是同数据类型的输入口。(这些数据类型不能自动转换的,需要通过Converter 里面的节点来进行转换)

然后节点输出口输出了处理后的LeveSet。

来看一个简单的通过LeveSet发射粒子的连接方法

需要一个particle和一个LeveSet,然后简单对LeveSet处理,让LeveSet变成一个Sphere;主要功能就是EmitParticleFromLeveSet(从LeveSet发射粒子),这里particle和LeveSet都输入到了一起,还有部分调用了全局设置。

每个节点的输入口都有各自输入的数据类型,,所以在FluX里面数据类型的互相调用也是很重要的~~

效果就是这样的:

某些节点的输入口被其他节点占用了,或者做了参数的动画都会可以在参数面板里面看到变化

红色圈出来的标记就是在节点视图里面节点输入口被占用的标记,标记了个“L”,这个时候这个参数手动编辑数值将不起作用。绿色圈出来的标记是动画标记,可以手动设置,进行参数动画处理。

在上一个效果里面的particleShape 和meshshape是一样的,用来显示的,大家看到Shape节点创建菜单里面有着不同的shape,其中我之前没有跟大家讲的是Boxshape节点;BoxShape节点是用来做参照无用的,不是一个实体Mesh,但是可以输出BoxMinPosition和BoxMaxPosition两个数据来给其他节点提供这个参照的位置数据,就好比如AddImplicitBox的那两个BoxMinPosition和BoxMaxPosition输入口,当然也可以在参数面板直接设置。剩下两个是ScalarCornerGridShape 和VectorFaceGridShape,ScalarCornerGridShape 显示类型 Scalar Field ,LeveSet  (不建议拿来直接显示LeveSet)

VectorFaceGridShape   显示类型 Vector Field

每个Shape的输入口不是全部都西药链接,一般找到输入口的最后一个输入口就是需要的,把自己需要显示的数据连接进去即可显示,Shape里面的参数比较简单,在这里不做解释,。

最后讲一下Cache和Terminal 两个节点的作用;和Naiad稍微有点不同,他的Cache和Terminal是分开的,naiad有直接的EMPTerminal。Cache节点就是那里储存缓存的,他的输入口的inData是可以支持所有数据的,当然也有其他节点,还有部分也是很全局设置相连的,一般来说直接将你要储存的数据链接在inData输入口里面就可以了。

Terminal节点是用来结束的,用过Naiad都知道,不多解释,一般都是配合Cache使用的,将Cache的输出口的outData 链接到Terminal节点的输入口inData就可以了。

   

这些是在FluX2014公测阶段GuaicaiVFX首发给大家提供的我的使用Graph的一些心得,由于我的许可证还没收到,不能很好的讲解Solver和其他的Node的用法,等有了许可证会在给大家讲解一下其他的,谢谢~

  • author image
    邱荿藙 回复
    3月 27, 2014 @ 10:27 上午

    顶一个

  • author image
    iesoxj 回复
    4月 11, 2014 @ 10:07 上午

    请问FluX 是不是还没出破解,现在都是单核解算~?

  • author image
    6月 1, 2014 @ 9:58 上午

    …看着还是安心用realflow或者houdini吧