Houdini SOP/Group 目录下系列节点,版本:ver 16.0
Houdini 16 中把以前使用的 Group 节点了分成了若干个新节点。这些节点按功能可以分为: 建立 Group、 对 Group 操作、Utility 三个方面。
该类节点分为三种:
group create
:基本的 Group 节点。group by range
:按 range 来分组。group by expression
: 按表达式分组。这个节点主要有几个比较重要的功能集 / 属性集如下:
该功能集其实就是以前我们常用的 group by pattern
。这个功能可以使用 Houdini 自带的 Group specification syntax 来对各种对象进行分组。
一些常见的使用例子如下:
0-10:2 //取 0 到 10, 隔两个取一次
0-10:2,3 //取 0 到10, 隔 3 个取一次 ,每次取两个(前面两个)
!1-10 //取所有不在 [1,10] 之内的对象
0-10 ^1-2 //从[0,10]中去掉 1-2 的对象
@Cd.x >0 //选择所有通道是红色的颜色属性值大于零的对象(@Cd.r不能用)。
base group
还可以通过 geometry filter
来指定 Group 中允许的数据对象类型。
该功能集跟老版本中用 Bounding 对象来选择区域的功能一致。
Include Partially Contained Entities
表示只要有一部分在 Bounding 范围里的对象,都属于 Group。
该功能集使用 Normal 来进行对象分组:
backface from
: 假设我们有两个对象,一个 box
和 一个 sphere
。假设我们需要打组的是 primitive
,在 box
上,那么这个功能就是将 box
不朝着 sphere
方向的所有 primitive
都会被打组。如图,红色区域被打组:
这个选项简直就是选边的利器。特别需要注意的功能:
默认的的 Edge 编组是通过 Edge 所在的面的夹角(面的 Normal 夹角)作为条件进行打组。但在 Edge Angle Uses Angle Between Edges 勾选的情况下会使用边的夹角作为条件打组。
Parameters | Usage |
---|---|
Edge Angle Uses Angle Between Edges | 使用边的夹角作为打组的条件。(默认的是检测面的法线夹角) |
Edge Depth | 选取几何体上任意一点,以该点为中心寻找半径范围内最近的点打组。数值越大,半径越大。需要 Group 设置为点模式。 |
Unshared Edges | 这个选项会将所有非共享的边进行打组,是获取几何体边缘的好办法。 |
Group Range 节点通过一系列的方法来指定分组:
number of partition
这么多块, 而 partition
则代表指定组的 index
(partition
的范围从 0
开始)。
该节点同样来自于以前的老 Group 节点;这个节点也是基于 VEX 的。我们可以用 wrangle
系列节点来代替这个节点;但不同是我们需要在 wrangle
里写出整个语句,而在这个节点中只用写表达式就可以。如果需要和其他语句写在一起使用,文档推荐使用 wrangle
系列节点。
注意:该节点不使用局部变量(比如 $F
)。我们可以用@Frame
、 @Time
等代替。
本类操作主要对于 Group 做合并、拷贝、删除等操作。
这个节点会把存在于右边输入端中的 group 提供给左边的输入使用,如图:
这时 grid2
实际上套用了 grid1
中的组。而通过 group copy 在 grid1
上所做的操作,都会在 grid2
上生效。该节点需要左边输入和右边输入匹配;如果不匹配,拷贝结果会按最少的输入端来计算。
Copy Empty Groups
这个选项需要酌情使用。通常禁止拷贝空组可以方便找出我们希望取出的一个组。但如果一个组是动态的话,它在某一刻的内容很可能是空的;这时如果禁止拷贝空组,就会让该动态组不连续,从而导致问题。
Perfix
选项可以为 group 的名字添加前缀。
这个节点和 group copy
使用方法类似,也是将右边输入中的 group 提供给左边输入使用。不同的是,左边接收的不是输入的源,而是输入的 proximity
。也就是说,左边的输入直接调用了右边 group 中的数据,而跟右边输入的是什么几何体没有关系。因此,该节点并不需要匹配左边和右边的输入。
该节点用于删除 指定group。
该节点只会删除 group, 不删除group内的元素。
该节点通过 Boolean
运算来产生一个新节点,如图:
newgroup
代表新建的 group,group1
、group2
、代表已存在的 group。运算顺序为:
Boolean
运算。
Group utility 中主要包括了 group promote
。
该节点主要用于在不同 group 之间转换类型,转换后可以选择保留 group。