节点闭包¶
闭包 允许将自定义功能传递到节点组中。它就像函数的输入,使用户定义的行为能够在另一个节点树中进行评估。
通过允许用户将节点网络的一部分注入到另一个节点网络中,闭包使节点组更加灵活和可复用。这允许构建更高层次的工具,其中过程的特定部分可以在不修改组本身的情况下进行定制。
使用闭包来自定义地形生成器中的树木散布。¶
概览¶
闭包是一种表示可调用节点图的接口类型。它们定义了一组输入和输出,这些输入和输出可以通过解算闭包节点在另一个节点组中进行评估。
当闭包连接时,其内部节点图会被 注入 到使用该闭包的节点组的解算过程中。这使得程序化系统在保持灵活性的同时,也能提供清晰且可定制的控制点。
闭包可视为节点组的函数参数。它们允许用户在父节点树定义的受控环境中执行操作。
节点¶
闭包可通过以下节点进行创建和解算:
接口同步¶
闭包使用接口名称来匹配其输入和输出。如果两个闭包节点已连接但签名不匹配,Blender 可自动提供同步功能。
节点首次连接时,同步会自动进行。
现有接口不会自动更新,以避免覆盖用户数据。
当检测到数据不匹配时,节点标题栏会显示一个 按钮(同步接口),允许手动执行同步操作。
例子¶
当需要用户自定义节点组的逻辑时,闭包非常实用。例如,地形生成器可以使用闭包来定义树木的摆放位置:
在解算闭包时,连接节点图的内容会在地形生成器的上下文中执行。这使得生成器能够提供稳定的基础结构(例如散布、遮罩、属性),同时用户可以提供自己的功能行为。
地形生成器节点组,通过闭包实现自定义树木放置。¶