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

豆芽兵的生存探索

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

 
 
 

日志

 
 

RealFlow翻译教程——层叠的糖浆(四)  

2011-12-08 20:19:56|  分类: RealFlow探索 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
RealFlow翻译教程——层叠的糖浆 (未编辑完,待修改) - 豆芽兵 - 豆芽兵的天地
 
我是胶体,我是流体,我是混合体。好吧,科学家叫我触变性流体。这名字真长,我不喜欢。其实我想做个果冻,弹弹的,滑滑的,不会在遇到压力时,就害怕的到处流。然后就不像自己了。你说说看,自己不像自己,是多么恐怖的事啊。我真的很想做个滑滑的果冻,听说大家要来,要来仿造一个我。可真的能行吗。我可是有很长名字的触变形流体诶,不是稀里哗啦的水一样的流体,也不是粘糊糊的蜂蜜样半流体,更不是我超喜欢的果冻样胶体。呜呜呜呜呜,我自己都不知道自己什么时候会变成什么,你们行吗?行吗?
 
   R
ealFlow能模拟很高粘度的流体,但还有一些障碍需要跨越。免费的"Honey Simulation"(蜂蜜模拟)教程已经 解决了其中一些困难,但即使有这些技巧和窍门,再去模拟清晰分明的流体层效果还是很困难的,例如糖浆和牙膏。原因之一是这些物质不属于同一类,称为触变性流体(thixotropic fluid).当你把这些流体放在一定压力下,就会变得越来越像液体,因为它们失去了粘度。一个很好的例子是番茄酱,你得不停摇它,才能变成液体。(联想《色即是空》中最后那个镜头)所以,这液体正常的牛顿流体相比有完全不同的物理特性。

不过,还是有方法来模拟它们的,如本篇免费教程中讲到的这种。您将学习到,如何修改多种参数,加上辅助器,得到如下面图片的效果。粘度很高的流体要花很长时间来模拟,因为你不得不用用非常高的“MIN substeps”使它保持流体状态。在用很高粘度值情况下,不稳定是最常碰到的问题。

下面图片是模拟的粒子和相关mesh.

RealFlow翻译教程——层叠的糖浆 (未编辑完,待修改) - 豆芽兵 - 豆芽兵的天地

RealFlow翻译教程——层叠的糖浆 (未编辑完,待修改) - 豆芽兵 - 豆芽兵的天地

 

层叠的糖浆

模拟这个效果最要讨论的是如何创建出层叠的糖浆。在这个场景中,发射器流出柔软的形式整齐的层。当新的层碰到下一层时,糖浆有一点点挤压,但仍然能区分出每个层。

RealFlow翻译教程——层叠的糖浆 (未编辑完,待修改) - 豆芽兵 - 豆芽兵的天地

1,这个教程的效果

看第一眼时,感觉是个很容易解决的任务,RealFlow提供了所有需要的参数,像viscositysurface tension,但真正做起来还是很棘手的。用标准的流体粘度(viscosity),你还要考虑场景的事。你需要创建一个在有不同力时还能保持平衡稳定的场景,但这不是一件容易的事,需要经过大量测试。尽管这样,viscosity还是最重要的参数。我建议你先看下上一篇模拟蜂蜜的教程。那里你学习到真实世界中“viscosity”具体描述并如何在RealFlow中使用。这是做出教程效果很关键的一个知识点。

场景设置

第一个操作就是创建一个新场景。一开始是很简单的,仅是添加一个“Square”发射器,用一个盒子(cube)充当地面,或用ground模型,还要加一个重力场(Gravity)。在模拟蜂蜜中你知道RealFlow需要很高的“MIN substeps”保持流体状态。如果值太小了,粒子就会逃散,导致内存出错或崩溃。逃散的粒子既不能用“k Volume"也不能用 “k Speed”辅助器帮你杀掉。

要得到像样的层叠形状,“Square”发射器需要调整一下。本例场景,缩放大小是:

Square01 > Node Params > Scale > [ 0.04, 1.0, 0.8 ]

如果你坐标设置不是YXZ,你要根据你的预设调整一下。小的发射器通常需要非常大的“Resolution”值。要得到足够的粒子,把这个值设为1000.请确认,发射器方向朝向地面。发射器大小可能非常小,如果粒子层太厚就得不到需要的层。另处足够的“Resolution”值,会得到所需要的粒子数量。正如你看到的,整个场景设置都很小,当然,你可以设置成你需要的大小。下一步给发射器创建来回运动的动画,这样才能得到像样的层次感。发射器应沿着高度轴放置。下面图片完整的动画有近800帧。

你可以看到,动画路径很粗糙,你当然可以把动画做的很平滑:

RealFlow翻译教程——层叠的糖浆 (未编辑完,待修改) - 豆芽兵 - 豆芽兵的天地

通用参数

