Unity3D Shader Graph帮助文档 5:Sub Graph

请尊重原作者的工作,转载时请务必注明转载自:www.xionggf.com

原文地址

5.Sub Graph

5.1 Description

Sub Graph(子SG图) 是SG图的一种特殊类型,您可以从其他SG图内部引用它。当您希望在一个SG图或多个SG图中多次执行相同的操作时,此功能很有用。子SG图与SG图在三个主要方面不同:

  • 当您从另一个SG图内部引用子SG图时,子SG图的 Blackboard上的属性定义了子SG图节点的输入端口。
  • 子SG图具有其自己的asset类型。有关更多信息,包括有关如何制作新的子SG图说明,请参见Sub Graph Asset。
  • 子SG图没有主节点。 相反,它有一个称为输出的节点。有关更多信息,请参见Output Node。
  • 有关子SG图的组件的信息,请参见Sub Graph Asset。

5.2 Output Node

当您从另一个SG图的内部引用子SG图时,输出节点定义子图节点的输出端口。要添加和删除端口,请使用【Custom Port】菜单。

5.3 Sub Graphs and shader stages

如果子SG图中的一个节点指定了一个 shader stage(着色器阶段)(例如,就像Sample Texture 2D(采样纹理2D节点)指定片元着色器阶段一样,编辑器会将整个子SG图锁定到该阶段。 您不能将指定不同着色器阶段的任何节点连接到 【Sub Graph Output Node】 节点,并且编辑器会将引用该图的任何子SG图节点锁定到该着色器阶段。

5.4 Sub Graphs and Keywords

您在子SG图中的 Blackboard上定义的Keyword的行为与常规的SG图中的定义Keyword的方式相似。当您将子SG图节点添加到SG图时,Unity还将在SG图中定义该子SG图中的所有关键字,以便子SG图按预期工作。

要在SG图中使用子SG图Keyword,或在材质球的Insepctor面板中显示该Keyword,请将其从子SG图复制到SG图的 Blackboard 上。