从根本上说,场是一种函数:一组指令,能够将任意数量的输入转换为单一输出。场的结果可通过不同输入数据反复计算。它们广泛应用于几何节点中,用于实现针对每个元素(网格顶点、面等)产生不同结果的计算。

../../_images/modeling_geometry-nodes_fields_title.png

输入节点的场。

例如,在上图中,连接到 “设置位置” 节点的场依赖于两个输入:位置编号,并通过单个指令将其转换为矢量。

场可视化

接口形状用于传达哪些接口是场,哪些是常规数据。有三种可能的接口形状,每种形状都可视化其 “场状态”:

圆形:

接口需要单个实际值,不接受场输入。对于输出接口,这意味着节点总是输出单项值。

菱形:

接口可以接受场输入,也可以输出场。恒定的单项值可以连接到这些接口,但每个元素的输出通常不会变化。

带圆点的菱形:

接口可以是一个场,但它目前是一个单项值。这很有用,因为它允许跟踪计算单项值的位置,而不是具有许多不同结果的场。这也意味着接口检视将显示值而不是场输入名称。

../../_images/modeling_geometry-nodes_fields_constant.png

接口形状是一个带有圆点的菱形,这意味着场对于每个元素具有相同的值。每个点都将向上移动5米。

../../_images/modeling_geometry-nodes_fields_varying.png

接口形状是菱形,场输入具有不同的输入。换句话说,对于每个元素,值可以是不同的。在这种情况下,位置将翻倍,因为每个点的偏移量是点的位置。

Tip

通常需要从场中提取单一值。虽然从概念上讲将场直接转换为单一值并不合理,但可通过采样编号属性统计在几何体上评估场后获取单一值。

当在支持场的两个节点接口之间进行连接时,节点连接将被绘制为虚线。如果错误地将非场接口连接到场接口,则连接将被绘制为红色实线,表明存在错误。

节点类型

节点可分为两类:通常通过几何形状的数据流节点和在每个元素的数据上运行的场节点。场节点可以是将几何数据带入节点树中的输入节点,或在该数据上操作的函数节点。

数据流节点

具有几何输入和几何输出的节点几乎总是数据流节点。这意味着他们实际上更改了将从几何节点修改器输出的几何数据。

功能节点

具有菱形接口输入和输出的节点是场节点,并且类似于将由数据流节点评估的指令。函数节点的示例包括数学节点和更复杂的节点,比如几何接近

输入节点

输入节点为场评估过程提供数据。它们本身没有任何含义;它们必须在数据流节点(几何体)的上下文中进行评估,才能实际输出值。输入节点的例子包括位置ID 等内置属性输入节点,以及端点选择等选择类节点。

场输入也可能来自处理几何形状的其他节点,如分布点于面上,其形式为匿名属性

场上下文

所有场节点在其所连接的数据流节点的上下文中工作。上下文通常由几何组件类型和属性域组成,因此它确定从输入节点检索哪些数据。

一个常见的误解是,在多个地方使用的相同场节点树将输出相同的数据。这并不一定是真实的,因为将针对每个数据流节点评估场节点树,从而可能从不同或改变的几何体检索数据。

../../_images/modeling_geometry-nodes_fields_flow-1.png

在这里,设置位置节点的输入场将被评估一次。为了评估场,节点向后遍历以从场输入节点检索输入值。

../../_images/modeling_geometry-nodes_fields_flow-2.png

当添加第二个设置位置节点时,同一个场节点树被评估两次,每个数据流节点一次。在第二个设置位置节点处,结果将不同,因为其几何输入将已经具有与第一个节点改变的位置。

../../_images/modeling_geometry-nodes_fields_flow-3.png

但是,即使在更改几何形状后,通常也需要使用相同的场值。捕捉属性评估一个场,将结果复制到几何体上的匿名属性中。

在这里,捕捉属性节点存储初始位置的副本。请注意,评估捕捉属性节点的场输入是一个完全不同的步骤。之后,设置位置节点的输入场不会使用实际位置,而是使用其匿名属性副本。