当前位置:文档之家› RealFlow 翻译教程05——放松流体

RealFlow 翻译教程05——放松流体

RealFlow 翻译教程05——放松流体
RealFlow 翻译教程05——放松流体

什么是放松流体?

流体总是带有一定的动能。例如你在倒一杯水或跳进游泳池时都能感觉到这个动能。一段时间后,流体的运动会停下来,变成一个平面。并且这个面一直是水平的。

图1.晃动中的流体,和描绘粒子速度(不同颜色对应不同速度大小)

在Realflow,这个是运动非常强的,你可以看到上下晃动的粒子。模拟足够长时间后,运动就会减弱,但实际上永远不会完全停止。如果达到一种几乎看不出运动的状态,就称为“relaxed”(我翻译为“放松”)。不幸的是,这要花很长时间才能达到这个效果,我们不得不花大量时间,但这里会介绍个非常不错的技术加快这一进程。

另一个问题是流体表面。不能完全,甚至一直在微微的晃动或溅起。就会有很多漩涡在mesh 上,但可以通过一些设置去除,可这样又会损失一些细节。

可能你现在最想问的是,为什么要做“放松流体”?答案很简单,很多模拟工作在一开始都要用很平静的表面。当需要模拟时间非常快时,也会用到它。例如,在商业制作时。你不可能等上千帧让流体稳定下来,所以这个过程需要又快又容易实现。

怎样去创建一个基本的放松(稳定)状态?

常用模拟方式是用填充物体发射器(Fill Object).

一开始我们看到流体是均匀的分布在物体里的,但一加上重力场,粒子就有了加速度,上上下下运动很剧烈,要相当长时间才会稳定下来。我们现在需要一个快捷的方法让粒子平静下来,去创建一个水平的面。

最常用的方法是使用 k Speed辅助器。这个辅助器能设置粒子的速度极限,衰减流体动能。

很显然这个方法还是需要一点时间,但比不加辅助器时要快很多。在我们开始时需要一个容器,一个填充物体发射器(Fill Obiect),和重力场(Gravity).

请注意这个场景也是其它方法的最初场景。

在加入 K Speed前,先要模拟 150-200帧左右,为了除去很高的速度。放松过程要够快,发射器的“jittering”值要保持 0。因为我们想创建一个非常平静的面,是不需要粒子随机分布的,会适得其反。Drag 辅助器是不错的工具。这个辅助器会衰减流体动能,加速放松过程。

要减弱流体上上下下动的效果,要把发射器“Int Pressure”值设为 0.5.这会加快流体稳定。当流体一平静下来我们必须找出最大速度,创建初始状态。最大速度值在发射器“Statistics”面板:

Statistics > V max

图2:“V max”值在发射器的“Statistics”面板

初始状态:

Fill_Object01 > Node Params > Initial State > Make Initial State

还要设置“Use Initial State”为“Yes”,在“Reset”按钮下把“Reset To Initial State”勾选上。流体看起来很平静,只有一点点运动,但这仍然不能满足一些模拟需要。另一方面,如果你满意当前状态,可以延长帧到 250-300帧,使流体进一步稳定并创建初始状态。这基本上是我们所有要做的。

如果你真需要一个平静的面,请继续用k speed辅助器。这个辅助器会动态的减弱粒子速度,限制他们到一个特定值。此值会随着时间推移减弱,结果是一个平静液态表面。请遵循以下说明:

1.设置最大速度

k Speed辅助器可设置流体最大最小速度这两个参数。最小速度总是0,因为这个值代表粒子没有运动。开始时k Speed辅助器“Max speed”参数可设为1.49。也可以用低一点值,

如1.30

然后key上动画。为了安全一点,延长到250帧.移动时间滑块到最后一帧,Max speed 设为0.001,Key上动画。(译者注:现在Max speed 动画是第1帧值为1.49,第250帧为0.001.)最后“Limit & Keep”设为“Yes”."Limit&Keep"会限制流体最大速度为给定值,保持粒子而不是删除粒子。

2.Simulate(模拟)

