【商业教程】Pyro烟火完全入门第四卷
—— 微资讯 · 微课程 ——
利用零碎时间,走上超神之路!
说明:由于本教程是商业教程,仅分享学习笔记,供大家学习交流使用,切勿用于商业用途,公众号不方便分享视频内容,大家可以在网络自行查找;对于之前赞助过CG猎人的朋友,应该有部分收到过这套教程的,可以对着视频制作(还有其他的商业教程笔记会陆续公布)。
小编导语
这套教程一共有6卷,从最基础的volume入门介绍到后面的烟火爆炸效果制作;是国外好莱坞一个非常有经验的烟火大神的课程;小编觉得还是讲的非常细致,把烟火中该有的技术和知识点都讲解了,而且循序渐进,学习完后应该对pyro烟火又比较深刻的认识。
课程目录
volumetric interaction 流体交互
介绍
简单破碎和刚体设置
解释和设置碎片
使用 attributewrangle节点
简单的粒子设置
volume source节点
碰撞
设置
碰撞调整
mircosolver调整
sourcing调整
HQ高质量调整
最后复习和总结
学习笔记
介绍
破碎+流体制作
简单破碎和刚体设置
破碎准备,创建一个猪头→scatter撒点→voronoifracture破碎→explodedview查看
选择一个个碎块,进入面模式,并且开始patch选择,默认是基于组选择,但是voronoifracture为我们添加了name这个属性,可以齿轮上上选择属性选择激活
删除explodedView,然后移动猪头到高度,设置刚体动力学解算
选择猪头想,选择RBD glue object,并且创建地面,制作动力学网络。
点击选择packed object
进入dop动力学网络,设置向下的速度为-10;加大向下的冲量
制作动力学缓存
进入到猪头模型的几何体中
在dopimport中需要设置两个参数
活动unpacked实际的模型
point velocity中要提取点的 速度
使用rop driver输出并且使用file文件读取
解释和设置碎片
创建一个geometry节点,objectmerge加载之前缓存的破碎物体
链接debris source 碎块粒子生成
其实这个节点是个后期节点,直接通过判定点之间的距离作为阈值限定来看是否会生成粒子;这时候生成的粒子是继承之前点的速度属性
使用filecache节点把粒子缓存(0-30帧)
然后30帧后会报错,那么使用time shift激活clamp to last把最后限制为30帧,这样就不会报错了。
对速度进行紊乱操作,添加pointvop节点
使用 attributewrangle节点
使用attributewrangle创建属性density,pscale和color
density的设置基于寿命比例 age/lifespan成反比
pscale等价于 density
Cd颜色采样
f@density =(1.0-(@age/`chs("../debrissource1/lifespan")`));
f@pscale = @density;
v@Cd = set(@density,0,1.0-@density);
简单的粒子设置
把刚才的创建的deris作为粒子source,创建particle粒子发射
如果需要创建一个新的dopnetwork,可以在右下角先点击这个命令创建一个新的动力学网络,然后在选择物体,点击source particle emitter,会自动在这个新建的dopnet中创建粒子
设置粒子发射形式为all point,继承速度,关闭变化速度,设置寿命0.2,添加地面ground进行碰撞
把之前debrissource的寿命改短为0.2;
volume source节点
新建geometry节点,object merge节点把之前解算的粒子(2套)加载进来。
创建fluidsource节点,用于继承之前设置的pscale和density(这两个对流体的影响都非常大)
之前插入wrangle节点对pscale进行缩小控制
修改fluidsource类型为 method stamppoint
激活add curl noise
创建灯光,让显示更加好
使用file节点把fluidsource内容进行缓存
碰撞
创建geometry节点,objectmerge加载之前的猪头破碎模型
添加fluidsource节点
选择预设 collision碰撞类型
自动创建SDF类型,并且创建collision场,并且继承速度(pyro用它来制作碰撞内外判定)
提高精度,但是houdini自身volume效率不高,会变得很卡
更好的方法使用VDB类型来转化
使用vdbfrompolygon把模型转化为vdb类型(相比于isooffset节点转化sdf快很多),因为它不需要再外部(碰撞体)记录信息。
注意选择加载属性 point.v继承点速度,并且选择对应的vector type为 velocity
这样数据中就包含了这个属性
需要注意的是VDB和houdini 默认volume的存储的数值是相反的(正负)
动力学设置
创建dopnet,手动创建节点
不需要对temperature进行采样
mask中使用density来对速度进行mask,原理就是 velocity*density
sop to dop binding中设置不变
添加gas resize fluid dynamic,解算结果
再creation中设置在第一帧开始创建
如果自动缩放框对流体有裁切效果(运动太快):调整padding值,其实就是预留范围
注意到这些蘑菇头,很CG的感觉,其实是速度太过快(每帧叠加)
把速度调整为0.1
在solver下面添加drag(动力学的drag)阻尼节点,设置为0.04
添加地面groudplane碰撞和添加gravity重力
使用source volome添加之前的猪头碰撞体
因为SDF的方向是相反的,所以scale volume设置为-1;
同样,加载但是vdb物体,只有surface和v属性,所以需要修改匹配属性名;
碰撞调整
让破碎刚体能够与流体发生更多的碰撞
关系标签→ collision标签→ extrapolate into collision激活
关闭correct collisions
添加mircosolver调整
添加gasturbulence,gasdisturbance节点进行紊乱控制,天啊及gas dissipation进行消散控制
进行运动效果预览,减弱重力效果
对于解算精度控制,特别是对于这种解算比较快的运动,提高substep的值
sourcing调整
因为source中粒子运动过快,需要中间差值(不用volume采样中的中间插值)
使用attributeswrangle节点
@P=@P-@TimeInc*@v;
@TimeInc的意思是time increase 也就是时间增加帧率,这里是获得上一帧粒子的位置
merge在一起,然后使用add连接成line,通过id属性连接;
然后在添加resample节点进行采样控制
分别调整pscale的值,把line上的点的 pscale的值调整小一点
使用不同的wrangle值
调整 fluidsource紊乱效果控制
HQ高质量调整
高质量缓存
细分600
解算进度substep设置为3
使用dopimport节点加载field场,然后使用rop进行缓存输出
材质调整
最后复习和总结
—— CG猎人——
微信号:Hunter_CG
QQ-540710114
为您提供最具前景的咨询与最适合的分类技术与学习教程