前言
最近因为要开始做三维动画的实训课,所以开始疯狂看教程了,(其实网页项目还没做完,不过研究出Houdini VDB 流程解决方案,还是简化了不少工作量)
本来我们和动画合作要搞太空科幻题材的动画,这就需要破碎、爆炸、星尘之类的特效的。
不过看到自己移动硬盘中以前囤积的教程,还是忍不住先看一下吧。
VEX入门
- 对着相关的函数按F1可以跳转到Houdini的相关函数的网页界面,而且经过我的测试,这是Houdini 16.5为你搭建的本地服务器所访问的内容,无需担心网络的问题
- 按d键进入界面设置可以在vissualize标签中将相关变量显示出来(visualize节点也可以)
- 属性和变量的区别,从编程的角度说就是全局和局部变量的区别,从Houdini来讲就是能否传递数值
- printf(format, …)命令可以在Houdini console中打印数据。
- vector变量的通道可以通过abc 、rgb 、 xyz 三种不同的方式获取
- Matrix属于多维数组可以通过aa ab 获取其中的单通道
- wrangle节点可以通过 alt + E 打开Houdini的代码编辑器,比起wrangle的小界面好用太多了,不过我还是觉得VScode好用
- Houdini的Function定义类似于C语言 先声明返回值的变量类型 后接函数名和参数 需要注意的是Houdini的参数声明使用 ; 间隔而不是逗号(调用函数时参数间隔还是用逗号的)
- Array添加数组使用 append(array, value) 函数,效果和JavaScript的push是一样的。
- len(array) 函数可以获取数组的的长度,与JavaScript array.length 效果一样。
- 函数传参修改回改变参数自身的,建议使用函数局部变量进行数据交换。
- 向量声明可以使用set 或者 用{} 声明
教程中VEX详解
第十集 - 点线面命令相关的函数
1 | //获取属性 |
第十一集 - Array数组操作
1 | vector pos; |
![球体压平]](/img/loading.gif)
第十三集 - 创建几何体
1 | // 创建一个面片 |

1 | // 创建一个金字塔 |

第十六集 - polyline
1 | //找到附近的点 |

第十七集 - nearpoints
1 | // 获取第二输入几何体序号为零的点位置 |

第十八集 - neighbour
1 | int origin = chi("source"); |

1 | int origin = chi("source"); |

第十九集 - 点云基本操作
1 | float distance=ch("dist"); |

第二十集 - 点云操作
1 | //获取点云信息 |







