houdini vex表达式 |
您所在的位置:网站首页 › ncy9091 › houdini vex表达式 |
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 |