开始模拟之前,“Viscosity”参数设置成很高。8001000比较好,但你可以尝试更高的设置。甚至是15002000,尽管我经常建议用很小的值来进行工作,避免不稳定。另一方面,一些步骤不是简单的需要这么高的值,最终设置取决于很多东西,例如,力,substeps,帧速率,其它环境等等。

最终,模拟的substeps得调节一下,规则参看 “蜂蜜教程”。

MIN substeps = MAX substeps x 0.9

结果非常令人失望,你会在第一帧看到内存错误的提示。甚至调成非常高“MIN/MAX substeps(990/1000)这个问题也不能解决。你可能会想,那就用“k”辅助器,删除逃逸的粒子,但尽管这样发射器也不能产生规律的层,一团糟。另一个想法是引入"Drag force"辅助器。这个辅助器减慢粒子,但不能阻止他们。还是给你省点时间吧,因为这个“Drag force”辅助器对粒子一点效果也不起。这里只有两个方法解决这些逃逸的粒子:更低的“viscosity”或减小“Int Pressure

较低的“Viscosity”值明显是最好的解决办法,来获得最终效果。"viscosity"值,最低100左右就可以了,但模拟质量很差。

那我们就先分析下场景,获得一些有用的信息:

1.粒子在离开发射器开始时是很整齐的形状

2.如果发射器速度太慢,就看到下面不连续的流体

3.仍然有一些不正常的粒子在流体边缘

4.流体不是层的形状

RealFlow翻译教程——层叠的糖浆 (未编辑完,待修改) - 豆芽兵 - 豆芽兵的天地

3viscosity = 100 其余是默认设置。

这些问题都要解决,特别是速度。如果你在模拟蜂蜜教程中看过“Time-depending Parameters”那节,你会注意到 FPS输出是50.。因为用FPS速率是完美的方法来使模拟减慢的方法。另外,FPS速率,对模拟有很大的影响。

接下来,模拟时 Viscosity增加到900, FPS设置到200左右。你仍会看到粒子有很好的加速度,但你不会看到内存错误。为了减少大量的逃逸粒子,FPS调成400.现在模拟一下,你会看到所有都很正常,尽管流体还是断断续续的,但这个问题很容易解决,用“speed”值就行。也可以增加一些随机:

Node Params > Square > Speed > 5

Node Params > Square > V/H random > 0.2

如果你观察真正的糖浆流体,你会注意到这经典的一幕:当层相互接触时,层会被压缩 -就好像挤掉一些空气。层虽然融入一起,但仍保持分层。为达到这个效果,必须改变流体的“Ext pressure”参数。Int Pressure值保持不变,但其对应的有所下降,这会使流体压缩更多:

Node Params > Particles > Ext Pressure > 0.2

RealFlow翻译教程——层叠的糖浆 (未编辑完,待修改) - 豆芽兵 - 豆芽兵的天地

4.流体层形成,但仍然有反弹

