RealFlow教程之破裂的肥皂泡

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RealFlow教程之——破裂的肥皂泡

重要提示:这个教程最终模拟时,第一遍会报错。Reset一下,再模拟就正常了。

重要提示

此免费教程教你怎样创建一个,在慢镜头中慢慢破裂肥皂泡的漂亮效果。用一点Python脚本就可以帮助你能,确定肥皂泡的不同表面区域破裂。一旦表达破开,效果就会波及整个泡泡。

虽然此效果可以不需要脚本,但为了更好的控制还是使用的好。

1.效果速度传播

2.可以轻松定义表面到底哪个区域破裂

3.当破裂产生就定义新的点

4.此效果不只限于肥皂泡,可用于任意开关

最后,创建这流体特殊效果要做的一些设置,仅仅是非常高的表面张力值(tension)。辅助器和力也很重要。当然要进行Mesh操作,另一个是原因是,因为我们想输出一个肥皂泡,最好也是用Mesh。你能在右边看到两个视频,第一个是在RealFlow里Mesh过的样子,第二个是输出渲染过的版本。

总之这个慢慢破裂的肥皂泡效果是非常可吸引人的,你可以加上其它设置,应用在不同场合,例如用kill辅助器做成,等离子球或融化效果。

下面是正文部分

肥皂泡每个人都吹过,甚至成人也会很有兴趣的玩,还尝试玩出不同花样。除了好玩,肥皂泡还有一些非常有趣的科学背景。

图1.一个真实的肥皂泡

表面张力或许是肥皂泡最重要的一个特性了。因为表面张力的存在,这也是肥皂泡会在空气中摇摆不定的原因。另一个由表面张力产生的效果是,肥皂泡是球形的。假如没有外部环境(重力,空气阻力等等),肥皂泡将是一个完美的球形。因为它们总有形成,称为极小曲面(minimal surface)的趋向。

你一开始看到肥皂泡,你可能会认为它有很高的表面张力,其实正好相反。肥皂和洗涤剂表面张力很低,如果不是这样肥皂泡就不会产生了。因为水的表面张力很高,肥皂泡会立即破裂。

另一个让人印象深刻的是肥皂泡很漂亮。它总是有很多颜色,他们反射的颜色看起来在晃动,混合了油一样。肥皂泡有这么的丰富颜色,因为它的壁很薄。当水蒸发时(肥皂泡变薄),会有不太显眼的颜色。当然这个效果不能用RealFlow模拟。但可以用物理渲染引擎做到,让它看起来五颜六色。在渲染时你可以调节材质的不同厚度,得到不同颜色。

第一步:怎么在RealFlow里创建一个泡泡

第一步就是创建泡泡。在这个例子里,填充模型做泡泡,不是一个好方法,因为它要一个尽可能薄的空心物体。用单个粒子层可以达到这个目的。在RealFlow里有这样几种方法来做成这种结构:

1把.粒子均匀分布的Python脚本

2.“sphere”发射器

3.“Fill Object”发射器和“k sphere”辅助器结合

4.激活“Particle layer”设置的“Fill Object”发射器

第一个方法能给你很好的效果,因为你能得到一个没有任何缝隙或孔洞的球体。但用粒子脚本是有问题的。原因是每一个粒子有一个确定的基于Resolution值的半径。

这半径是很重要的,因为为直接影响粒子之间的力。如果粒子之间距离非常近,你会观察到互相排斥的效果,流体会变得不稳定。也可以用非常低的内压“Int Pressure”参数减少这排斥值,但那时就会失去流体的特性看起来像dumb粒子。这所以是Dumb粒子,当然就是因为非常低的”Int Pressure“值。

图2:分布规则的球体

你可以降低“Resolution”值,但不容易找到正确的值。如果太高,很难与粒子交互;太低,流体粒子就会乱飞。

第二个方法是使用“Sphere”发射器。用这个方法也可以创建一个很薄的粒子层。你仅仅需要把"speed"值设成很低,例如0.1 。然后第一帧后停止发射。这样可以管理表达式或动画关键帧。

可能最好的方法就是基于"Fill Object"发射器。这发个发射器提供了两种模式:第一个模式是填充模型。填充好后你可以把“k volume”辅助器放在模型里面(“Inverse=Yes”),删除多余的粒子。当然辅助器半径可以做些调整,根据空心的模型来调。结果还不错,但你可以在下面的图片看到,看起来像有花纹的图案。这方法可以轻松控制厚度并能根据需要,用大量粒子。

图3.用"Fill Object"发射器填充的空心球粒子,辅助使用"K Sphere"辅助器

然后,用“Fill Object”第二种模式:“Particle layer”(粒子层)。当这个设置为“Yes”,RealFlow 会覆盖满球体表面,但不会出现几何体交接线。优点是流体是静止的,因为这是RealFlow 自动计算正确粒子半径,你可以增加“Resolution”到非常高的值,而不会出错。它也能减少粒子间缝隙,你只是需要一个很高分辨率的球体/泡泡做基础。

用RF_toolfactory’s “RF Toolbox Scripts”(最后一个教程会介绍这个工具)你可以重新创建很高分辨率的模型。

你可以在下面图片看到结果。请注意这是较低resolution值版本,忽略相邻边线。

这个方法另一个优点是:你不需要任何初始状态,因为粒子层是Realflow直接创建的,存储或改变时只要“Reset”一下就可以。

第二步:脚本

做这个效果的脚本是很短的,也很容易理解。在写脚本之前,很重要的一件事就是你要知道我们要做成什么效果。我想在粒子层上开一个渐渐扩大的洞。在这个过程中,流体其它部分必须不受影响,保持原样。

所以第一步就需要冻结所有粒子,然后把他们速度设置成0.0。再然后就开始定义,到底在泡泡哪个地方破裂。函数要允许我们把扩散的种子(seed)放在整个表面,或完美的限制他们在一个特定区域。这部分要在模拟前执行,尽管它是"Simulation Events"脚本:Layout>Simulation Events

初始化场景

窗口弹出时,你会看到两个部分。上面部分是模拟事件分支,下面部分是Python 代码部分。脚本预设必须添加在”SimulationPre“:

SimulationPre > Right-click > Add script...(RF5版本后,Layout-->Simulation Events 打开下图3窗口)

此操作会打开另一个窗口,你可以输入脚本:

相关文档
最新文档