今天我们来用RF、TFD来模拟,最后用RS来渲染出这个像牛奶一样的液体烟雾效果。
文章转载来自公众号野鹿志 公众号ID:yeluzhi666 作者:马鹿野郎
首先打开C4D,这个是我在魔顿网上下载的杯子和瓶子的模型:
删除多余的对象、材质调整完坐标轴以后,它是这样的:
现在的模型它的开口是封闭的,这肯定不行,没关系我们一个一个的来调整:
首先是瓶子,切换到面级别,我们可以直接用填充选择来选中自己想要删除的部分:
开口的位置打开删成这样就可以的,不要忘记瓶子里面之前有充当液体的部分也需要用填充工具选择以后删除:
删除完毕之后记得切换到点级别全选,然后鼠标右键优化一下:
再来是杯子,同样填充选择选中删除不要的部分:
杯子这里需要注意的是原模型,杯子内部到底部是有一定距离的:
所以选中杯子内底部的面:
把它往下移动一点:
杯子底部的三角面其实是没有关系的,不过如果你和我一样有强迫症,可以选中它们删除:
再用封闭孔洞插件封上,最后不要忘记点级别全选优化哈:
为了方便观察,可以给两个模型都添加显示标签,显示网线:
然后调整两个模型的位置,这个不用多说吧:
新建一个圆形发射器,摆放到合适的位置:
给两个模型添加RF的碰撞标签以及体积标签:
再给场景里添加一个重力:
帧速率改为25,做10秒的动画吧:
这个时候点击播放,粒子会到处四散:
在瓶子的体积标签里,将模式改为外壳,同时碰撞的尺寸所以改小一点,不过杯子的碰撞模式肯定也需要调整:
所以同样杯子的体积标签需要将模式改为外壳,同样碰撞尺寸小一点,但是现在出现了穿模的现象:
只需要适当的提高最小和最大的子帧步幅,就不会有穿模的情况了:
因为我们后面要用RF来驱动TFD,粒子数量太少的话烟雾的效果可能会不太好。
所以流体设置里我提高了分辨率,并且提高了一点涡度,其他并没有太多复杂的设置:
最后我希望杯子的水不要流出来,刚好在最后一帧的时候倒满就好,所以降低了一下粒子发射的速度:
RF在模拟这种流体确实很方便,不需要过多的调整基本上就可以先将粒子缓存了:
接下来就是用TFD模拟烟雾了,新建TFD容器框包裹住模型:
由于我们要模拟烟雾,所以我这里缓存的是密度通道,当然温度通道也是可以的。
这里我修改了重力的方向,只给了一点重力值,同时消散时间我修改了一下,让烟雾能够更快消散:
给RF发射器添加TFD标签,勾选碰撞,密度通道给一定的数值:
两个模型也添加TFD标签,勾选碰撞:
预览里记得将通道改为密度通道,着色为烟雾着色器:
接下来就可以看着效果来调整参数了,我先模拟了一次,感觉其实整体都还好,就是烟雾有点过于平整了:
于是我在TFD标签里添加了一点法线力,提高了一点密度的数值:
同时涡度以及湍流的参数也给了一些:
可以看到修改数值以后,由于烟雾的细节变多了,模拟的时间以及占用的空间也明显变大了:
用平面搭建一个简单的曲面场景,这个不用说吧:
接下来就是渲染部分了,设置渲染尺寸,新建摄像机固定视角:
新建RS环境光,给一个HDRI贴图:
RS灯光的体积里需要给一定数值才能渲染出烟雾:
新建一个RS的体积材质:
把材质球给TFD的容器,同时RS材质中的散射通道载入TFD的密度,这样烟雾就渲染出来了:
这里有个小插曲,你可能会发现RS的桶装渲染和渐进式渲染出来的差别非常大:
这个其实是我们下载的这个模型场景设置导致的,康秋D调出工程设置,你会发现它没有勾选线性工作流,勾选以后桶装渲染和渐进渲染的情况就正常了:
重新回到材质里,将吸收的数值改小烟雾就会越透明,然后发光我这里也载入了密度通道,给了一丢丢数值:
瓶子的材质就是一个普通的玻璃材质,取消勾选了剔除内部折射:
我这里把曲面场景更换成了一个普通用于接收投影的平面,然后给了它阴影捕捉节点,开启了反射,反射的粗糙以及衰减:
渲染设置里我打开了全局光照:
因为有玻璃,所以我提高了反射以及折射的次数:
提高了统一、折射、反射、灯光以及体积雾的采样:
同时我这里做了一下分层:
渲染时间确实挺长的,花了差不多13个小时:
渲染完毕以后我才发现自己忘记勾选透明通道了,为了节省时间我又重新弄到农场里去渲染,60多块钱花了2个多小时渲染完:
最后看看效果吧: