https://www.sidefx.com/learn/collections/houdini-kitchen-for-games/
Houdini Kitchen for Games
总结
这个系列的教程也围绕 SOP 系列进行讲解。
系统讲解了 Houdini 多个模块,也和不少教程有穿插的地方。
整个系列看起来很行云流水,就是作者的采音设备有待提高。
附注:最后一集 L-system 篇章比较复杂,初学了解即可。
观看笔记
02 Transform Node
![02](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/01.jpg)
右键可以创建 reference copy 的节点,所以的通道都和源节点相连接。
04 Introduction to VOPs
![04](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/02.jpg)
Vop 节点里面 Pattern 目录可以输出固定的图案的节点。
07 Group Nodes
![07](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/03.jpg)
通过 Prim Vop 获取面的位置生成中心点。
08 All about Houdini Digital Assets
![08](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/04.jpg)
g`substr(chs("../../Rook_1"),0,1))`
chs
获取 HDA 上层字符串,substr
对字符串进行裁切,提取字符串第一个字母。
最后组合输出的gA
的效果
09 Attribute Transfer Node
![09](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/05.jpg)
属性传递可以勾选
Match P Attribute
实现吸附效果
10 Introduction Volumes and VDBs
![10](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/06.jpg)
![10](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/07.jpg)
两种计算 Volume 的方式。
![10](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/08.jpg)
VDB 和 volume 都是一种属性可以在属性面板上看到
作者说 90% 的情况都使用 VDB ,因为效果更加可控,效率也更高。
只有一种情况例外,那就是用 iso 创建 Volume 进行撒点~
![10](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/09.jpg)
模型转 VDB 再转 模型 可以去除模型内部的面。
并且可以通过传递法线做模型的 LOD
![10](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/10.jpg)
VDB 可以将一堆穿插的小球合为一体。
12 Copy Stamping and the foreach loops
![12](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/11.jpg)
使用 foreach 遍历用 copytopoints 的方式比
copy stamp
要稍微高效一点,sidefx 官方推荐用新的方案。
教程作者也提到 foreach 的功能更强大。
教程推荐看上面的 官方教程 深入了解 Houdini 的 foreach 功能
13 UV Tools
![13](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/12.jpg)
利用 UV auto seam 节点程序化展开切开模型 UV
再使用 uv flatten 可以自动展开 UV
再使用 UV Layout 将 UV 空间充分利用好。
13 L-system
http://algorithmicbotany.org/papers/#abop
L-system 详解书籍
14集详细介绍了 L-system 的很多用法,就是用起来相当复杂。
https://www.sidefx.com/docs/houdini/nodes/sop/lsystem
L-system定义生成器规则可以自动生长出不同的图案,其中需要学习 L-system 的规则定义。
F 移动一个单位 (生成线段)
f 移动一个单位
H 移动半个单位 (生成线段)
h 移动半个单位
更多的规则详见上面的官方文档。
L-system 不只是创建树木,也可以用来构建雪花等复杂图案。
案例拆解
星球散布
![alt](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/example_01.jpg)
Vop 生成 Noise
在 Noise 的基础上散布
植物散布
![alt](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/example_02.jpg)
国际象棋
![alt](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/example_03.jpg)
植物根茎
![alt](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/example_04.jpg)
L-system 默认生成的树枝倒放,然后将线段投射到地形上。
赛车跑道
![alt](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/example_05.jpg)
利用 sweep 节点将曲线上的线段变为赛道。
上面这个游戏赛道制作的经典教程和这里使用的方案类似。
遍历处理效果
![alt](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/example_06.jpg)
![alt](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/example_07.jpg)
L-system 向日葵
![alt](https://cdn.jsdelivr.net/gh/FXTD-ODYSSEY/HoudiniWiki@gh-pages/posts/4c3b6b79/example_08.jpg)