【Houdini 】VEX 之一 基本概念

attribwrangle(VEX)

自定义数据类型

例如:float vScale = chf("vel_scale");

其中float 是浮点数据类型 vScale是定义的名称 ch代表通道,f代表通道类型为浮点,()内部为浮点名称,'字符串',分号结尾

整理可得:float 空格 name  空格=空格chf(单引号+字符串)分号结尾

类似的有:

字符串类型 string stringParm = chs("string_example");

整数类型 int intExample = chi("int_example");

矢量类型 vector vecExample = chv("vector_example");


v@v  =  {0,1,0};

前面的v是vector矢量,@v是获取速度velocity  空格 = 空格 {x,y,z}对应矢量的方向和大小

v@v = @N*vScale

同样的v@v = 出现时会覆盖掉之前的定义,即重定义,如上第一次定义了一个方向Y轴大小为1的速度  第二次重新定义沿着法线方向 大小为浮点数vScale与法线大小的乘积

v@Cd = {0,1,0};矢量获取Cd颜色为{红,绿,蓝},分号;结束

v@Cd = rand(seed num);  其中 seed num = @primnum /fit01(@float,min,max)

如果float name = chf(“”),变成了f@name = chf(“”);

在调用的时候前面直接写成@name  如:v@v = @N*@vScale

在属性函数中

point(inputnum,“P”,@ptnum)点的模型输入端数字(0/1/2/3),获取Poistion“位置”信息,获取点ID数量

 set(0,0,0) 设置对应的是XYZ或者 红绿蓝,也可以是rand变量或者fit01(@pscale,min,max)


又如:

float randomize =  rand(@id);定义浮点数 命名为randomize  赋予值为随机id值

f@inheritvel = 0.5; 浮点获取继承速度值并赋值为0.5


v@nearbyEdgepos =  minpos(2,@P); 定义矢量名称为nearbyEdgepos的值为  点到第二个输入端模型最近距离点位置

v@edgeDist =  distance(@nearbyEdgepos,@P);定义矢量名称为edeDist的距离值为nearbyRdgepos 到点的距离

即先寻找最近距离点,再求出点到点的距离

你可能感兴趣的:(【Houdini 】VEX 之一 基本概念)