Houdini vex 语法第一篇(属性)
前言:vex语法我们进阶houdini技术的必修课,up将自己的学习感悟写成文章,供大家参考,废话不多说让我们现在开始。
1.Houdini中数据的存储域:
1.1Points(点):数据存储在对象的几何点上,存储单位如图所示:

1.2Vertices(顶点):数据存储在面的几何点上,与Points有区别仔细看图,存储单位如图所示:

1.3Primitives(基本单元/原型(不必纠结翻译)):是houdini特有的存储单位,可以是面,线,几何体等,存储单位如图所示:



1.4Detail(细节):将数据存储在几何对象上,存储单位如图所示:

2.Houdini中查看数据存储:
2.1Houdini中查看数据存储的位置,如图:

2.2Houdini中数据存储面板介绍:
2.2.1Points如图所示:

说明:默认第一列为point的编号,从零开始自增,P[x],P[y],P[z]表示point的x,y,z坐标
2.2.2 Vertices如图所示:

2.2.2Vertices面板
说明:默认第一列为 面号:顶点编号,总体可以理解为顶点的全局唯一标识,这里都是三角面,如下图所示表示编号40面的0,1,2号顶点(0,1,2为三角面内唯一标识),蓝色字体为point编号,第二列为顶点对应的point的编号:


2.2.3Primitives如图所示:

说明:默认只有一列,为primitive编号
2.2.4Detail如图所示:

说明:默认啥也没有
3.Houdini中的数据类型:
3.1Houdini中有以下数据类型:

说明:第一列为数据类型,第二列为变量命名规范,没有编程基础的小伙伴可以逐个去了解,这个内容太多不再赘述
3.2Houdini保留字所对应的数据类型:

3.1Houdini保留字对应数据类型
说明:第一列为数据类型,第二列为对应的保留字属性名称,保留字具体内容可以点进去了解,链接在文末,这里只简单介绍常用的几个属性。
3.3常用保留字介绍:
3.3.1@P是一个向量,表示一个单位的坐标
3.3.2@Cd是一个向量,表示颜色属性,里面包含RGB值
3.3.3@ptnum是一个整形,表示point的编号,@primnum,@vtxnum同理
3.3.4除了以上保留字外,还有一些特殊的全局保留字:@Time浮点类型,表示当前时间轴播放到的时间,@Frame浮点类型,表示播放到的帧数,其余特殊关键字也可在文末链接找到。这里不在赘述。
4.Houdini中自定义变量并且给变量赋值:
4.1通过wrangle操作vex,如下图所示Houdini为我们提供了一下wrangle操作vex

说明:这里我们只讨论point,primitive,vertex,attribute四个,而且四个中的前三个其实都是attributeWrangle,唯一的区别只有run over(也就是数据在哪个存储域运行)如下图:

4.2自定义变量示例, 在四个级别上的展示,如下图:





5.Houdini中使用保留字(Houdini内置变量)的简单使用:
5.1保留字使用示例:

说明:1.@P = rand(@P) 相当于 @P.x = rand(0, @P.x),@P.y = rand(0,@P.y),@P.z=rand(0,@P.z),@Cd同理
2.@P的值修改只对Points数据单元有意义,其他级别不存在@P的真实定义
5.2在Points下看以上变量的存储和对模型的影响,如下图:



说明:注意看@Frame和@Time的产生的值
补充:1.Houdini属性文档链接:https://www.sidefx.com/docs/houdini/vex/snippets.html
2.示例节点结构:

3.示例下载:
链接: https://pan.baidu.com/s/1UQ3lcupmXNSzHJbXp6WkWw 提取码: abcd
ps:如有错误留下评论,up改正,一起进步
下一篇:Houdini vex 语法第二篇(组):待续

