(图文+视频)C4D野教程:xpFluidPBD详细概述及粘稠流体浇筑案例演示

成都/设计爱好者/4年前/606浏览
(图文+视频)C4D野教程:xpFluidPBD详细概述及粘稠流体浇筑案例演示
野鹿志

xpFluidPBD详细概述

又一段时间没有更新了,其实我并没有偷懒哦,国庆期间哪里都没有去,就宅在家里学习:
undefined


这个是老早以前我就给鹿友们推荐过的一套专门讲使用xpfluids制作流体的教程:

undefined


教程中讲了不少知识点,是套不错的教程,缺点是只有机翻的字幕,看起来非常吃力。


我其实当时也就看了个大概,过不了多久就忘记了。


国庆期间我想着干脆把这套教程翻出来再仔细看看,这一次我是一边看一边做的笔记,虽然可能会有很多内容由于是机翻字幕的原因也是一知半解,但是至少印象会深不少:

undefined


花了6天的时间把这套半生肉的教程啃完,然后我觉得可以通过自己的理解写一些内容出来,于是又花了几天的时间整理和尝试,所以截至到现在才发出来。

undefined

开始之前我们先进行一下简单的说明,XP在模拟流体方面是有三个工具的:xpFluidPBD,xpFluidFX还有xpFluidFLIP。


xpFluidPBD:通过影响粒子之间的位置来模拟流体的效果。


它的本质是一个修改器,更适合小中型的场景模拟。一般来说使用xpFluidPBD模拟流体会更简单更快速,但在物理层面上不够真实。


xpFluidFX:更适合于中大型的场景模拟,物理层面上它是一种更精准的模拟方式,因此模拟起来相对会要慢一些。


它本质上是一个解算器,在模拟流体、沙子、颗粒一类的效果可以选择xpFluidFX。


xpFluidFLIP:官方说明粒子如果存在于xpFluidFLIP的体素内,它的每一帧的速率会被xpFluidFLIP体素进行采样,计算出一个临时的速度场,然后反过来再影响粒子。


所以我的理解xpFluidFLIP是有点类似于力场,这个对象其实我从来没有用过,所以也就不做过多说明了,好像在模拟某些流体翻转水花一类的效果方面会比较不错。


因为我看的这个教程是纯粹讲使用xpFluidPBD模拟,所以其他两个对象的使用暂时不在分享范围内。


然后今天的文章我打算先通过一个比较简单常见的案例,类似巧克力或者奶酪芝士类的粘稠流体浇筑的效果来分享一下xpFluidPBD的各项参数以及运用。


好了,废话了这么多,开始我们今天的正题吧!

undefined

01

场景准备及发射器设置


打开C4D,先新建一个圆柱,适当的调整它的大小和分段。


这个圆柱我们后面只是用来与流体产生融合的,先新建一个用于方便观察以及调整流体的运动范围,并没有其他的用处:

undefined


再新建一个大大的圆盘,这个圆盘是用于和流体产生碰撞的,它的位置比圆柱的位置稍微低一点就好:

undefined


给圆盘添加XP的碰撞标签,关掉反弹,摩擦力改到最大:

undefined


新建一个发射器,调整到适当的高度,我希望流体是类似芝士那种片状的形态,所以发射器的形状是方形,适当的调整宽度,高度给一丢丢就好:

undefined


新建一个重力场,让粒子自然下落产生碰撞,参数默认,这个不用多说哈:

undefined


调整帧速率25,做10秒的动画,这个不用多说哈:

undefined


我这里给发射器添加了一个灰猩猩的Signal插件,让它每50帧完成一次X轴-45到45的位移运动,然后循环模式改为pingpong,当然你也可以手K哈:

undefined


模拟流体的时候,粒子的半径1-3都比较合适,但是最好不要低于1,所以我这里将粒子的半径改为1,然后将速度改为0,让粒子直接受到重力的影响自然下落:

undefined


在模拟流体的时候,我们发射器的类型最好选择为使用射击(无相交)、六边形或规则发射。


所以我这里选择的是射击模式并且勾选了无相交,官方的说明是如果要真正的无相交,无相交的半径应该是粒子半径的2倍。


我这里觉得给到1就挺好了,也比较好控制,让它持续发射200帧,粒子的数量我们后面看情况再调整:

undefined


另外为了防止粒子滑动,我在粒子的额外数据里把摩擦力也改到了100,基本上发射器的设置就是这样的了:

undefined


02

xpFluidPBD参数详解


接下来给场景添加xpFluidPBD,为了防止显示方面太卡,我这里把粒子的显示改为了点,默认参数的情况下它是这样的:

undefined


接下来我们一个一个的参数过吧,首先第一个参数是检查密度这个选项,在我们这个场景里可能看不出来。


它的作用是控制流体有一个恒定的密度,当密度大于设定的密度时会杀死多余的粒子,例如粒子在刚发射时挤压在一起可能会产生粒子炸开的情况,勾选这个选项就可以防止粒子炸开。


通常情况下模拟流体我都会勾选这个选项,然后这个场景中,我将密度设置为100:

