我的第一个 Shader Graph
在开始之前,请确保您的项目设置正确,并且图形加载正确。有关更多信息,请参阅开始使用 Shader Graph。
创建新的图形
使用 Project Browser 在您的项目中创建一个新的 Shader Graph 资源。Create > Shaders 将显示各种创建选项。
Blank Shader Graph 将创建一个未选择活动目标 or block nodes的 Shader Graph。您需要通过 Graph Settings 菜单选择一个目标后继续操作。
某些集成(如渲染管线)也可以为 Shader Graph 提供预配置的选项。例如,Universal > Lit 创建并打开一个 Shader Graph。
创建新的节点
使用 Create Node 菜单创建新的节点。打开菜单有两种方式:
- 右键单击,然后从上下文菜单中选择 Create Node。
- 按空格键。
在菜单中,您可以在搜索栏中键入内容查找特定节点,或浏览库中的所有节点。在本例中,我们将创建一个 Color 节点。首先,在 Create Node 菜单的搜索栏中输入 "color"。然后,单击 Color 或突出显示 Color,然后按 Enter 创建一个 Color 节点。
连接节点
要构建图形,需要将节点连接在一起。为此,请单击一个节点的 Output Slot,然后将该连接拖到另一个节点的 Input Slot。
首先,将 Color 节点连接到 Base Color block of our Fragment Stack。
更改节点输出
请注意,连接更新了主预览,并且 Main Preview 中的 3D 对象现在是黑色,这是 Color 节点中指定的颜色。您可以单击该节点中的颜色栏,然后使用拾色器更改颜色。在节点上所做的任何更改都会实时更新 Main Preview 中的对象。
例如,如果您选择红色,则 3D 对象会立即反映此更改。
保存图形
目前,Shader Graphs 不会自动保存。有两种方法可以保存更改:
- 单击窗口左上角的 Save Asset 按钮。
- 关闭图形。如果 Unity 检测到任何未保存的更改,则会出现一个弹出窗口,询问您是否要保存这些更改。
创建材质
保存图形后,使用着色器创建新的材质。创建新材质的过程以及为其分配一个 Shader Graph 着色器的操作与常规着色器相同。在主菜单或 Project View 上下文菜单中,选择 Assets > Create > Material。选择您刚刚创建的材质。在其 Inspector 窗口中,选择 Shader 下拉菜单,单击 Shader Graphs,然后选择要应用于该材质的 Shader Graph 着色器。
您也可以右键单击 Shader Graph 着色器,然后选择 Create > Material。此方法会自动将该 Shader Graph 着色器分配给新创建的材质。
将材质放入场景中
现在您已将着色器分配给材质,可以将其应用于场景中的对象。将材质拖放到场景中的对象上。或者,在对象的 Inspector 窗口中,找到 Mesh Renderer > Materials,并将材质应用到 Element。
使用属性编辑图形
您还可以使用属性来更改着色器的外观。属性是材质的 Inspector 中可见的选项,让其他人无需打开 Shader Graph 即可更改着色器中的设置。
要创建新属性,请使用 Blackboard 右上角的添加 (+) 按钮,然后选择要创建的属性类型。在本例中,我们将选择 Color。
这会在 Blackboard 中添加一个新属性,在选中该属性时,Graph Inspector 的 Node Settings 选项卡列出以下选项。
选项 | 描述 |
---|---|
属性按钮 | 要更改属性的名称,右键单击 Blackboard 中的按钮,选择 Rename,然后输入新的属性名称。要删除该属性,右键单击该按钮,然后选择 Delete。 |
Exposed | 启用此复选框可使该属性在材质的 Inspector 中可见。 |
Reference | 出现在 C# 脚本中的属性的名称。要更改 Reference 名称,输入一个新字符串。 |
Default | 属性的默认值。 |
Mode | 属性的模式。每个属性都有不同的模式。对于 Color,您可以选择 Default 或者 HDR。 |
Precision | 属性的默认精度。 |
Hybrid Instanced | 一项实验性功能,可在使用 Hybrid DOTS 渲染器时实例化此属性。 |
有两种方法可以在图形中引用属性:
- 将该属性从 Blackboard 拖到图形上。
- 右键单击,然后选择 Create Node。该属性在 Properties 类别中列出。
尝试将属性连接到 Base Color 块。对象立即变为黑色。
保存您的图形,然后返回到材质的 Inspector。这些属性将显示在 Inspector 中。您对 Inspector 中的属性所做的任何更改都会影响使用此材质的所有对象。
更多教程
较旧的教程使用带有主节点的过时 Shader Graph 格式。使用较旧的教程时,请参考升级指南 for tips on how to convert the master node to a Master Stack。
要继续探索如何使用 Shader Graph 创作着色器,请查看以下博客文章:
- 移动艺术:使用 Shader Graph 创建动画材质
- Shader Graph 更新和一个示例项目
- Shader Graph 中的自定义光照:使用 Unity 2019 扩展图形
- Unity 2018.3 Shader Graph 更新:光照主节点
- 使用 Shader Graph 创建交互式顶点效果
- Shader Graph 简介:使用可视化编辑器构建着色器
您还可以访问 Unity YouTube Channel并查找 Shader Graph 视频教程,或前往我们的用户论坛查找有关 Shader Graph 的最新信息和对话。