https://www.sidefx.com/learn/collections/houdini-in-5-minutes/
总结
Entagma 的教程质量都很高,会从案例的角度出发讲解节点的使用。
然而这个教程对于初学来说难度有点高,所以我把它放到后面去了。
另外教程后面推销了一下作者 Moritz 参与的插件 MOPS , 的确很强。
观看笔记
2 - attributes
https://www.sidefx.com/docs/houdini/model/attributes.html
教程推荐阅读文档学习 Houdini 的属性。
4 - render it
attribute randomize 有 two way 的方式控制属性随机。
按 Ctrl + T 可以复制当前窗口
performance monitor 可以可视化看到节点的消耗,用于优化流程。
对比了使用 for 循环 color 节点以及 vex 生成随机颜色的性能情况。
for 循环是单线程的,所以效率最低。 vex 是性能最好的, production 下建议多采用 vex 。
案例分析
小球渲染
- 使用 isoOffset + scatter 在小球上散布点
- 通过 attribute randomize 随机大小 和 颜色 (颜色选项选择 Two values 可以在两个值间随机)
- 然后构建渲染效果
我这里使用 Houdini18 Karma 进行渲染构建。
绘制散布 & 上下运动
- 使用 attribute paint 节点绘制自定义图案
- scatter 使用自定义属性进行撒点
- 然后使用上面小球渲染的思路进行散布
- 使用 Normal 添加朝上的法线
- 使用 point vop 叠加一层 noise 来运动点
教程一开始演示在模型上使用 Mountain 节点,然后再撒点,这样效率会很低,直接用 Vex 实现顶点运动会更高效。
多重挤出
- 添加随机 0 或 1 的 active 面属性
- 添加随机 zscale 面属性
- extrude 选择 @active==1 进行挤出,并且 zscale 属性要开启
- 添加 foreach feedback 节点来继承之前的循环结果
- 使用 meta 节点给 randomize 节点的 seed 关联
秸枝增生
- solver 节点不断对上一帧的结果进行撒点生成小球,随机状态下会逐渐在特定区域不断叠加小球
- 然后将生成的小球转成 VDB 平滑再从 VDB 转为模型。
复杂旋转
- 遍历模型所有的面,利用 transfrom node 进行旋转。
- 添加一个 Null 节点作为控制器,添加滑竿俩控制旋转。
detail("../foreach_begin1_metadata1/","iteration",0) * ch("../controller/weight")