实例

../../_images/modeling_geometry-nodes_instances.png

实例的三种类型。

除了存储网格或曲线等真实数据外,物体还可以存储实例,而实例本身可以引用更多几何体、物体或集合。实例化的目的是允许复制几何体并将其存储在物体中,而无需复制实际数据。这种优化可以让 Cycles 等渲染引擎在多个不同位置处理相同几何体数据时,比复制数据时效果更好。

每个实例都会记录其对应的几何体,以及与源几何体相比,实例是如何变换的。实例还可以存储 id 属性,用于在动画中实例移动时纠正运动模糊。

实例可通过几何节点使用实例化于点上来创建。

Warning

当前,从几何节点实例化不能与从属性编辑器中的实例化面板实例化混合。

嵌套实例

由于实例可以存储几何体,而几何体可以包含实例,因此支持嵌套实例化。换言之,可以对实例进行实例化,甚至对实例集合进行实例化。例如,默认情况下,实例化于点上节点通过在真实几何体的点上实例化实例来创建嵌套实例。

../../_images/modeling_geometry-nodes_instances-nested.png

通过串联实例化于点上节点创建嵌套实例的节点组。

在此处,嵌套实例化用于分布同时包含网格和实例的几何体。输出几何体包含一个 “真实” 网格和一组实例。每个实例包含一个球体网格和多个锥体几何体的实例。

../../_images/modeling_geometry-nodes_instances-nested-tree.png

上述示例的实例化几何图形树。

此方法的有用之处在于输出几何形状仅包含三个独特的网格:平面、球体和锥体。如果网格更加复杂,则性能表现更好。

Warning

视口渲染和查看仅支持八层嵌套实例化。虽然可在几何节点内部创建更深层的实例树,但这些实例树必须在节点树末端实现。

实现实例

“实现” 一词指的是将实例转换为独立几何体。实现后的几何体将占用更多内存,且对几何体的操作需逐个处理,而非像实现前的几何体那样一次性处理。

要实现实例请使用实现实例节点。

实例处理

几乎所有处理几何体的节点都是通过分别处理每个唯一几何体来实现的,而非处理实际生成的几何体。例如,如果在上例末尾放置一个表面细分节点,它只需对三个网格进行细分,而非对每个网格实例分别处理。另一个重要示例是处理 字符串 转换为 曲线 的输出结果,其中每个唯一字符只需处理一次。

这种方法可以大大提高性能,但是这意味着操作的结果对于特定几何体的每个实例都是相同的。为了每个实例都有独特的结果,可以使用实现实例节点。