重置(reset)场景开始模拟。你检查发射器“Statistics”设置,你会看到“V max”不是完全与当前辅助器“Max speed”一致,这是正常的。250帧后,最终速度可能在0.1和0.5之间,足够了。通过动画你会看到水平面上粒子一直是非常的平静,速度快的粒子在水平面下。正是我们想要的结果:粒子在平面是平静的,而速度快的粒子在深的地方(可以忽略)。

3.创建初始状态

为放松粒子,是需要初始状态的。你可以删除所有BIN文件开始模拟。只有初始状态是需要的。现在可以继续调整其它元素,例如有影响的物体(跟物体交互)。你可以删除k speed,,或在“Global Links”面板删除

放松过程越长,最终效果越好。如果你需要一个非常稳定的面,你可以在晚上模拟1000,或2000帧,但肯定会有一个时刻过后你会看不到任何变化。速度是不可能设置成0.0的,因为粒子之间是一直会产生力。

加个“盖子”

当前方法已经很有效了,但这平面不是完全规整甚至还是有一点凹凸。为了除去这些,要使用一个辅助物体,就是加一个物体盖住流体。这个覆盖的物体要key上动画,这个过程会压下流体。更高的压力意味着更高的速度,所以要准备很长的放松过程。这是很好的办法,来抵消高速度粒子,再一次使用Drag辅助器。

这个场景开始时与之前是一样的,但这次我们需要一个盒子,好像活塞压住流体。不要忘记改变盒子的“Collision distance”值在 0.005左右或更低。“Distance tolerance”设置成0.0,创建几乎完美的平衡层。

层3.key上动画的“盖子”压住流体,创建光滑稳定的流体平面

这个“盖子”的动画是很重要的,因此不能:

太快

压得流体太强

开始的太早

如果压缩的太强/或太快,粒子速度将会更高,再一次导致要更长时间模拟。如果压力太高,“V max”容易达到 10,12或更高值。只用Gravity和很强的Drag 场,Drag辅助器可以是8.0甚至更高。

现在流体必须稳定在200-250帧左右,放松过程用k Speed辅助器,要重新开始。“盖子”不要移去,在放松过程中,利用它能减少模拟时间。流体粒子一旦稳定,就创建一个预览视频。如果仍然太高,创建一个初始状态,重新模拟用更小的“Max speed”值。

图4:粒子表示了一个非常均匀的平面

当你移除"盖子”,和Drag辅助器,流体会扩散一点,但这通常是因为“Int Pressure”参数。扩散非常强,导致粒子表面有些不平和凹凸。不过,如果你比较这个方法产生的与另外的方法产生的效果,这个平面真算是非常光滑的。

如果你想避免扩散效果,你也能用一些小技巧消除:

放松流体时,大多数时候要用初始状态。移除“盖子”的时刻可以用表达式。表达式的问题

是,我们要提前知道影响的时刻。手动key物体,这不是问题,但对刚体,我们就要做测试,找出这个时间点。当这个时间是已知的,表达式就加在物体的“Simulation”参数下:

Node Params > Node > Simulation > right-click > Add curve

假设影响帧 f=58或模拟时间 t = 2.283.在曲线编辑器,我们得这样写:

if (f > 58,0,1) or

if (t > 2.283,0,1)

这个表达式将打开模拟状态,根据给定的帧 f或时间t

在Python,有一种方法标志碰撞粒子,有人会想这是达到这个效果的完美方法,但这是不可能的。原因是粒子在之前就与容器壁相碰撞了,RealFlow不能区分粒子与物体,只是简单的检查粒子是否有碰撞。

Meshing

如果你在RF5或更高版本,可以在mesh过程时RK mesh 引擎,因为它很快(多线程)也很容易操作。用“Smooth”参数能移除一些凹凸,filter能帮助除去不想要的面结构。

但,请小心,因为这两个参数会去掉流体细节。

第一张图片,显示非常光滑mesh,几乎没有看得到的凹凸或不规则。第二张图片,显示了流体速度,你仍能看到一些粒子在运动(红,黄,和绿色)但大部分面是非常平静,至少蓝

色区域是非常低的速度

相关主题
文本预览
相关文档 最新文档