MasterStack主栈

主栈是 Shader Graph 的终点,用于定义着色器的最终表面外观。Shader Graph 应始终包含一个且仅包含一个主栈。
主栈包含两个上下文:

  1. Vertex 顶点着色器
    连接到 Vertex Context 中的 Block 的任何节点都将成为最终着色器的顶点函数的一部分
  2. Fragment 片段着色器
    连接到 Fragment Context 中的 Block 的任何节点都将成为最终着色器的片元(或像素)函数的一部分

注意: 如果你将任何节点连接到两个上下文,它们将被执行两次,一次在顶点函数中,然后在片元函数中再次执行。上下文不能剪切、复制或粘贴

MainPreview预览窗口

Main Preview 显示活动渲染管线上的着色器的一种表示结果。它会实时更新并自动更新以显示你在 Shader Graph 中所做的任何更改。Main Preview 的标题栏显示当前着色器的名称。

Main Preview 可移动到 Shader Graph 窗口中的任意位置,并将随该窗口的最近一个角自动移动。

  1. 预览网格
    可通过按住鼠标左键并拖动 Main Preview 来旋转预览网格,并可使用滚轮进行缩放。右键单击 Main Preview 可以更改预览网格。在此处可以选择任何原始网格类型或选择自定义网格。

Blackboard属性面板

你可以使用 Blackboard 对图形中的属性关键字进行定义、排序和分类。在 Blackboard 中,你还可以编辑所选 Shader Graph 资源或Subgraph的路径。

  1. 访问 Blackboard
    默认情况下,Blackboard是可见的,你不能将其拖出图形并丢失它。但是,你可以将其放置在 Shader Graph Window 中的任何位置。它始终与最近的角保持相同的距离,即使你调整窗口大小也是如此。
  2. 向 Blackboard 添加属性和关键字
    要创建新属性或关键字,请单击 Blackboard 标题栏上的添加 (+) 按钮,然后选择一种类型。有关属性类型的完整列表,请参阅属性类型
  3. 编辑属性关键字
    选择黑板或图中的属性或关键字,以在节点设置菜单中修改其设置。
设置描述
名称属性的显示名称。编辑器会从显示名称中剥离引号并用下划线替换。通过在黑板上双击其名称来重命名项目。
引用Shader Graph 内部使用的此属性的名称。虽然编辑器默认会填充此值,但你可以修改它。要还原为原始引用名称,右键点击引用(不是输入字段)并选择上下文菜单中的重置引用。如果引用名称包含 HLSL 不支持的任何字符,编辑器会用下划线替换这些字符。
默认值基于此 Shader Graph 的任何材质中此属性的默认值。例如,如果你有一个草的 Shader Graph 并公开草的颜色作为属性,你可能会将默认值设置为绿色。
精度设置属性的精度模式。见精度模式
暴露启用此设置,使属性可供你通过 C# API 编辑。默认启用。
  1. 修改选择属性和关键字
    • 要对 Blackboard 上列出的项目重新排序,请拖放它们。
    • 若要删除项目,请在 Windows 上使用 Delete 键或在 macOS 上使用 Command + Backspace 键。
    • 要选择多个项目,请在进行选择时按住 Ctrl 键。
    • 若要取消对一个或多个项目的选择,请按住 Ctrl 键,同时单击要从选择中删除的项目。
  2. 使用 Blackboard 类别
    若要使着色器中的属性更易于发现,请将它们组织成类别。展开和折叠类别以使 Blackboard 更易于导航。
  3. 创建重命名移动删除类别
    • 要添加类别,请在 Blackboard 上使用 +。
    • 若要重命名类别,请双击类别名称,或右键单击并选择“重命名”。
    • 要在 Blackboard 中移动类别,请选择并拖动该类别。
    • 若要删除类别,请选择该类别并按 Delete 键,或右键单击并选择“删除”。删除类别也会删除其中的属性,因此请移动要保留的属性。
  4. 添加删除重新排序属性和关键字
    • 若要将属性或关键字添加到类别,请使用折叠 (⌄) 符号展开类别,然后将属性或关键字拖放到展开的类别上。
    • 若要删除属性或关键字,请选择该属性或关键字并按 Delete,或右键单击并选择“删除”。
    • 要对属性或关键字重新排序,请将它们拖放到某个类别中,或将它们移动到其他类别中。
  5. 特定属性关键字创建类别
    选择多个属性或关键字,然后在 Blackboard 上使用 + 创建一个包含你选择的所有项目的类别。
  6. 复制粘贴类别,带或不带属性
    • 你可以将空类别、包含所有属性的类别以及包含部分属性的类别粘贴到一个或多个图形中。要复制具有所有属性的类别,请执行以下操作:
      • 选择属性。
      • 使用 Ctrl+C 复制它。
      • 使用 Ctrl+V 将其粘贴到目标图形中。
    • 要复制一组特定的属性,请执行以下操作:
      • 选择类别。
      • 按住 Ctrl 键。
      • 单击不想包含的属性以将其从选定内容中删除。
      • 使用 Ctrl+C 复制属性。
      • 使用 Ctrl+V 将其粘贴到目标图形中。
  7. 在材质检查器中使用类别
    要修改使用 Shader Graph 创建的材质,可以在材质检查器中调整特定属性或关键字值,或编辑图形本身。
    • 使用流式处理虚拟纹理
      流式处理虚拟纹理属性示例纹理图层。要在材质检查器中访问这些图层,请展开相关的“虚拟纹理”部分,并在其名称旁边加上 ⌄ 符号。你可以通过检查器添加和移除图层。
  8. 公开属性和关键字
    Unity 默认会暴露属性和关键字。这允许你通过脚本进行写访问,以便你可以通过 C# API 编辑它们,除了图表之外。暴露的项目在其标签上有一个绿点。在节点设置菜单中启用或禁用此功能。
  9. 创建节点
    将属性或关键字从 Blackboard 拖动到图形中,以创建此类节点。图形中节点的设置与 Blackboard 中相关属性或关键字的设置相同。展开这些节点以使用属性值的子成员。 如果属性已公开,则属性节点名称将包含一个绿点。

