实例#
实例的三种类型。#
In addition to storing real data like a mesh or a curve, objects can store instances, which themselves can reference more geometry, an object, or a collection. The purpose of instancing is to allow duplicating geometry and storing it in an object, without duplicating the actual data. This optimization allows render engines like Cycles to handle the same geometry data in many different locations better than when the data is duplicated.
每个实例都会记录其对应的几何体,以及与源几何体相比,实例是如何变换的。实例还可以存储 id 属性,用于在动画中实例移动时纠正运动模糊。
实例可通过几何节点使用实例化于点上来创建。
Warning
当前,从几何节点实例化不能与从属性编辑器中的实例化面板实例化混合。
嵌套实例#
由于实例可以存储几何体,而几何体可以包含实例,因此支持嵌套实例化。换言之,可以对实例进行实例化,甚至对实例集合进行实例化。例如,默认情况下,实例化于点上节点通过在真实几何体的点上实例化实例来创建嵌套实例。
在此处,嵌套实例化用于分布同时包含网格和实例的几何体。输出几何体包含一个 “真实” 网格和一组实例。每个实例包含一个球体网格和多个锥体几何体的实例。
上述示例的实例化几何图形树。#
此方法的有用之处在于输出几何形状仅包含三个独特的网格:平面、球体和锥体。如果网格更加复杂,则性能表现更好。
Warning
视口渲染和查看仅支持八层嵌套实例化。虽然可在几何节点内部创建更深层的实例树,但这些实例树必须在节点树末端实现。
实现实例#
“实现” 一词指的是将实例转换为独立几何体。实现后的几何体将占用更多内存,且对几何体的操作需逐个处理,而非像实现前的几何体那样一次性处理。
要实现实例请使用实现实例节点。
实例处理#
几乎所有处理几何体的节点都是通过分别处理每个唯一几何体来实现的,而非处理实际生成的几何体。例如,如果在上例末尾放置一个表面细分节点,它只需对三个网格进行细分,而非对每个网格实例分别处理。另一个重要示例是处理 字符串 转为 曲线 的输出结果,其中每个唯一字符只需处理一次。
这种方法可以大大提高性能,但是这意味着操作的结果对于特定几何体的每个实例都是相同的。为了每个实例都有独特的结果,可以使用实现实例节点。