undefined


接下来是粘度,这个参数会将颗粒聚集在一起,产生粘性的感觉,使流动变稠。


但是当参数特别大的时候,粒子会变得非常不稳定,下图中我们把粘度值设置为100,可以看到粒子在不停的跳动:

undefined


这个案例中我将粘度设置为20觉得比较合适:

undefined


涡度官方的解释是在场景已经存在例如湍流场来产生涡度的情况下,增加这个参数可以额外的漩涡或者湍流的运动。


由于我们这个场景中没有任何涡度来增加粒子的卷曲运动,所以可以看到我们把它调整到了100也没有任何变化:

undefined


我这里测试了一下,如果将涡度值给到很大的情况下,粒子会呈现随机紊乱的效果,当然这个场景中我们并不需要,所以可以直接关掉:

undefined


吸引力这个参数会将粒子拉到一起,但容易形成较小的团块,同样场景中我们不需要,可以直接将它关掉:

undefined


排斥力可以将粒子彼此推开,可以让粒子分散得更开,并且保持一定的体积,有助于做出一些流体堆积的效果。


下面是当排斥力分别为0和100的时候的效果,大家可以注意从水平方向上看一下粒子排列和分布的区别:

undefined


由于我们要制作流体浇筑的效果,所以我们这个场景中把排斥力设置到100:

undefined


外部压力是模拟粘稠流体的一个关键数值,它能强制将粒子拉在一起,有点类似表面张力的效果,这里我将它设置为100,可以看到流体已经产生了牵连拉丝的形态了:

undefined


但需要注意的是当你想进一步提高这种粘滞效果的时候,粒子可能会变得非常不稳定,我这里将它设置到1000的时候可以看到粒子已经炸开了:

undefined


这就需要配合着阻尼来使用了,阻尼这个参数你可以理解为给粒子的模拟和运动增加阻碍,从而防止粒子炸开的情况。


在模拟粘稠流体中,通常搭配着外部压力进行使用,同样是个非常关键的参数。


我这里把阻尼给到了300,可以看到能有效的缓解外部压力1000的时候炸开的情况:

undefined


这个场景中我把外部压力设置为了100,基本上其实是没有什么粒子炸开的情况的,当然为了防止意外,我这里阻尼值还是给了50:

undefined


混合这个参数是用于粒子颜色混合的,我们这里用不到,顺带提一下就好了:

undefined


接下来就是要进一步的提高流体的粘稠度了,我们希望的是像芝士那样一整片的流体留下来。


尝试将外部压力提高到了50W,然后阻尼10W,粘稠的感觉确实是有增加的,但是还是解决不了根本问题:

undefined


所以将外部压力和阻尼恢复到100和50,我们这里要换一个方式,看一下另外几个影响流体粘稠度的重要参数。


康秋D我们调出工程设置,将XP设置里的子帧步幅提高,我这里设置到了5,可以看到流体就保持在了一起了,当然模拟方面会更慢一些:

undefined


另外我们前面提到了提高排斥力有助于保持流体的体积,我们想要制作流体堆积的效果,尝试把排斥力提高到1000,发现粒子炸开了:

undefined


看来这个方法不可行,将排斥力恢复到100,重新康秋D回到工程设置,我们将这个密度迭代的数值提高,可以看到粒子就堆积起来了,当然模拟速度会更慢:

undefined


除此之外,xpFluidPBD这里同样有最大最小子帧步幅以及最大最小迭代值,我们可以手动提高进一步提高粘稠度以及流体堆积的效果,当然这些设置都会增加模拟的时间:

undefined


另外我们这里看到流体落下来的时候有一些孔洞,我不希望有孔洞,所以我先尝试把粒子数量提高到了,不过好像也没有完全解决这个问题:

undefined


然后略微的提高了一下平滑半径这个数值,孔洞得到了很好的解决:

undefined


最后是这个压缩极限的值,我们这个场景中看起来并不是很明显,它控制着体积损失的百分比,较低的数值能够更好的保持体积,我这里就把它设置为了1:

undefined


03

xpFluidPBD参数总结


以上基本就是xpFluidPBD中所有参数的含义以及作用了,当然要制作粘稠流体其实是可以结合例如xpConstraints额外添加表面张力以及粘度来制作的。


这里主要是希望让大家能够更好的理解xpFluidPBD参数的作用,所以仅仅只用了xpFluidPBD来制作粘稠流体。


接下来先总结一下吧:


检查密度:控制流体有一个恒定的密度,当密度大于设定的密度时会杀死多余的粒子,防止粒子炸开的现象,通常情况下启用勾选。


密度:勾选检查密度以后,当密度值大于该设定值将会被杀死。


粘度:将颗粒聚集在一起,产生粘性的感觉,使流动变稠,数值设置太高会导致粒子不稳定。


涡度:当场景中有涡度增加粒子卷曲运动的时候,该数值会额外增加漩涡或湍流,当场景中没有涡度的情况下,高数值会让粒子呈现随机紊乱的效果。


吸引力:会将粒子拉到一起,但容易形成较小的团块。


