注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

豆芽兵的生存探索

因,记录。留下历史,看到未来...

 
 
 

日志

 
 

RealFlow 翻译教程——放松流体(五)  

2011-12-09 22:18:52|  分类: RealFlow探索 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
RealFlow 翻译教程——放松流体(未修改完) - 豆芽兵 - 豆芽兵的天地
这个故事是这么开始的,哦,只是有一个开始。我们讲的就是开始的故事。故事本身不重要,它存在就是为了开始,现在既然已经罗里八嗦的开始了,那就真的开始吧。


 什么是放松流体?

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

RealFlow 翻译教程——放松流体(未修改完) - 豆芽兵 - 豆芽兵的天地

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

RealFlow 翻译教程——放松流体(未修改完) - 豆芽兵 - 豆芽兵的天地

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

RealFlow 翻译教程——放松流体(未修改完) - 豆芽兵 - 豆芽兵的天地

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

 

2.Simulate(模拟)

 

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

 

3.创建初始状态

 

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

 

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

 

加个“盖子”

 

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

 

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

RealFlow 翻译教程——放松流体(未修改完) - 豆芽兵 - 豆芽兵的天地

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

 

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

 

太快

压得流体太强

开始的太早

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

 

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

RealFlow 翻译教程——放松流体(未修改完) - 豆芽兵 - 豆芽兵的天地

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能帮助除去不想要的面结构。

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

RealFlow 翻译教程——放松流体(未修改完) - 豆芽兵 - 豆芽兵的天地
 

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

 

一句话总结:想要放松流体吗?给它加个盖子吧!别忘记用RKMesh哦,亲!.

  评论这张
 
阅读(6582)| 评论(1)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018