houdini vex表达式

您所在的位置:网站首页 ncy9091 houdini vex表达式

houdini vex表达式

#houdini vex表达式| 来源: 网络整理| 查看: 265

f:浮点(浮点型简单讲就是实数的意思,只有x值)

v:三维数值(有xyz轴三个值)

f@density = 1.0 - (@age / ch("../debrissource1/lifespan"));

引入一个叫density的浮点值,它等于1减去(age值除../debrissource1/lifespan路径下的值)

f@pscale = @density;

引入一个叫pscale的浮点值,它等于density值

v@Cd = set (@density , 0 , 1.0-@density);

引入一个叫Cd的三维数值x=density值 y=0 z=1减density值

@P = @P - @TimeInc*@v;

P:位置属性

Timeinc:表达式,表示1/动画的帧长

v:速度

@TimeInc*@v表示没一帧运动的距离

所有函数意思是:在原来位置的基础上向后移一帧的运动距离

$FPS帧速率(每秒多少帧)

i(integer)就是整形属性

@TimeInc时间增量表示每一帧的增量 等于1除当前帧速率(一般为24)

matrix四维矩阵数,一个4×4的参数

@Ce颜色发光属性

$CY copy stamp节点的属性表示复制集合体的编号(从0开始计算)

$NCY copy stamp节点的属性表示复制节点的总数

$CEX获取到几何体x轴的中心位置

$CEY获取到几何体y轴的中心位置

$CEZ获取到几何体z轴的中心位置

@p位置属性,是一个vector如果用线来表示的话就是一条指向场景原点的线,因为p是相对原点的位置属性

float val = noise(@P*2);

float val:创建浮点val

noise(@P*2)

noise函数,对@P的两倍值进行噪波扰乱,生成更随机的值

使这个新生成的val等于这个噪波值

val = fit(val, 0.2, 0.7, 0.0, 1.0);

将val值0.2-0.7范围的值,重置到0-1的范围

fit(参数,参数最小值,参数最大值,重置最小值,重置最大值)主要用这个函数来重新规范某个参数的数值范围

val = pow(val, 8);

val值等于val值的8次方

pow(参数(底数),次方数(指数))

@N = val * @N * 20;

@N等于val乘@n乘20的值

@Cd = set(val, val, val);

@cd的rgb值分别为val,val,val

@v = @N;

@v等于@n

int($F/72)

用$F(当前帧数)除去72进行取整,如如1/72,等于0,余1,所以int(1/72)就为0,98/72=1余26,所以int(98/72)就为1

int就是一个取整函数

floor也是取整函数

区别

int是直接取结果的整数位,把小数全部去掉

floor是向下取整,如0.98取0,1.28取1,-9.83取-10

($F%72)

用$F(当前帧数)除去72进行取余,如1/72,等于0,余1,所以1%72就为1,98/72=1余26,所以98%72就为26

centroid(0,D_Y)

移动到基于输入进来的节点的y轴中心

centroid(节点路径,类型)

centroid:移动到某个节点的中心

节点路径:如果为0则是基于当前节点

类型:D_Y D_X D_Z分别是获取y轴 获取x轴 获取z轴

cross(@N,tmep_v)

给n和tmep_v这两个矢量进行叉积

叉积的计算方法

v和u的叉积就是v*u

if(@P.x > 0){

   @up = cross(@N, temp_v);    

}

else{

   @up = cross(@N, -temp_v);

}

if函数

如果@p.x(点的x轴坐标)大于0

执行 @up = cross(@N, temp_v);  

否则执行  @up = cross(@N, -temp_v);

在textport面板输入exhelp+函数

可以查看函数的意思

bbox("../clip4",D_YMAX)

bbox函数:获取到几何体边界

bbox(获取边界节点的路径,D_XMAX /D_XMIN /D_YMAX /D_YMIN /D_ZMAX /D_ZMIN分别是几何体xyz轴的最小或最大边界D_XSIZE/D_YSIZE /D_ZSIZE表示xyz轴向的长度)

chramp("my_ramp",@curveu)

在在wrangle节点上创建一个my_ramp的属性,将该属性映射到@curveu上获得的值

chramp(曲线路径、要重映射的属性、组件索引)

组件索引是要返回的评估值的组件。

fit01(rand(@Frame),0,6)

给当前帧设置一个随机生成0-1的数值,在将数值范围重映射到0-6之间

rand函数设置一个随机生成0-1的数值

fit重映射范围

@Frame当前帧

v@N -= @tangentu *fit01(rand(@Frame+@Ptnum),0.2, 1.0)

@N等于@N减去@tangentu与fit01(rand(@Frame+@Ptnum),0.2, 1.0)的积

fit01(rand(@Frame+@Ptnum),0.2, 1.0)

用rand函数生成0-1之间的@Frame+@ptnum和的数据值,在用fit函数将0-1的值重置到0.2-1.0

a+=b等效道于 a=a+b

a-=b 等效于 a=a-b

a*=b 等效于 a=a*b

a/=b 等效于 a=a/b

pjz/=n 等效于 pjz=pjz/n

a%=b等效于 a=a%b

$F>5 && $F5同时$F= f@lifespan){

   removepoint(0,@ptnum);

}

如果浮点@age>=@lifespan的值就执行 removepoint(0,@ptnum)

removepoint(0,@ptnum)

删除掉输入进来的相关点编号的点

removepoint(要移除的点,点编号)

0表示当前输入接口进来的点

@ptnum点编号

dead = @P.y < 0;

dead是popkill中的一个表达式dead = 1就将粒子杀死,dead = 0就不杀粒子

@P.y表示位置属性的y轴信息

如果@P.y值 0, 1, 0)

参数表达式if函数写法

表示如果npoints函数计算出来的点数大于0就输出1,小于0就输出0

npoints函数用于计算几何中的点数

npoints(要计算的几何体)

stamp("../copy2/","my_dist",1)

stamp用于获取copy stamp节点上的属性

stamp(节点路径,节点的属性,如果获取不到设置的值)

dtail("../iteration/","iteration",0)

dtail用于获取节点的属性

dtail(节点路劲,获取的属性,属性的索引)

索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,在houdini中用01234来表示,如果属性是浮点就只有一个数索引就是0,如果属性是一个vector就应该是012

point("../In_single_point/", 0, "id", 0)

point函数获取其他节点点上的属性(在参数里面做引用)

point(节点路劲,要获取点的编号,要获取的属性,属性索引)

getbbox(0, min, max);

getbbox计数出几何体的边界

getbbox(输入接口,最小值,最大值)

centroid(0,0)    

获取到第一个输入接口输入进来几何体的坐标轴的x轴

centroid(输入接口,几何体的第几个轴向(一般0就是x,1就是y,2就是z))

if(abs(@P.x) >chf("threshold")){

   removepoint(0,@ptnum);

}

如果点的x轴大于threshold的值,或小于负threshold的值的点就被移除

abs是一个绝对值函数

abs(@P.x)就是|@P.x|的意思@P.x的绝对值

因为|@P.x|[email protected],@P.x

所以@P.x) >chf("threshold")意思就是[email protected]>chf("threshold")@P.x>chf("threshold")

[email protected]>chf("threshold")就等于@P.x



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3