属性

属性 是一个通用术语,用来描述几何数据块中每个元素所存储的数据。例如,每个顶点都可以有一个相关的数字或矢量。属性可以通过连接一个值到 组输出 节点来改变,但也有许多节点可以改变特定属性的值。

Note

属性数据类型和域在可能的情况下被隐式转换,就像节点接口一样。

已命名属性

已命名属性可在 Blender 的其他区域(如着色器、绘制和 UV 贴图)中创建和使用。在修改器面板中,点击数值按钮右侧的图标即可输入命名属性。通过字符串输入,您可以从修改器的输入几何体中搜索并选择现有属性。

../../_images/modeling_geometry-nodes_attribute-reference_search.png

属性查找。

属性搜索为每个属性提供了一些上下文。菜单左侧显示属性域,然后显示属性名称。菜单右侧显示属性数据类型。

匿名属性

../../_images/modeling_geometry-nodes_attribute-reference_attribute-field.png

法线 和 旋转 输出是属性场的示例,它们指的是存储在几何体上的属性。

匿名属性是存储在没有名称的几何体上的一组通用数据。通常,在 Blender 界面中公开的属性都具有名称。然而,在几何节点中,属性可以通过节点接口传递。在这些情况下,将创建 属性场 输出,节点使用该输出查找输入几何体中的属性数据。

匿名属性仍会像其他属性一样存储在几何体上,甚至会在几何体与其他节点发生变化时自动插值(少数情况除外)。因此,一般情况下,如果节点链接仍可访问,那么其引用的属性也将可用。但是,匿名属性无法连接到从不同来源创建的完全独立的几何体上。要在独立几何体之间传递属性,可以使用采样编号,或其他类似的节点,如采样最近的表面。

属性数据类型

属性的类型是指存储在每个元素的数据种类。

浮点:

单个浮点数值,通常用于权重或强度值。

布尔:

二进制条件的真值或假值。

整数:

32 位整数,用于索引号或离散值。

矢量:

包含浮点数值的三维矢量,通常表示方向或位置。

颜色:

采用 32 位浮点数值的 RGBA 颜色。

字节颜色:

采用 8 位正整数值的 RGBA 颜色,适用于紧凑型颜色存储。

字符串:

文本字符串,用于存储名称或标签。

二维矢量:

包含浮点数值的二维矢量,通常用于 UV 坐标。

8 位整数:

范围在 -128 至 127 之间的小整数。

二维 16 位整数矢量:

有符号 16 位二维矢量,用于紧凑存储整数对。

二维整数矢量:

有符号 32 位二维矢量。

四元数:

浮点四元数旋转,用于 3D 变换。

4x4 矩阵:

浮点矩阵,用于变换或存储空间关系。

上面的列表是按照最不复杂到最 "复杂" 的顺序排列的(一个整数可以比布尔值包含更多的数据,所以它更复杂)。当把独立的几何体连接在一起时,当有匹配的名称时,更复杂的数据类型是首选。当用合并几何连接具有命名属性的几何体时,这一点特别重要。

要存储二维矢量(UV 贴图)和字节颜色,必须使用存储已命名属性,因为这些类型没有对应的接口。

数据转换

通过使用几何节点,数据可以在不同类型之间进行转换。

有效转换:

  • 在颜色和矢量之间 -- 在颜色通道和矢量属性间映射。

  • 在颜色和浮点之间 -- 颜色数据被转换为等价的灰度。

  • 在浮点和整数之间 -- 整数简单转为浮点数,浮点数截短为整数。

  • 在浮点和矢量之间 -- 当浮点数转为矢量时,数值用于每个分量。当矢量转为浮点数时,取其分量的平均值。

  • 在浮点和布尔之间 -- 值大于 0 为真 (ture),真映射为 1,假 (false) 映射为 0.

属性域

一个属性的域指的是该属性对应的几何元素的类型。知道一个属性的域是很重要的,因为它定义了它如何在节点和着色中插值和使用。你可以使用电子表格编辑器来确定属性的域。

  • 点 域属性与空间中的单个位置相关联:
    • 网格的顶点

    • 点云的点

    • 曲线控制点

  • 边 域属性是与网格的边缘相关的。

  • 面 域属性是与网格的面相关的。

  • 面拐角 域属性是与网格的面角相关的。一个例子是UV贴图属性。

  • 样条 域属性与一组相连的曲线控制点相关。

  • 实例 域属性存在于几何体中的实例。它们可以用来在几何体数据的副本上存储不同的值。实例域属性只在几何体节点中被支持。

  • 层 域属性与蜡笔层相关。

属性会自动内插到其他域中。例如,当位置节点连接到设置材质节点的选择输入时,数值会从 点 域插值到 面 域。通常情况下,域的转换使用简单的平均值,但 布尔 数据类型属性对插值有特殊规则:

布尔域插值

来自

至

转换

点

边

如果选择了边的两个顶点,则会选中边。

点

面

如果选择了面上的所有顶点,则会选中面。

点

拐角

每个拐角的值只是其顶点处的值的副本。

