欢迎光临散文网 会员登陆 & 注册

[Hudini] vex: 判断语句和循环语句

2022-06-05 22:44 作者:pandahgt  | 我要投稿

if else 语句

1 P.x大于0的点变成绿色。

图1

2 P.x大于0的点变成绿色,其他的变成红色。

图2

3 P.x大于0的点变成绿色,其他的点如果P.z大于0变成红色,最后剩下的点变成蓝色。

图3

4 if else的简写

1的简写

1的简写

2的简写

2的简写

2的终极简写

2的终极简写

下图的写法报错,大概是赋值操作只能用上面那种写法。

错误

这种可以

可以

这种也可以

也可以


foreach loop 语句

foreach语句的特点是把数组成员的值带入到循环中。有两种形式,第二种形式还可以把当前数组成员的编号带入到循环中。

foreach loop

1 新建一个点当作当前几何体,在另一个几何体上寻找距离该点0.3范围内的点,根据这些点的位置添加新点到当前几何体中。

foreach图1

2 新建一个点当作当前几何体,在另一个几何体上寻找距离该点0.3范围内的点,根据这些点的位置添加新点到当前几何体中。然后根据距离的由近到远给他们一个排序值,0代表最近。(因为找到的点是根据距离由近到远在数组中排序,越靠前代表距离该点越近,我们把点在数组中的序号当作排序值。addpoint函数能够返回新建点的序号,我们根据这个序号给属性。)

foreach图2

for loop 语句

for loop的特点是可以通过循环的次数控制是否继续执行语句。


for loop

1 从第二十点开始,每隔一个点变成紫色,一直到计数器不再小于100。

for loop 图1

do while 和 while 语句

while语句先判断条件是否成立,成立的话会一直执行。而do while先执行一次,再判断,也就是说无论条件成立与否,都会执行一次。

1 如果P.y小于15,Cd.g和Cd.b减少0.1,知道Cd.g小于等于0,移除该点。例子和图来源于Cg Forge vex部分。

while

2 只要时间小于2,Cd.g和Cd.b减小0.1。因为在dop里,每一个substep都会执行节点一次,而这个表达式是先执行再判断条件,所以即使时间大于2了,Cd值仍在减少。

do while

break 语句

break 直接终止整个循环。一般和if语句配合使用,当达到某个条件时,终止整个循环。

break

continue 语句

continue 跳过当前循环,直接执行下次循环。一般和if语句配合使用,当达到某个条件时,终止当前循环。

continue

一些教程里不太常见但是看上去挺有用的东西

1  @opinput1_P这种格式可以直接读取某个端口相同序号元素的属性。如果有id属性的话,会读取id相同的元素,匹配属性可以设置(下图2)。


@opinput inputnum_attribute

图2

2 用int(),float()来转换相应的数据类型。

类型转换


[Hudini] vex: 判断语句和循环语句的评论 (共 条)

分享到微博请遵守国家法律