GraphInspector

Graph Inspector使你能够与 Shader Graph 资源的任何可选图形元素图形范围设置进行交互。你可以使用 Graph Inspector 来编辑属性和默认值。
打开 Shader Graph 时,Graph Inspector 默认显示“Graph 设置”选项卡。该特定Shader Graph的图形范围设置将显示在此选项卡中。

其他

标题栏

Shader Graph 窗口顶部的标题栏包含可对图形执行的操作。

  • Save Asset 保存图形以更新 Shader Graph 资源
  • Save As 打开一个文件对话框,允许用户以新名称保存 Shader Graph 资源
  • Show In Project 此时将在 Project 窗口中突出显示 Shader Graph 资源
  • Check Out 如果启用了版本控制,将从源代码控制提供商签出 Shader Graph 资源
  • Color Mode 提供下拉菜单以选择图形的颜色模式
  • Blackboard 切换 Blackboard 的可见性。
  • GraphInspector 切换 GraphInspector 的可见性。
  • MainPreview 切换 MainPreview 的可见性。

工作空间

工作空间是创建节点网络的地方。 要在工作空间中导航,可按住 Alt 和鼠标左键,使用滚轮进行平移和缩放。

可按住鼠标左键并拖动以使用选取框选择多个节点。还有各种快捷键可用于改善工作流程。

热键WindowsOSX描述
剪切Ctrl + XCommand + X将选定的节点剪切到剪贴板
复制Ctrl + CCommand + C将选定的节点复制到剪贴板
粘贴Ctrl + VCommand + V粘贴剪贴板中的节点
焦点FF将工作空间聚焦在所有或选定的节点
创建节点空格键空格键打开 Create Node Menu

上下文菜单

在工作空间内单击右键将打开上下文菜单。请注意,右键单击工作空间中的某一项(例如节点)将打开该项的上下文菜单,而不是工作空间。

描述
创建节点打开 Create Node Menu
CreateSticky Note 在图形上创建一个新的即时贴。
CollapseAll Previews 折叠所有节点上的预览
剪切将选定的节点剪切到剪贴板
复制将选定的节点复制到剪贴板
粘贴粘贴剪贴板中的节点
Delete删除选定的节点
Duplicate复制选定的节点
Select / Unused Nodes从主栈选择图形中所有对最终着色器输出没有贡献的节点
View / Collapse Ports折叠所有选定节点上未使用的端口
View / Expand Ports展开所有选定节点上未使用的端口
View / Collapse Previews折叠所有选定节点上的预览
View / Expand Previews展开所有选定节点上的预览
Precision / Inherit将所有选定节点的精度设置为 Inherit
Precision / Float将所有选定节点的精度设置为 Float
Precision / Half将所有选定节点的精度设置为 Half