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

为您提供最具前景的咨询与最适合的分类技术与学习教程

(0)

相关推荐