这个系列文章会对houdini中各个模块的vex常用属性词汇进行列举和解释,如有错漏敬请指出。什么是VEX?

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模块属性解释,随意转载,备注作者即可

推荐内容