
前面用XP粒子模拟,然后RS渲染制作了一个冰雪球的效果,感兴趣的鹿友可以看这篇:

我的原意是在尽量还原之前的效果,用RF模拟雪球,然后用OC渲染出来。
但是我尝试了好久,用RF模拟普通颗粒还可以,如果要模拟雪球,雪球的碎块始终没有XP模拟的好看。
可能是自己没找到方法吧,官方的手册也并没有太多详细的说明,感觉用RF还是模拟液体要好一些。
不管了,既然已经尝试了就索性也把它写出来,同样模拟部分没有太多复杂的步骤,我就尽量还是把可能用到的参数写详细点。
这样自己或者鹿友有需要的时候,也可以翻出来看看。

01
模型处理部分
模型处理部分虽然还是和上一篇是一样的步骤,我们还是快速过一下吧。
打开C4D,导入准备好的动物绑定模型,把帧速率改为25:

把动物绑定模型转为点级别动画:

打开时间线窗口,把动画多循环几份:

把总时长改为250:

复制两个出来,调整一下位置:

然后同样在时间线窗口里把两只鹿的帧偏移一下,避免步伐太一致:

使用连接对象将三个对象连接成一个,记得取消勾选焊接:

RF模拟的话,地面要有厚度会比较好一点,所以新建一个大大的立方体充当地面,基本上就可以开始模拟了:

02
RF模拟部分
新建一个RF的球形发射器,调整它的位置和大小:

发射器的设置里勾选填充球体,然后把速度关掉:

给场景里添加重力,参数默认即可:

给地面添加RF碰撞标签,为了防止粒子滑动太远,我这里把摩擦力改的比较大,现在点击*放播**你可能会发现粒子会漏下去:

没关系,系统里面我们手动设置一下最大最小子帧步幅就可以了,我这里设置为8,就没有粒子漏下去了。
勾选一下GPU加速吧,我测试过,模拟起来确实要快一些,当然也和你的显卡好坏有关系:

在流体设置里,我们先把模拟的类型改为颗粒,现在你会觉得流体颗粒的感觉并不明显:

我们可以回到系统设置里提高最大最小迭代值,这个参数越高,流体会表现的越硬。
官方的建议是在模拟颗粒或者粘稠液体的时候,最大最小迭代值最好保持一样的数值:

重新回到流体设置里面,我们来过过参数吧,首先是分辨率,这个数值控制着粒子的数量,我这里先暂时设置为500吧,也就10W个粒子的样子:

首先是密度值,这个参数主要就是用于混合不同密度的流体的,对单一流体并没有太大的影响,所以我们这里不用管它:

接下来是互穿这个参数,它其实是模拟粒子与粒子之间的排斥力,可以看到我们把它改为0,粒子整体就分散的没那么开了。
这个参数我同样没有动它,还是保持默认参数1就好了:

下面这个摩擦力参数是指的粒子与粒子之间的摩擦,可以看到我改为大以后,粒子之间的滑动就变小了:

接下来是静摩擦力,它相当于是一个阈值,当粒子与粒子之间的摩擦力大于它才会发生滑动,参数较高的时候比较容易形成沙堆的效果。
但由于我们这个场景粒子并没有进行持续的发射,所以效果并不是很明显,我这里就直接把它改为1了:

压实这个参数类似于额外的粒子与粒子之间再增加一种摩擦力,这样粒子在碎开的时候更容易形成块状。
我们把它改为1,可以看到粒子球在下落的时候已经有点形成碎块的感觉了。
但是我觉得这个参数不是很好控制,数值太高的时候由于粒子与粒子之间压实得很紧,虽然有碎块,但是散落的就不是很开,我们这里把它设置为0.1就好:

接下来就是凝聚力这个参数了,它主要就是用于控制颗粒的外观形态的,数值高的时候,颗粒就会形成块状。
但是我觉得这个块状并没有XP的好看,RF的块状大小总是感觉比较统一,我们这里把它设置为0.3吧:

粗糙度这个参数模拟的是颗粒不规则的外形,因为现实中没有颗粒是完全圆形的。
数值越大,粒子与粒子之间发生碰撞散落的随机性就越大甚至会炸开,我们这里设置为0.15就好:

然后是堆叠这个参数,当我们是一个持续发射粒子的场景中,增加这个参数粒子会堆砌成类似木桩的感觉。
而我们这个场景中,最直观的变化是参数增大以后,粒子撞击以后会反弹的很高,我这里就设置为0.05就好:

