2012-08-10 20:31:05| 分类: RealFlow探索 | 标签: |举报 |字号大中小 订阅
这篇文章有三个目的:
1.分享最近关于做特效的一些思路总结;
2.分享一下水中泡泡有趣的事
3.分享一个巧妙的用RealFlow做Liquid Bubble的方法 (为了与Soap Bubble区分开)
一、制作效果时一点总结
做效果有两个途径:一个从上往下,一个从下往上 这是两种思维方法。一直伴随着我做任何效果全过程。
从上往下:就是从外观入手,极尽模仿。最直观表现就是一笔一笔“画”出来。
从下往上:从产生原理入手。模拟真实的系统。自然得出效果
不能一定说哪个途径好或坏。只能说它们各有特点。
下面以做北极光为例来简述一下。
从外观入手特点:极光流光溢彩,极富变化。这是我们一眼就看到的,可以用模型材质来模拟。做一个变化的模型然后调整材质,key上各种动画。模拟出效果。从产生原理入手:极光是由于来自太阳高能粒子,撞击到大气层分子或原子能量激发,产生光芒形成极光。根据极光产生原理,我们可以模拟一个大气层,然后用高速粒子撞击这个层,根据撞击生成拖尾光芒。摄像机在这个层里,也能看到类似极光的东西。
从外观入手:1.可以称为“艺术方法”,极力模仿,“画”下来
2.每个镜头都重新来一次,不利于“复盘"
从原理入手:1.需要投入大量时间进行实际研究。然后模拟出一个系统出来
2.得出的效果比较逼真,对于批量的效果效率很高,容易“复盘”。
再直观的例子就是。在Fumefx这样的插件没出来时,做火焰的效果用二维手法“画”出火来。有了插件后,制作者就相当于“复盘”
小结一下:根据情况来定,我喜欢先探索原理再制作,CG的模拟的东西很多就是学习自然。“画”的方式通常单镜头特别快速。也可以结合使用。所以技术细节都是建立在这两种思维模式之下的。以后会有文章详细探讨。
二、流体泡泡一些趣事
先列一下混乱的名字:Bubble ,Liquid Bubble(水中泡泡),foam(泡沫),水泡,泡泡,气泡,泡沫,肥皂泡,砸落水中泡,煮沸水时的泡,碳酸饮料的泡,啤酒泡。
为了不引起误会,今天我所要说的是Liquid Bubble
2.1水泡定义
维基定义是:A bubble is a globule of one substance in another, usually gas in a liquid. Due to the Marangoni effect, bubbles may remain intact when they reach the surface of the immersive substance.(粗糙的翻译:水泡通常是流体中的气体小球。由于Marangoni 效因,水泡到水面时会破裂。)
注:(Marangoni effect,)马伦哥尼效应是指在流体接口,因为表面张力梯度而造成的传质现象。两种液体相接触时,表面张力强的液体会将表面张力弱的液体拉过来,因此会出现表面张力弱的液体向强的方面渗透,同一种溶液会因为浓度高而增强表面张力,所以稀溶液也会向浓溶液中渗透。这种现象最早是由意大利物理学家卡罗·马伦哥尼首先在1865年论文中研究发表的,所以被命名。
2.2水泡本质
统一的解释:流体中不能相溶的气体球。
上面是本人擅自总结的,不能当真。水泡如何产生的,不同类型的水泡产生原因完全不一样。
a. 海底或湖底冒上来的气泡。
可能由于水底有植物什么分解而产生的甲烷气体?可能由于植物呼吸作用产生的氧气?还是因为大鱼吐出的二氧化碳?反正就是一种无法溶于水中的气体。
b. 烧开水时产生的水泡
容器避有空气,本身水就溶有空气加热后,空气跑出来。这是通常认识。还有一说是,因为热水会汽化产生水泡。
c. 啤酒&碳酸饮料
不容置疑的是这两者都在生产时通过增大压力而溶入更多的二氧化碳。打开瓶盖时,压力降低,二氧化碳会释放出来开成气泡。
那酒杯底吐泡泡是怎么回事呢?
原来玻璃容易带正电,容易吸引空气中的纤维灰尘。当酒水倒入酒杯后,荡入杯底的纤维管成为了气泡的成核中心过饱和的二氧化碳通过液固气界面释放进纤维管中,一旦管内气泡鼓出,酒水又会重新填充纤维管,进行下一轮的二氧化碳释放和堆积。在不断地吸收-释放-膨胀-排出过程中,我们看到了如珍珠链一般美丽的气泡不断升腾……
d. 一个人落到水里也会产生水泡
当然是人把空气带入水中啦,那些水泡就是带下来的空气。
等等等等这样的例子很多。
无非就说了一件事事,要想生成泡泡就得有气体跟液体。也就是两套流体。两套不相溶。而不相溶的原因跟密度与压力又有关系。好我们就顺着这个思路在三维中试试。
三,RealFlow中制作水中泡泡(Liquid Bubble)
3.1现实探索推入CG
我这里准备模拟的是池塘中翻涌起来的一股大泡再分成许多小的泡泡。
看一下我最终效果。
这种效果在实际应用于水底背景效果还是不错的。
这个方法说出来可以说是非常简单,任何有一点点RealFlow知识的人都能做出来。
做效果不是说你用的手法复杂就厉害,固然证明了你技术掌握的多,但实际生产效率就不知道好不好了。把复杂技术的简单应用是最优的。
这套方法巧妙在的是,完全符合自然界中气泡产生原因的。
经过上文对实际气泡一些说明,你肯定有了一些理性认识。
3.2气泡必要条件:
1.得是两套流体(类比空气和水)
推论出:2.一套流体密度大(水),一套流体密度小(空气)
3.压强不一样。这一点稍微有点不好理解。
在气泡上升时,空气内部压力肯定大于外部压力的
水呢,肯定外部压力大于内部压力。只有存在这样的压力差情况下气泡才能上升。
外形方法,RealFlow有mesh这一强大的功能,可以把动态粒子变成球形很像泡泡。
根据上面分析,非常幸运,我们所需要的属性,RealFlow都有相应的参数提供。这也是我们这个效果做起来快速的原因。
流体:Liquid
密度:Density
压力:Int Pressure/Ext Pressure
3.3 RealFlow中制作Liquid Bubble步骤
水域:用一个填充粒子的cube来完成
空气:用一个球形发射器(Sphere)来完成
a. 建立一个Cube模型.调整的高一点,像一个水箱,你就把它想像成是一个池塘。待会水泡会从这冒上去的。最好让模型,线框模式显示。
b. 建立一个Fill_Object发射器 .这个用来填充粒子。Fill Object下选择上一步建立的Cube01,Fill Volume参数设置成Yes.就会看到Cube里填充了粒子。像水池一样。
c. 调整Fill_Object发射器的Particles属性。确定粒子类型是Liquid。Density暂时保持不变。Int Pressure 调整成20.让水有很大的内压。这样“空气”那套粒子在里面交互时才会正常。
d. 建立一个Sphere发射器。垂直位置移动到Cube最底下一段距离。
e. Sphere发射器同样时Liquid粒子类型。Density调整成6000 (可以根据场景再修改)。Ext Pressure调整成40 。Surface Tension调整成10,为了让表面形态稳定。
f. Sphere下的Speed打成0,Fill sphere打成Yes. (这样做只发射一股,如果要连续不断的水泡,可以给Speed一些值)。现在模拟一下,会看到球样的粒子发射,落到下面,并没有往上。
Sphere发射器参数参考:
g. 加一下Gravity。值打成-9.8(负9.8)。也可以把不改变值把方向改成反的。现在模拟一下,你会看到球样的粒子就发射往上了,像水中泡泡一样。但问题是它与Cube有碰撞。(为了稳定给场景加一个K_Volume场)
h. 在全局链接里(GlobalLinks)删掉Cube,Gravity
i. 打开Exclusive Links ,让Cube成为Fill_Object的子,Gravity成为Sphere的子。所有结点与链接关系。如下图。
j.当粒子动态模拟好后,下面就是做mesh了。这一步对外观很关键,但又非常简单。
建立一个ParticleMesh_RK,默认参数就行。只要给Shpere发射器粒子做mesh就可以了,Fill_Object那套可以隐藏,最后是不需要的。
下图是我做出来的mesh
K,把这个mesh导入三维渲染吧,下面是我渲染的效果(第一张图,动态图传错了,周一再改一下)
只要在第f步骤改变一下就能做出,持续的发射。气泡节奏可以给speed 做动画来控制。干脆不用Sphere发射器,用Circle发射器发射更好
3.5总结:两套流体,
不同密度,不同内外压
重力反向
Mesh默认
四、效果拓展&总结
如果做到这里就结束了,那也太对不起我们的探索了。
根据这个思路可以再做出,锅里煮沸的水泡泡,岩浆的泡泡。如下图。
(这个锅里的效果,是简化过的,不是真正的两套流体,而是一套用Particle做好动态的小球再导入到Naiad与水碰撞。这样制作速度要快很多。上图是同事“绵羊”模拟的,感谢他提供的图片。)
下面岩浆效果,也可以用类似方法模拟出来。
补充一下:记得上面说过那个美人鱼落水的气泡怎么做呢,也很简单,先模拟根据人动态模拟一套粒子再导入Realflow或Naiad这样的软件,直接碰撞,效果就很好了,跟简化的锅沸腾一样制作。看看,只要稍微研究一下泡泡产生原理就能做这么多特效。你说说多思考底层知识的作用有多大,这才叫以不变应万变。多学“元”知识。多研究自然,热爱自然。特效探索的路上充满乐趣。
参考:
http://en.wikipedia.org/wiki/Liquid_bubble
评论