houdini 模拟水墨效果+无限粒子渲染技术
—— 微资讯 · 微课程 ——
利用零碎时间,走上超神之路!
说明:由于本教程是商业教程,仅分享学习笔记,供大家学习交流使用,切勿用于商业用途,公众号不方便分享视频内容,大家可以在网络自行查找;对于之前赞助过CG猎人的朋友,应该有部分收到过这套教程的,可以对着视频制作(还有其他的商业教程笔记会陆续公布)
本套教程原理非常简单,就是使用流体驱动粒子;但是在制作过程中有几个需要克服的坎,比如流体如何制作快速下降然后快速变慢,如何制作形态,如何限制粒子速度过快导致的问题等等;其中关于无限粒子渲染的方法非常有用,对于以后靠大量粒子的渲染,妈妈再也不用担心我机器不够了~~
课程目录
01 基本流体介绍
02设置流体场景
03调整流体形态
04 赋予这个自定义的vel到流体中
05 流体缓存
06粒子发射设置
07使用wedge对粒子进行10次重复(不同参数)效果的缓存
08 使用delayed load材质进行代理加载和输出
09 nuke合成
下面是小编结合昨天发布的星云学习+今天无限粒子渲染技术做的效果
视频效果
教程笔记
01 基本流程介绍
使用流体解算,驱动粒子运动,制作缓存(渲染时候加载),渲染设置 → nuke合成
02设置流体场景
创建一个sphere作为流体发射源,点击pyro流体工具架上的 dry ice干冰预设(向下运动)
整理一下预制创建的流体节点网络:修改命名,添加标志颜色等待
进入dop中 删除resize自动适配流体解算框节点,调整解算框大小和流体发射位置
条件发生物体
调整大小,并且添加moutain节点
调整流体的效果(目前情况向下运动太慢,并且小散太快)
source volume流体发射源调整
发射时间在20帧之内
scale source volume 为3 让密度更大
温度缩放为-0.6
在smoke object中,设置边框闭合形成碰撞
03调整流体形态
pyro solver设置
设置温度扩散至为0.07,基本上温度不扩散
cooling rate 温度冷却值为0.996 非常快速的冷却
设置viscosity 粘稠度为1,烟雾就不容易扩散
buoyancy lift浮力值为4,让其快速下降(source中温度为采样为负数)
shape形态设置
控制dissipation消散度很小
disturbance为1
sharperning 锐化拉丝效果
turbulence紊乱效果
设置自定义乡下的力(这个和之前制作pyro火山的案例一样)
新建geo节点,在内部创建box,设置大小和比例与流体解算框一致
添加volume节点,并且设置矢量场名字为vel
然后添加 volume vop节点,进入内部进行节点控制
对紊乱vel速度的可视化操作
grid(设置足够的细分,设置边界大小与volume大小一致),使用volumetrail节点连接进行可视化操作
把volume vop的 turbulence参数可以提取出来,然后进行紊乱控制
下面设置向下的力
自顶一个矢量 ,向下设置
与turbulence multiply,然后在add叠加上去
设置null节点,改名字为vel,从volumevop中输出,注意volumetrail仅仅是用作可视化
04 赋予这个自定义的vel到流体中
添加多一个source volume节点,加载geo中的vel 节点
在这里我们只需要加载vel速度,所以在下面关闭source volume和temperure的采样,并且设置activation激活量为$FF<10,因为后面继续回收到紊乱力的效果印象
重新调整shape中的参数形态
结果如图
05 流体缓存
进入到sop中的流体导入节点 Dop/import
设置缓存文件路径+缓存时间长度
注意,在缓存的时候找到dop解算节点,关闭视图中的内存缓存功能(加速硬盘缓存)
后面用一堆代码调用houdini中的缓存节点,这里忽略(直接点击缓存就可以了)
06粒子发射设置
geo节点加载刚才缓存的pyro流体文件
同样,新建sphere左粒子发射源,添加mountain制作紊乱效果,pointfrom volume设置点的数量;设置紊乱值jitter
选择这个发射源,点击粒子标签中的source particle创建粒子网络(这里注意不要添加到之前流体解算的dop网络中)
source设置
emission tupe为All points(使用接口的所有点作为发射源)
设置发射时间只有第一帧发射 $FF<2
速度设置
可以添加color节点给一个明显的颜色(便于观察而已)
使用流体驱动粒子运动 POP advert by volume节点
加载模型
设置 类型为update velocity更新速度
部分粒子会突然间下落得特别快
使用pop speedlimit节点进行速度限制
限制最大速度为60 根据实际情况调整(只要避免那些速度特别快的粒子就行了)
设置巨量粒子进行模拟
07使用wedge对粒子进行10次重复(不同参数)效果的缓存
在out模块中设置 wedge节点,用来批量对不同参数的设置缓存输出
prefix _wedge这需要添加在ropoutput 中的$WEDGE变量,用来存储不同参数设置值
output driver用来设置我们输出粒子节点
numbers of samples 重复采样次数(也就是最终输出几遍)
wedge parameter,这里设置的是需要随机的参数,点击+创建一个新的随机属性
设置name名字(输入文件可以标示)
输入通道,使用copy parameter,然后黏贴,最后去掉函数ch()
range设置这个参数随机的范围
这里一共需要两个随机参数设置
一个是 point from volume中生成粒子时候的jitterseed 随机抖动种子
另一个是 mountain节点中的offsetX_中的随机值
通过这两个参数就可以获得10次不同的发射形态粒子解算设置;
最后记得在rop output中加入这个$WEDGE变量,用来区分每次缓存的粒子命名
后面又是一堆代码输出(直接忽略)
08 使用delayed load材质进行代理加载和输出;
对于巨量的粒子,不需要全部加载的到内存中,而仅仅可以在渲染的时候再加载
进入shop节点中,创建材质 delayed load procedural
加载模型路径
设置motion blur为单独设置
激活motion blur
设置shutter值,值越大运动模糊越强烈
新建一个geomey(无论是box,grid还是任何几何体都无所谓)因为我们会用材质中的模型覆盖geo中的模型进行渲染
找到 render标签下的 geometry标签下的procedure shader加载材质
并且设置point scale值(这可以对粒子进行缩放)
创建摄像机和mantra渲染节点,设置为micropolygon多边形渲染
调整粒子大小
剩下的9套粒子继续重复操作,加载到材质,然后加载到新建的geo中
这里有一个技巧,就是把材质加载到geo的时候可以设置相同的尾部字符同意
使用函数opdigits()函数对节点的数字字符获取
这样直接复制geo会自动更新材质序号
添加clay材质泥土材质赋予给每个particle
调整mantra渲染器,激活运动模糊渲染
可以调整材质的透明度
在程序化材质中可以设置shutter运动模糊进行动画控制
在一开始时候设置为0.3,到达后面的时候速度为1
09 nuke合成 略
—— CG猎人——
微信号:Hunter_CG
QQ-540710114
为您提供最具前景的咨询与最适合的分类技术与学习教程