最后阻尼这个参数可以平滑粒子与粒子之间的速度,参数设置太大的话,粒子会显得比较粘稠。
适当的设置一点参数有助于模拟的稳定,我这里就设置为0.9就好了:

接下来我又提高了分辨率,大概50W个粒子的样子,现在你会发现粒子反弹的特别高,这个一方面是因堆叠参数导致的,还有就是现在的颗粒还太软了:

想要颗粒变硬一点我们这个是由系统里增加最大最小子帧步幅和最大最小迭代值共同决定的。
增加最大最小迭代值会使得颗粒变硬,而增加最大最小子帧步幅会让这个解算更准确。
我这里觉得直接增加最大最小迭代值就好了,把它们同时改为了40:

给场景添加一个孤立杀死场,把数值设置的小一点,这样可以杀掉孤立的粒子节约一点资源:

把鹿显示出来K一下位移动画吧:

给连接对象添加RF碰撞标签,同样我把摩擦力给的很大:

然后在体积标签里,我把碰撞的距离改到了1:

差不多就可以把粒子进行缓存了,可能是由于有GPU加速的原因,50W个粒子缓存不到20分钟,XP的话30W个粒子我都缓存了1个多小时:

接下来是把粒子网格化,我这里半径给到了1,然后质量选择的是低中,大概200W个面数:

把网格缓存吧,缓存时间也是10来分钟,但是这个体积就比较大了,有30多G:

再给网格添加一个平滑效果器,基本上就可以开始渲染了:

03
渲染部分
设置渲染尺寸,新建摄像机固定视角这个不用说哈:

新建HDRI环境光,稍微旋转一下:

鹿的材质我也是没有做调整的,直接转为OC材质而已:

地面的材质首先是一个普通的白色反射材质:

再是一个深绿色的反射材质,用一个OC自带的大理石节点把它连接给材质的凹凸以及粗糙度端口:

然后再用混合材质球将它们混合,混合的蒙板是用的OC自带的噪波节点来控制显示的范围:

最后是雪球的材质,首先是一个透明材质球,勾选了伪阴影:

然后用一个OC自带的噪波节点连接到了凹凸端口:

用一个次表面散射节点连接到介质端口,吸收端口就是用的一个普通的白色RGB节点,然后我这里把密度改得很低:

用一个浮点节点来控制吸收数值,我这里浮点的数值给到了30:

然后再给次表面散射一丢丢黑体发光,发光的分布是用一个衰减节点来控制的:

大概是这样吧,我觉得就有雪球的感觉了,和北极熊那篇不一样,之前的那篇更偏向冰水混合的感觉。
由于RF模拟的碎块我觉得不是很好看,所以感觉这样的材质会更好一些,如果你想要做出冰水混合的感觉可以降低一点次表面散射里吸收的强度:

在控制凹凸的节点里,让噪波的缩放不那么小:

再把对比度降低一点,冰水的感觉就出来了:

我这里还是恢复之前调整的那种雪球材质吧,然后视情况补两盏灯:

采样方面由于是动画,我这里设置成了500左右,其实感觉还可以再低一点,就这样吧:

最后补充一下,由于使用RF模拟网格化粒子以后,其实是丢失了很多细节的。
所以我感觉最好的方式是直接渲染粒子,但是由于OC既不能渲染RF的粒子也不能渲染TP粒子。
所以如果要想要渲染RF粒子,就只能将粒子实体化,例如这里新建一个球,把球体缩小:

然后把球体放到流体的子集做粒子替代,我这里将粒子实体化以后只是丢了一个普通的漫射材质,就已经觉得有点雪的感觉了。
但是这样会非常非常的卡,毕竟粒子数量有那么多。
所以用RS或者KK渲染器的话可以直接渲染粒子,用OC的话就还是不建议这么操作了:

最终渲染我是用苦七的2080ti渲染的,OC的版本是2021,渲染时间11个小时:

最后后期调色看看效果吧:

感觉鹿的角色动画没选好,走路的时候那个脚有点滑,算了不管了,下面是今天的视频版:
视频版稍后单独发送
好啦,今天的分享就到这里,想要源文件及原视频的鹿友后台 撩我 获取吧!
更多内容欢迎关注公众号:
本文由“野鹿志”发布
转载前请联系马鹿野郎
私转必究