点

样条线

如果选择了样条所有控制点,则会选中样条。

边

点

如果选择了任何连接的边,则选中一个顶点。

边

面

如果选择了面的所有边,则选中面。

边

拐角

如果选择了角的两个相邻边,则选中一个拐角。

面

点

如果选择了任何连接面,则选中顶点。

面

边

如果选择了任何连接的面,则选中边。

面

拐角

每个拐角的值只是其面的值的副本。

拐角

点

如果选择了所有连接的面角,并且它不是松散的顶点,则选中一个顶点。

拐角

边

如果选择了相邻面上的所有拐角,则会选中边。

拐角

面

如果选择了面的所有拐角,则选中面。

样条线

点

每个点的值只是样条对应值的副本。

内置属性

内置属性始终存在,无法删除。无法更改其数据类型和域。

名称

类型

域

注意

position

矢量

点

描述几何体局部空间中顶点或点位置的内置属性。任何改变点位置的节点都会调整该属性,例如变换几何体和设置位置。

radius

浮点数

点

用于设置视口中点大小的点云上的内置属性。内置在曲线上,其中它控制转换为网格时每个曲线控制点的大小,或其他操作。

id

整数

点

由分布点于面上创建,以便在输入网格的形状发生变化时提供稳定性,并在实例上用于创建运动模糊。值应为大值,无订单。此属性由生成随机性的节点使用,例如随机值。与其他内置属性不同,此属性不是必需的,可以删除。

material_index

整数

面

用于为网格中的每个面指定材质槽。

sharp_edge

布尔

边

用于确定在视口或渲染中是否应为边启用平直(而非平滑)着色的属性。

sharp_face

布尔

面

用于确定在视口或渲染中是否应为面启用平直(而非平滑)着色的属性。

resolution

整数

样条线

确定样条线的两个控制点之间的计算点数。只有 NURBS 和贝塞尔样条具有此属性,对于多段线,值始终是一个。

cyclic

布尔

样条线

确定样条是否具有连接其第一个和最后一个控制点的段。

handle_left

矢量

点

描述曲线控制点的左手柄在曲线起始侧的位置。仅当曲线包含贝塞尔样条时才存在。

handle_right

矢量

点

描述曲线控制点的右手柄在曲线端侧的位置。仅当曲线包含贝塞尔样条时才存在。

命名惯例

默认情况下不存在这些属性,但 Blender 的某些部分隐含使用这些属性。这些属性的数据类型可以更改,就像内置属性之外的任何属性一样。但是,Blender 可能期望这些属性具有某种类型。

名称

类型

域

注意

velocity

矢量

点

用于在渲染动画时创建运动模糊。

rest_position

矢量

点

Holds the position of points or vertices from before a geometry is deformed procedurally. Can be created automatically before Shape Keys and Modifiers are evaluated with the Add Rest Position option.

surface_uv_coordinate

二维矢量

曲线

用于描述网格表面上的曲线附着位置,通常用于毛发系统。

crease_vert

浮点数

点

细分表面修改器使用的顶点属性。数值范围为 0 到 1.

crease_edge

浮点数

边

细分表面修改器使用的边属性。数值范围为 0 到 1.

uv_seam

布尔

边

如果在展开时将某条边视为 UV 孤岛之间的边界,则取值为真。

bevel_weight_vert

浮点数

点

用作倒角修改器的顶点控制。

bevel_weight_edge

浮点数

边

用作倒角修改器的边控制。

sculpt_face_set

整数

面

用于雕刻的面组功能。

sculpt_mask

浮点数

点

用于雕刻的遮罩功能。

custom_normal

二维 16 位整数矢量

面拐

由自定义拆边法向用于网格物体。

自定义属性

顶点组、UV贴图和颜色属性可用作几何节点中的属性。他们被称为他们的名字。应避免命名碰撞(例如,具有相同名称的顶点组和UV地图)。如果存在命名冲突,则在几何节点中只能访问其中一个属性。

首次使用名称时,节点也可以创建具有任何其他名称的属性。

请注意,如果使用像合并几何这样的节点,几何节点并不总是产生诸如顶点组。同样,如果顶点组属性的数据类型从最初的 "浮点" 类型改变,该属性将不再是一个顶点组。

属性转换操作

../../_images/modeling_geometry-nodes_attribute-reference_convert.png

在属性编辑器的 属性 面板中找到的此运算符可以更改属性的域或数据类型。

由于属性域的持续开发,Blender 的许多区域还无法处理几何节点使用的通用属性(以名称标识,存储在任何数据类型的任何域中)。因此,当在某些情况下必须使用现有工具来处理几何节点生成的数据时,该操作就成了必不可少的变通方法。

模式
泛型:

插入并转换此页面上描述的域和数据类型之间的属性。

顶点组:

更多信息见顶点组。

Note

此运算符仅适用于 原始 物体数据,不包括修改器的结果,因此几何节点添加或更改的任何属性都不会受到影响。要更改在程序上生成的属性的类型,必须应用修改器。