Houdini 中文帮助文档

Cluster    

低级别的节点,会基于其位置(或任何矢量属性)来簇化点。

Overview

这是一个低级别的节点,它可以输出带有簇属性,或簇中心的点。对于高级别的簇节点,可以同时做这两个。查看簇化点节点。

这个节点会在点上创建一个cluster整型属性,暗示着点所属的簇标号(在同一个簇下的所有点都有同样的cluster值)。

这个节点使用K-means簇算法来成组点。

Tip

要可视化簇的颜色,你可以添加Color节点,将Color Type设为Random from attribute,Attribute设为Cluster。(要在几何体视窗中查看颜色,你需要添加一个Add节点,将particle下的Add Particle System 选项开启)

Change the Seed to change the clustering

该节点所使用的K-means 簇算法对簇的初始位置选择非常敏感,特别是当你创建的簇数量非常少时。如,如果你将几何体分割成两个部分,相互远离,可能A中所有点会在一个簇中,B部分的点被分在多个簇中。因为,在A周围没有初始的簇中心位置。

这种环境下,你可以改变Seed初始,直到你获得更好的簇效果。

Threshold attribute

这个节点可以让你通过混合多个属性(通过增加Control attributes 参数)。 每个属性都有一个权重参数,控制着其对范围的线性贡献值,即控制每个点会进入哪个簇中。

对于一些属性,你可能会发现,线性缩放不是你想要的。这个案例的目的是阈值特性会按影响时间来簇化:

使用一个 Impact Analysis DOP创建点,RBD物体会在该处撞击地面,以便创建灰尘。影响点有一个包含传输时间的impacttime属性(impact所发生的时间)。

你想簇化impact点,将它们放到分离的流体模拟框中。

你想按位置来分类(相互靠近的点在同一个方盒中),但也会按impact时间。

你可以使用两个控制属性,P和 impacttime ,来控制簇操作,高的权重值用于 impacttime 来成组点(先按impact time,再按位置)。

但是,权重传输的线性特性可能会使拾取正确的权重值,获取你想要的行为,变得有点困难。impact对象会太靠近,从而进入了同一个方盒中,但是仍是被独立的簇化。

此就是阈值特性的用途。而非是一个线性权重,如果特定属性的距离值高于一个特定数量,它会添加一个高的penalty(减去该值)值到最终的距离计算中。

这个例子中,红点代表着早先的impact对象,绿点代表后来的impact对象。你可以看到,某些地方,在位置上重叠的点,会基于影响时间,被放到不同的方盒中。

Inputs

Points to Cluster 要放到簇中点。
Cluster Centers 如果此输入端被连接了,节点会使用这些点作为簇的中心点,而非从输入的点中计算簇中心的平均位置。此时,number of clusters 参数会被忽略。

Parameters

Clusters 设置簇的数量。
Cluster Attribute 在点上设置的属性名。此属性包含点属于哪个簇的簇标号。默认是cluster。
Output Cluster Centers 而非使用一个簇属性输出输入的点,会以新的点输出簇中心。

如果你想同时以点和簇化的输入点来输出簇中心,你可以使用两个簇节点,一个用于输出簇的中心。连接cluster center节点的输出顿到clustered points节点第二个输入端。

另外,你可以使用 Cluster points 节点,其可以同时输出点和簇的中心。

Control Attributes 用于混合到一起的矢量属性数量,可以决定哪些点会成组在一起。默认是使用点位置属性P,因此节点会将相互靠近的点成组。
Control Attribute 用于簇化点的矢量属性名。数值接近于该属性的点会成组。
Weight 矢量属性的权重值,用于控制哪些点会被成组到一起。此是一个线性缩放。对于更离散的成组方式,使用阈值。
Iterations 设置计算簇的迭代次数。高的值可以给出更精确的簇效果。
Seed 一个种子值对应一个簇效果,所以改变该种子值,可以得到不同的簇效果。
Threshold Attribute 该属性是一个阈值属性,其属性值没有足够靠近该阈值的点,就不会被成组到一起,即使根据控制属性来看,其已经很接近了。
Weight 阈值属性的强度。设置为0会关闭阈值。
Initial Threshold 阈值属性的初始切割值,会在第一次簇计算中使用。如果在第一次此值较高,在之后每次计算,其逐渐趋向全局阈值,那么效果更好。
Goal Threshold 阈值属性的裁切阈值,在最终簇化计算中使用。其值远离于此值的点不会在同一个簇中。
点击分享到: