关于教程
相信大家都知道,XP粒子官方更新为1030的FUSED套装以后,它除了整合的地形插件、网格工具以及Cycles 4D渲染器以外。
XP粒子本身其实也有很多大的更新,例如用来制作刚体和柔体的Bullet等,但其实这些我都没有用过。
主要原因是我喜欢对照着官方手册来操作学习,虽然现在INSYDIUM官方的油管上已经有了一些教程:
但是如果使用频率不高的话,很容易看过以后就忘记了,到时候使用起来又得回过头来看教程。
而且新功能刚出来,也不排除会有一些bug,所以我一直在等官方手册更新,但是截至到现在还没有:
因此今天我想手动测试一个XP更新的小功能:xpOpenVDBMesher - UV Advection。
为什么选择测试这个功能,其实很简单,大家还记得年初的时候我写了一篇埃舍尔瀑布吗:
点击图片阅读原文
由于XP的网格是没有UV的,因此当时为了制作图案随着液体流动的效果费了老大劲。
最后还是用粒子的通过纹理发射做出图案的效果,然后让粒子呈现流体的形态,最后再在上面加了一层透明的网格才勉强做出来的。
我们再来看看官方视频介绍的这个效果:
虽然动图压缩的很厉害,但是相信大家也能够看明白。
UV Advection这个功能简单概括就是可以将纹理映射到动态xpOpenVDB网格,随着网格改变而发生变化。
但需要注意的时候,这个官方短短不到2分钟的介绍视频里用的都是默认渲染器,对于OC以及RS是否支持这个功能都没有任何说明。
所以今天的内容主要是临摹官方的这个小效果并且测试UV Advection对RS及OC是否支持。
由于我使用的RS和OC都是欢乐版,所以这里专门说一下测试软件,C4D是R19.068,OC是3.07,RS是2.6.41。
好了,废话了这么多,开始进入今天的正题吧!
教程步骤
01 场景搭建
首先打开C4D,帧速率设置为25,就做个200帧的动画吧:
新建球体,尺寸小一点,分段稍微多一点,类型我用的是二十面体:
新建克隆克隆小球,数量5个,克隆模式为发射,记得改一下轴向:
然后我们在克隆的半径上K一下帧,K的数值如图所示:
接下来再在偏移的数值上K一下帧,让它一开始是0,在150帧的时候偏移-360度:
再新建一个大大的平面当作地面,基本上场景就是这样哈:
02 流体模拟
接下来就是流体模拟部分,新建一个盒装的发射器,适当的调整尺寸:
发射模式改为射击,粒子类型为六边形,发射两帧就好,然后把速度关掉,粒子半径为2:
给克隆对象添加XP的碰撞标签,关掉反弹,摩擦力给到最大,点击播放你会发现碰撞不起作用:
这是由于我们需要把克隆弄成一个对象才可以,所以给克隆添加连接,现在碰撞就起作用了:
接下来就是模拟流体了,对于这种中小场景,要求不高需要模拟流体翻滚的时候的,我推荐使用xpFluidFLIP来模拟流体。
添加xpFluidFLIP,适当的调整尺寸和高度,流体只会在它的范围框内进行模拟,因此地面都不用添加碰撞标签了:
现在场景中还没有重力,所以添加重力场,参数默认即可:
xpFluidFLIP参数设置方面,官方推荐体素尺寸是粒子半径的3-4倍,因为我们的粒子半径是2,所以这里设置为6。
由于我们需要看到粒子翻转的效果,所以粘度值就不用给了,适当的提高一点涡度值就好了。
然后原图感觉球体有点推着液体走,所以我打开了黏住,提高了一点摩擦力:
接下来找一帧合适的粒子设置为初始状态,然后将发射关掉:
03 粒子网格化
接下来就是将粒子网格化,新建OpenVDBMesher,体素以及点半径大小大家看着调整就好:
滤镜里面添加一个高斯:
接下来终于到了我们今天的重点UV Advection了:
为了方便观察,我这里给OpenVDBMesher添加C4D自带的噪波贴图来说明问题。
默认情况下,由于OpenVDBMesher是没有UV的,所以添加完毕之后看不到贴图的样式:
你可以修改投射的方式,但是同样由于没有UV,所以这样的贴图肯定是会出问题的。
并且鼠标右键也没有办法生成UVW坐标,感兴趣的鹿友可以试试,无论是烘焙为ABC还是点级别对象都不行:
所以这个时候我们可以激活UV Advection,纹理就会正常的随着网格的流动而产生变化了:
投射的方式大家可以根据实际情况来进行选择,但是需要注意的是,经过我测试前沿以及uvw贴图这两种方式会出错。
由于官方也没有更多的说明,所以我也不清楚是不是自己操作的问题:
另外UV Advection它并不只是添加了uvw标签,UV是带有数据的,因此打开以后模拟会变得慢一些。
并且如果你需要缓存的话,需要把UV Advection一起缓存才可以,我这里选择的投射方式是空间哈:
最后补充一点,UV Advection这里有一个开始帧,默认情况下我们应该是设置为1。
但经过我测试设置为1的时候,预览没有问题但是缓存出来第一帧会出错,如果设置为0,预览的时候是看不见的,但是缓存出来确实正确的。
可能是因为我把默认场景的帧速率从30改为了25的原因吧:
然后我这里给网格又添加了一个置换变形器,着色器里添加颜色,高度给一个负值,目的是让网格薄一点,这个不用多说哈:
04 渲染器测试
接下来就是渲染器的测试了,因为我最终是打算用RS渲染,所以先测试OC吧。
打开OC,随意的新建一个环境光,不用太精细,我们主要是测试下功能而已:
新建材质球同样制作一个漩涡图案吧,至于怎么制作以前分享过,这里就不多说了哈:
点击播放键,可以看到纹理也是正常的在流动,说明UV Advection能够支持OC的纹理节点,挺好:
但需要注意的是如果你添加一个投射节点,改变一下纹理的投射方式,纹理就不行了:
因此我们不能改变纹理的投射方式,并且要保证它的投射方式是UVW贴图才行:
接下来我们再来看看RS吧,同样新建环境光,打开RS:
我这里同样用RS自带的噪波以及渐变节点做出一个漩涡的图案来:
点击播放键你会发现纹理不会正常流动,看来UV Advection并不支持RS程序化的纹理节点:
因此只能换一种方式,使用C4D着色器节点,通过RS的纹理节点把它转化成一张贴图:
然后在C4D着色器节点里添加噪波制作出漩涡的图案,点击播放键,可以看到纹理正常流动了:
05 渲染部分
基本上测试方面就这样吧,继续把案例渲染完吧,这里我又添加了一个渐变节点,将纹理进行了重新着色,然后调整了一下尺寸:
接下来设置渲染尺寸,新建摄像机固定视角,开启GI这些都不用说哈:
主体材质里我把涂层也打开了,这样对象表面会有额外的高光:
小球的材质就是普通的发光材质:
地面的材质是普通的深色反射材质:
视情况再补几盏灯吧:
这里我们可以先暂时设置一下景深看看效果,后面渲染的时候关掉它,在多通道里输出深度通道然后后期去合成:
做一个摄像机旋转动画:
同样主采样我设置的是128,其他本地采样是512:
多通道里输出深度通道,记得模式选择为Z标准:
渲染的时间其实并不是很长,我渲染的2K的尺寸,只用了6个多小时:
最终效果图
最后后期调整一下看看效果吧:
大概是那么个意思吧,希望官网的手册能尽快更新~