Houdini 组(group)的详细讲解

内容参考Houdini101

首先,group可以看做是一种特殊的attribute,只是他的值只是0-1。因此他其实就是一种mask而已。

在vex中,我们只要用@group_mygroup这样的写法就能自动创建一个名为mygroup的组。这和attrb基本一致。

我们键入group关键字,会发现以下节点与之有关。在这里插入图片描述

最基本用法

最基本的当然就是group节点。

如图,group分为primitives points edges vertices

显然分别对应图元(图中就是面) 点 边 顶点

点击base group旁边的鼠标就能选择group

被选择的,其实就是面的编号

在这里插入图片描述

即使我们高亮了group节点,也会发现被选中的组没有被高亮。这时候我们可以如图点击show/hide list view进行高亮
在这里插入图片描述

我们通过点击右侧边栏的display group and attrb list按钮,能在scene view中显示当前有哪些组。
在这里插入图片描述

在这里插入图片描述

四种group的类型

选面 给的是面编号
在这里插入图片描述

选点,给的是点编号
在这里插入图片描述

而选顶点,需要先给出prim的编号,然后用字母v给出是第几个顶点。比如5v1代表第五个面的第1号顶点。
在这里插入图片描述
选edge则是先选点,然后用折线连接。点用p表示。例如p5-8-7表示第5号点,第8号点和第7号点连接起来的线段。

在这里插入图片描述

在这里插入图片描述

group节点的各个参数含义

initial merge中选择union with existing,不会取代同名的组,而是合并。

(注意是同名的组)
在这里插入图片描述

bounding box选组
在这里插入图片描述

normal选组
根据某一特定方向(例如x轴方向)与normal的角度选择组

在这里插入图片描述

与几何体交叉区域选点
在这里插入图片描述

与vdb相交选组

在这里插入图片描述

include by edges

可以选择边长在0-0.02范围内的边
在这里插入图片描述

或者选择夹角在0-60°的边

在这里插入图片描述

我们还可以根据与特定点的距离选点。比如给定点0,希望得到所有与其距离小于5的点包含进组。
在这里插入图片描述

勾选 unshared edges我们可以只选择边界上的图元

在这里插入图片描述
或者边界点

在这里插入图片描述

勾选boundary group会出现分开的两个group: group1__0和group1__1
在这里插入图片描述

或者边界边

在这里插入图片描述

group by range

最基本的,可以给定一个编号范围,比如选0到4号面
在这里插入图片描述

默认是relative start end

意思是不选倒数4个和第1个

在这里插入图片描述

equal partitions

意思是十等分,然后选择第0组(也就是前8个)
可以通过调节partition来选择第几组。
在这里插入图片描述

range filter

每隔4个选一个
在这里插入图片描述

每隔5个选2个
在这里插入图片描述

group expression

基本上就是vex

但是提供了几个很方面的预设,例如

选择每个面的第二个顶点
在这里插入图片描述

以30%的几率随机选面
在这里插入图片描述

哪些是三角形?(也就是@numvtx=3)
在这里插入图片描述

x坐标大于0
在这里插入图片描述

大于等于五边形

我们可以先用dissolve删除边然后造出多边形
在这里插入图片描述

vex

如开头所述,vex可以用来进行创建group

只需要先选择,然后用@group_xxx=1;即可
在这里插入图片描述

奇数选择
在这里插入图片描述

group expand

以40为中心向外扩散

在这里插入图片描述
还可以向里缩小

在这里插入图片描述

flood fill会填充所有拓扑相连的面
在这里插入图片描述

group promote

原本是这几个面

在这里插入图片描述

可以将其promote为点

在这里插入图片描述

将其promote为所有拓扑相连的边
在这里插入图片描述

如果只想要边界上的边,勾选include only elements on the boundary
在这里插入图片描述

rename

顾名思义
在这里插入图片描述

group copy

没啥用,纯粹是把group编号从一个几何体到另一个copy了一遍
在这里插入图片描述

delete group

顾名思义

删除组
在这里插入图片描述

注意delete unused group代表删除空组

group transfer

和attrb transfer一样,是基于邻域的不同几何体之间属性转移。

例如我们先做个球面,然后把所有点都加进group7

然后使用group transfer

输入0是一个平面,输入1是球面的group

最后我们可以调节邻域的大小

可以看到只有球面上有点,所以是空心的。

在这里插入图片描述

注意, 当不同类型的图元之间transfer
group transfer只能

group combine

新建一个group名为g_combine
它一开始等于group10(本来是蓝色,被覆盖为绿色)

然后与group7(红色)求并,得到新的g_combine
在这里插入图片描述
在这里插入图片描述

另外,在使用group combine时,很容易出现invalid group的错误

这是因为有的组被删掉或者不存在了。为此我们可以先新建一个空组。

只要在base group里面输入!*即可创建空组。

或者在vex中使用@group_xxx;而不赋予任何值即可创建空组。(另外一提,vex中的group只有0和非0, 所有不是0的值都和1是一样的)

转换attrb 和 group

很简单,只需要attrb create,然后选group,赋予1即可。也就是只针对group部分赋予1。

如下所示

在这里插入图片描述

另外顺带一提,可以可视化任意的attrbitue,只要在info窗口单击即可

在这里插入图片描述
按control+单击,还可以修改visualizer类型。

其中marker是数值

在这里插入图片描述

还有一种方法,就是使用group promote中的 output as integer attribute
在这里插入图片描述

用画笔刷group

笔刷刷出来的是Point group

滚轮可以调节大小

鼠标中键是橡皮擦

还有 reset all changes是清空

在这里插入图片描述

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值