排斥力:可以让粒子分散得更开,并且保持一定的体积,有助于做出一些流体堆积的效果。


外部压力:是模拟粘稠流体的一个关键数值,它能强制将粒子拉在一起,有点类似表面张力的效果,当外部压力很高的时候,粒子会变得非常不稳定。


混合:用于粒子颜色的混合。


平滑半径:对流体的密度进行平滑,配合粒子数量可以减少流体产生孔洞的现象。


阻尼:为给粒子的模拟和运动增加阻碍,从而防止粒子炸开的情况,通常配合外部压力进行调整。


压缩极限:控制着体积损失的百分比,较低的数值能够更好的保持体积。


子帧步幅:高子帧步幅可以让流体保持在一起,但会增加模拟的时间。


迭代次数:高迭代字数同样会让流体聚集在一起,让流体变粘稠并保持体积,有助于形成堆积的效果,但模拟时间会更长。


04

粒子缓存及网格化


基本上这样就可以将粒子进行缓存了,因为提高了子帧步幅以及迭代值,缓存的时间挺长的,一个多小时:

undefined


接下来就是将粒子网格化了,可以先将用于碰撞的圆盘复制出来一份放在圆柱的底部,删掉碰撞标签用于渲染:

undefined


新建xpOpenVDBMesher,把圆柱和发射器拖进去,点半径给到1,体素适当的缩小:

undefined


xpOpenVDBMesher里视情况可以给两个滤镜平滑一下网格:

undefined


我个人更喜欢给网格添加一个平滑变形器,提高迭代值,适当的调整硬度:

undefined


还可以给网格添加一个置换变形器,注意把它放在平滑变形器的上方,然后着色器里添加颜色,你会发现网格胖了许多:

undefined


然后在高度里改为负值,这样流体就会变成一个薄片:

undefined


基本上就可以将网格缓存了,但是这里有个坑,我们点击缓存,然后点击继续,这样就能够在已经缓存好粒子的基础上单独再缓存网格:

undefined


缓存完以后播放起来你会发现网格时有时无,会出错:

undefined


我测试了一下,这个可能是由于使用平滑环形器迭代值给得太高导致的,没关系,我们可以这么操作一下。


将置换和平滑变形器移出来,先单独缓存XP本身的网格:

undefined


缓存完毕以后再把置换和平滑重新丢给网格,然后鼠标中间全选鼠标右键烘焙为abc格式:

undefined


烘焙之前记得把没用的都关掉,我测试了一下烘焙起来会快一些:

undefined


我测试的时候是没问题的,不知道为啥写文章的时候烘焙完最后两帧会出错,无伤大雅,我们不要最后两帧就行了:

undefined


05

渲染部分


接下来就是渲染的部分了,设置渲染尺寸,新建摄像机固定视角,这个都不用说哈:

undefined


新建环境光,给一个HDRI贴图,我这里把饱和度关掉以免环境光影响到材质的颜色,然后隐藏背景,勾选透明通道:

undefined


RS默认是可以混合环境光的,所以再新建了一个环境光,直接上了一个暖一点的颜色,然后适当的降低曝光度:

undefined


然后补了三盏灯:

undefined


材质我是用的一个普通的sss材质:

undefined


然后在涂层里也给了强度,让它额外有一些反射及高光:

undefined


我希望的是地面能够有反射并且后期能自己换背景颜色,所以地面的材质我用了投影捕捉节点,适当的调整反射的强度以及粗糙度:

undefined


基本就这样了,因为场景中没有漫射,所以我没有开GI,采样方面主采样我给到128,其他本地采样512:

undefined


没想到的是渲染时间差不多要18个小时,估计是流体的面数比较多并且渲染方面额外添加了涂层的原因吧:

undefined


最后导出序列后期合成一下看看效果吧:

undefined


大概就这样吧,流体模拟方面虽然只用到了xpFluidPBD,但是我写的很详细,所以篇幅会比较长。


希望能够对鹿友们有帮助,下面是今天的视频版:


基本上就是这些吧,好啦,今天的分享就到这里,源文件以及原视频的鹿友后台撩我获取吧!


更多内容欢迎关注公众号:

本文由“野鹿志”发布

转载前请联系马鹿野郎

私转必究


16
Report
|
11
Share
相关推荐
评论
in to comment
Add emoji
喜欢TA的作品吗?喜欢就快来夸夸TA吧!
推荐素材
You may like
ZAOV|各[苹]本事
Homepage recommendation
一大波可爱小动物
Homepage recommendation
相关收藏夹
教程
教程
教程
教程
作品收藏夹
RS渲染
RS渲染
RS渲染
RS渲染
作品收藏夹
文创插画设计
文创插画设计
文创插画设计
文创插画设计
作品收藏夹
C4D
C4D
C4D
C4D
作品收藏夹
IP形象——动物类
IP形象——动物类
IP形象——动物类
IP形象——动物类
精选收藏夹
作品收藏夹
企业展厅
企业展厅
企业展厅
企业展厅
精选收藏夹
作品收藏夹
大家都在看
Log in