VEX是一种体量很小、但是很高效的通用语言,一般用于在houdini中编写着色器材质(现在比较少了)和自定义节点。它类似于Renderman Shading Language (RSL),都是从C/C++语言中发育汲取诞生的。
以下是一些常用的VEX属性词汇解释
1.全局变量// 适用于所有的 SOP wrangles
f@Frame //当前帧,相当于Hscript里的$FF变量
f@Time //当前时间(以秒为单位),相当于 Hscript 里的$T
f@SimFrame //相当于$SF,浮点的模拟时间,只有在dop模拟中存在
f@SimTime //以秒为单位的模拟时间 ($ST),仅存在于 dop模拟中
f@TimeInc //时间步幅,相当于(1/$FPS)
// Attribute Wrangle中属性变量
v@P //当前element(元素)的位置
i@ptnum //隶属于当前处理的元素的点序号
i@primnum //当前处理元素的面序号
i@elemnum //当前处理元素的索引号。
i@numpt //几何体上所有的点数量
i@numvtx //当前处理元素的prim中的顶点数
i@numprim //几何体上所有的面数量
i@numelem //正在处理的元素总数量
// Volume Wrangle中的变量
v@P //当前体素格的位置
f@density //当前体素位置的密度场值
v@center //当前volume的中心位置
v@dPdx, v@dPdy, v@dPdz //这些向量存储发生在 x、y 和 z 体素中的 P 变化
i@ix, i@iy, i@iz //体素索引,对于volume(非VDB)范围是0——分辨率-1
i@resx, i@resy, i@resz //当前体素的分辨率
2.常用的几何体属性Houdini默认知道这些属性的数据类型无需特定写入
// Int
@id // 在整个模拟过程中保持不变的唯一编号
// Float
@pscale // 粒子半径大小, 将粒子显示设置为“Discs”以进行可视化。
@width // 曲线的粗细, 需要在显示设置里打开 "Shade Open Curves In Viewport" 才能可视化
@Alpha // Alpha不透明度覆盖,视图窗口可以直接显示
@Pw // Spline weight.
// Vector3
@P // 点位置,用它在3D空间中放置点
@Cd // 物体表面颜色
@N // 表面或者曲线的法线属性, 如果没有这个属性,houdini会自动计算一个默认值
@scale // 矢量比例,一般用于在一个轴向上进行定向缩放
@rest // 一般用于程序化的图案或者材质贴图时使用,主要是将其固定在变形物体或者有动画的模型表面,当然也有很多其他用途
@up // Up矢量,一般是控制物体y轴方向,也就是局部坐标的向上的方向, 一般是(0, 1, 0).
@uv // uv属性,无需赘述
@v // 点速度,以秒为单位。记录方向和大小
// Vector4
@orient // 点的局部方向(表示为四元数)
@rot //在 orient、N 和 up 属性之后,额外控制旋转的属性
// String
@name // 标定哪些prim属于哪个piece的唯一名称,也可以用在volumes上
@instance // 在渲染时要实例化的对象节点的路径
3.各种快捷输入channel参数数据类型下面是wrangle里我们经常使用的,自己生成调整参数的数据类型。
ch("flt1"); // Float
chf("flt2"); // Float
chi("int"); // Integer
chv("vecparm"); // Vector 3
chp("quat"); // Vector 4 / Quaternion
ch3("m3"); // 3x3 Matrix
ch4("m4"); // 4x4 Matrix
chs("str"); // String
chramp("r", x); // Spline Ramp
vector(chramp("c", x)); // RGB Ramp
后续更新dop模块属性解释,随意转载,备注作者即可