docs.unity3d.com
    显示 / 隐藏目录

    子图形

    描述

    子图形是一种特殊类型的 Shader Graph,可从其他图形内部引用。希望在一个图形中或多个图形之间多次执行相同的操作时,这非常有用。子图形在 3 个方面不同于 Shader Graph:

    • 当子图形在另一个图形中被引用时,子图形的 Blackboard 中的 Properties 定义 Sub Graph 节点的输入端口。
    • 子图形具有其自身的资源类型。如需了解更多信息,包括如何创建新的子图形的操作,请参阅子图形资源。
    • 子图形没有主栈。但是,有一个称为 Output 的节点。

    有关子图形组件的信息,请参见子图形资源。

    Output 节点

    当子图形在另一个图形中被引用时,Output 节点定义 Sub Graph 节点的输出端口。要添加和删除端口,单击 Sub Graph Output 节点,使用 Graph Inspector 的 Node Settings 选项卡中的 Custom Port Menu 进行操作。

    用于子图形的预览由其 Output 节点的第一个端口决定。第一个端口有效的数据类型是 Float、Vector 2、Vector 3、Vector 4、Matrix2、Matrix3、Matrix4 和 Boolean。任何其他数据类型在预览着色器和子图形中都会产生错误。

    子图形和着色器阶段

    如果子图形中的节点指定了一个着色器阶段(例如,Sample Texture 2D 节点如何指定片元着色器阶段),则编辑器将整个子图形锁定到该阶段。任何指定了不同着色器阶段的节点都无法连接到 Sub Graph Output 节点,并且编辑器将引用该图形的任何 Sub Graph 节点也将锁定到该着色器阶段。

    从 10.3 开始,子图形的 Texture 和 SamplerState 类型输入和输出受益于改进的数据结构。详细解释见自定义函数节点。

    子图形和关键字

    子图形中的 Blackboard 上定义的关键字行为类似于常规 Shader Graph 中的行为。将 Sub Graph 节点添加到 Shader Graph 中时,Unity 还会在 Shader Graph 中定义该子图形中的所有关键字,以便子图形按预期工作。

    要在 Shader Graph 中使用 Sub Graph 关键字,或在材质检视面板中显示该关键字,请将其从子图形复制到 Shader Graph 的 Blackboard 上。

    返回到顶部
    Copyright © 2023 Unity Technologies — 商标和使用条款
    • 法律条款
    • 隐私政策
    • Cookie
    • 不要出售或分享我的个人信息
    • Your Privacy Choices (Cookie Settings)