https://www.lynda.com/Houdini-tutorials/Houdini-Essential-Training/571627-2.html
总结
这个教程娓娓道来,蜻蜓点水般介绍了 Houdini 各个主要功能模块。
虽然教程是 16 年的,但是对于入门来说非常友好,基础操作到 SOP 节点运用可谓是简单易懂。
特别是 SOP 的讲解上采用 1 集重点介绍一个 节点的方式,讲解不深但胜在清楚。
后续还比较全面介绍了 Houdini 的 CHOP DOP COP2 这些模块,是入门教程里面相当全面的。
当然介绍全面的代价就是各个模块部分都是浅尝辄止,如果想从 SOP 更深入地入门,推荐 Rohan 的 Introduction to Houdini
教程笔记
基础操作 1 - 20
设置里面可以 配置 自动保存 | 比如时间、保存方式等等
视窗设置可以配置轴向以及操作方式
视窗上按 D 可以的打开配置窗口,比如调整法线显示的大小。
background 可以设置背景的颜色
在节点窗口 按 D 可以打开配置窗口配置节点显示。
蓝色作用于显示,紫色作用于渲染。按住 Ctrl 点击显示可以单独配置紫色标记。
右键菜单可以设置控制轴的朝向。
SOP 21 - 39
删除属性可以使用通配符进行匹配
* ^Cd
删除所有属性除了Cd
属性,P 属性也会保留。
copy 节点自带 pack 选项,勾选可以节省模型复制的消耗。
不使用 pack 在复杂的模型下会导致机器卡顿。
动画 & CHOP 程序化曲线 40 - 50
CHOP 里的 wave 节点可以通过上面的方式创建三个通道
$C 可以获取到当前 通道
生成的曲线可以通过 HScript 设置到外部的通道上
CHOP 生成多个曲线通道,然后使用 copy stamp 将运动赋予到其他的模型上。
可以锁住视窗到 CHOP 里面直接调整查看效果。
通过 CHOP 程序化生成动画曲线,可以批量设置多个复杂的动画。
相关的曲线也可以通过 channel 节点应用到 SOP 的属性上。
ROP 渲染 51 - 60
渲染的参数设置和 Arnold5 的配置差不多。
可以打开看到后台运行的 Mantra 节点
https://www.sidefx.com/docs/houdini/render/noise
教程推荐阅读 Houdini 上述的文档,详细介绍了不同的参数对应渲染噪点的影响。
这里可以控制 渲染 的 AOV 输出,让 exr 包含其他图层通道。
使用 OpenGL 节点可以多层次配置输出,输出速度快,和 Viewport 效果相似。
ROP 也有 geometry 节点用来批量 bake 模型出缓存。
可以通过 filmbox 节点将场景导出为 FBX , abc 文件也有同样的节点进行输出。
默认情况下输出 Mantra 渲染会自动将模型细分。
材质 61 - 66
材质设置上和 Maya 相似,节点功能更多更复杂。
灯光 67 - 72
Houdini 不同类型的灯光是一体的,可以任意切换,非常方便,使用方式和 Maya 的灯光大差不差。
Houdini 的灯光参数更多,控制上比 Maya 更方便。
RBD 破碎 73 - 80
可以先用低模来模拟,然后将模拟的结果转换为 points , 再用 points 去驱动高模。
使用了本地 cache 的数据,否则有可能会因为 dopimport 节点的聚焦而导致重算,可以将节点聚焦到 Null 上。
Wire 变形器 81 - 83
Particle 发射器 84 - 90
Pyro 结算器 91 - 95
Pyro 结算器 96 - 98
案例分析
CHOP 动画控制
首先通过 alt K 关键帧给环添加旋转运动。
然后通过 copy transform 将复制的缩放和旋转叠加。
最后通过 copy stamp 加 box 的方式复制出多个铁环来运动。
再 stamp 上获取 CHOP 生成的曲线,通过 $PT 获取多个不同的 CHOP 曲线,连接到 铁环 的 RotateY 上。
生成随机的 Constant 分段曲线。
通过 Copy 节点生成 100 条运动曲线。
添加 Seed 变量根据每一条曲线生成一个随机传入到 wave 节点,实现 100 条曲线的变化都不一样。
Filter 让曲线更平滑。
Math 节点限定曲线所处的范围。
对节点右键可以保存输出缓存文件。
RBD 破碎
需要生成 glue constraint 确保模型破碎之前是紧凑贴合在一起的。
使用 connect adjacent face 生成约束用到的曲线。
使用 glue 约束将 broken 的曲线的部分 delete 掉,使约束断开。
Wire 变形器
模型制作思路
制作一个半球,半球通过方块和细分加 ray 投射生成,这样布线比较均匀。
上面的 UV 生成使用 X 或 Z 轴投射 UV,这样顶点从上到下在 UV 上形成 Y 轴渐变。
通过 UV 渐变可以可以作为渐变图,利用这个渐变图可以控制 Noise 从上到下的起的作用
但是我实际测试渐变图的控制效果并不好,于是我采用了 Rohan Dalvi 入门教程 里提到的 relbbox 的方式制作渐变。
通过手动选取部分的面进行 blast ,可以单独进行挤出操作。
挤出的时候可以调整 thickness 曲线来控制挤出的厚度。
曲线生成默认不在原点通过 carve 进行偏移,然后通过 resample 重新生成曲线。
变形驱动
使用 WireCapture 获取绑定的权重 wireCapture 属性。
通过 timeshift 节点确保获取第一帧的位置解算权重,不会导致权重飘忽不定。
使用 copy attribute 节点将第一帧的数据传递到运动的模型上。
利用 wiresolver 节点物理结算曲线的运动。
然后将解算的运动输入到外部的 wire deform 实现曲线带权重驱动模型的效果。