上面粒子模拟的已经很接近糖浆,有了一些分开的粒子层(见 图4

100120帧,执行的非常快,但之后会发生急剧变化。在第二到第三层后,RealFlow运行非常慢。其中一个原因是流体粒子离地面太远了,你会看到或多或少的差距。要改变这些差距,你要到地面结点的“Collision distance”参数设置下

Node Params > Particle Fluid Interaction > Collision distance > 0.01

微调

到目前为止,结果是令人鼓舞的,但仍然有一些事情要解决。在RF2012中可以看到第一层接触在面时会反弹。为了减小这种影响,保持层在一起,把地面结点中“Particle friction”参数调成 0.11.0.这个值到1.0时,可能你得要增加“MIN/MAX substeps”但这不是必需的。如果你看到地面附近不稳定,可以加下。只使用“particle friction”,反弹效果不能完全去除,但已经好很多了。原因是“viscosity”,因为这个性质,会增加内部的摩擦力,而摩擦力会增加很多弹性。为了完全去除,就要加上一个“surface tension”辅助器。你可能在论坛或博客上看到,viscositySurface tension最好不要一起使用。但自从RF5之后,这个问题就不存在了。在RF5或更高版本,这两个参数可以一起使用,甚至都设置成很高也不会导致任何不稳定问题。增加辅助器,改变接下来的参数:

Node Params > Surface tension > Strength > 35000

Node Params > Surface tension > Balanced > Yes

当你模拟这个场景时,你会发现,反弹效果完全不存在了,也没有任何不稳定问题。反弹效果不是必要的,但这力会使分布更自然,差异可能是很微妙的。不幸的是,另一个问题显现出来了现在,就是现在层混合的太快了。这可以用“Drag force”辅助器解决。参考手册说“Drag strength”值避免大于1,因为过高的设置,会导致不稳定,特别在粒子创建时。在这个场景,情况是不一样的,你肯定不会忘记,FPS Output是设置成非常高的。这个环境下可以使用很高的“Drag strength”值。

Node Params > Drag force > Drag strength > 6.0

RealFlow翻译教程——层叠的糖浆 (未编辑完,待修改) - 豆芽兵 - 豆芽兵的天地

5Square发射器最终设置

如果你仍然看到逃逸的粒子,你首先要增加“MIN substeps”,甚至要增加到“MAX substeps”的98%。如果还是经常不稳定你就要考虑用更高的“MAX substeps”设置。你要在RF5RF2012用不同的设置,用RF5 比率是 440550 RealFlow 2012 330333.下面看到的是RF2012最终模拟设置:

RealFlow翻译教程——层叠的糖浆 (未编辑完,待修改) - 豆芽兵 - 豆芽兵的天地

模拟评估

RealFlow的透视图,是很难看出场景模拟的质量的,因为不能区分单个粒子,和层。而在前视图,是非常好的,因为你能真正看到流体层。为了有更好效果,你需要创建mesh RF2012.在那里做一些设置,轻松创建出你需要的模拟结果。在结点面板选择发射器:

Node Params > Display > Display type > Sphere

如果你用很小的设置,像在这教程里的,你仅会看到蓝色的一团。想用单独的球体显示,请增加参数:

Node Params > Display > Size > 0.01

现在你用球体显示,能看到每个细节。

Mesh

在几个小时后,模拟完成了。你有了粒子层,可以创建mesh了。用RKmesh来创建吧,因为容易调节丰富的融合。

如果你场景里只有一个发射器,你不需要手动加入mesh容器,因为RF会自动为你完成:

RealFlow翻译教程——层叠的糖浆 (未编辑完,待修改) - 豆芽兵 - 豆芽兵的天地

在第一次用默认设置,是不错的做法,可以知道什么改变了。当然效果很差,mesh太厚了,不能看到单个层。mesh缺乏细节,可以调整Polygon size参数修改

Node Params > Mesh > Polygon size > 0.02

当我创建mesh时,我通常会把olygon size大小设置成与发射器Radius相等的值。这个参数可以在点击发射器节点窗口时到:

Node Params > Field > Radius > 0.02

现在mesh看起来不错,但看起还不够好。为了减小层之间差距,可以用更小的Polygon size值。

Node Params > Mesh > Polygon size > 0.004

Radius值,在例子中,是不一样的,因为忽略显示的球体,看起来会有残缺

Node Params > Field > Radius > 0.007

最终 mesh显示了单个层,有平滑的表面,仍然是连续的流体没有破洞。你可以增加一点filter平滑流体面:

Node Params > Mesh > Filter > Steps > 32


RealFlow翻译教程——层叠的糖浆 (未编辑完,待修改) - 豆芽兵 - 豆芽兵的天地
 

6,完整的mesh设置

RK mesh允许显示很多流体属性,例如,force,velocity,viscosity等。但结果是令人失望的,因为大部分大小,不是固定的,例如viscosity,或非常低,例如 velocity.

RealFlow翻译教程——层叠的糖浆 (未编辑完,待修改) - 豆芽兵 - 豆芽兵的天地

一句话总结:蜂蜜好了再找我,不然我要你好看
                      F -- P -- S,这可很关键,
                      想让我融合,
                     那就调内压
                     下面老一套,辅助,调节,加Mesh
                      最后渲染出来就是我

                    
                   


版权注意事项

所有在这文章中图片,文字,和素材都属于RF_toolfactory.你可以复制和分享这PDF,但不允许直接提供PDF下载。无论是在论坛,还是文件共享站,种子站或其它地方。但你可直接链接本教程,进行交流的目的,是可以的。

所有已经给出的材料都做过最大的努力,但错误不能完全排除。RF_toolfactory不为计算机或软件崩溃和/或数据丢失负责。需要您自己承担使用本材料脚本,和文件在你硬盘上的风险。

不允许转卖PDF和素材。不允许删除版权信息。如果你用这PDF图片或文字到有其它目的,要标明出处。

by RF_toolfactory (http://www.rf-toolfactory.com)

谢谢。

1.本中文内容是博主(昵称:豆芽兵,账户 qqww2334),为了分享这篇文章而精心,辛苦翻译的。转载请标明博客地址 http://qqww2334.blog.163.com/ 以便获得更多更新内容。

2.所有内容都经过本人亲自试验都确保可行,能做出教程效果。

3.联系交流方式,博客留言。邮箱:qqww2334@163.com  期待您的来信

4.所有内容都是根据 http://www.rf-toolfactory.com/rftutorials/overview.html 翻译而来,毕竟翻译是一个转述的过程,虽然我尽力做到忠于原文,但难免有个人色彩,请有需要朋友根据网址自行到原网站学习。

5.代码,PDF,视频,请到原网站下载。特别是代码,我希望读者自己输写一遍,这样是最好的学习方式,有任何相关问题,请来邮件说明,我们共同提高学习交流。

  评论这张
 
阅读(6900)| 评论(11)
推荐

历史上的今天

评论

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

页脚

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