Unity Shader Graph 节点入门

在本文中,我将了解 Shader Graph 是什么; 使用着色器图; Shader Graph的特点; 如何使用 Shader Graph 创建一个简单的着色器; 一些带有示例的有用节点; 以及在查看使用旧版本的 Shader Graph 创建的着色器时需要注意的一些事项。 有了这些信息,您应该准备好创建一些基本的 Shader Graph 节点效果!

我将为您提供一些额外的资源,您可以查看这些资源 - 这些资源可以帮助您创建和自定义您自己想要的视觉效果,而这些视觉效果在本文的范围内无法涵盖。

以下是您将学到的内容:

  • 着色器及其重要性

    • 我们可以使用着色器获得不同的效果

  • 什么是着色器图?

    • 使用 Shader Graph 需要什么?

  • 使用着色器图

    • 基本着色器图定义和术语

  • Shader Graph 窗口的七个组件

  • 有用的内置着色器图功能

  • 创建你的第一个着色器

  • 如何使用流行节点(附示例)

    • 纹理和色彩效果

    • 边缘光效

    • Dissolve effect

    • 用发射效果溶解

    • 将它们组合在一起

  • 新旧 Shader Graph 版本之间的差异

  • 其他资源

着色器及其重要性

在我进入 Shader Graph 之前,我们需要知道什么是着色器以及它们如何影响我们。

着色器是在 GPU 上运行的小程序,用于纹理映射、照明或着色对象。 屏幕上显示的所有内容(计算机程序或游戏,包括游戏机)在显示之前都会经过某种着色器。

对于大多数程序,这是在幕后自动内置的。 在 3D 建模中,通常在模型最终渲染之前将软件添加到模型中。 电影制片厂用它们来渲染电影的效果,游戏用它们来显示一切。

如果您使用 Unity,您甚至会在不知不觉中使用它们:显示的所有内容都有某种使用着色器的材质。

This image illustrates some of the different types of shaders available by default in Unity.


超过 20 万开发人员使用 LogRocket 来创造更好的数字体验 了解更多 →


现在你可能会问自己,如果 Unity 已经提供了可以使用的着色器,我们为什么还要关心着色器呢? 简单的答案是,提供的默认设置是平淡无奇的,并且不添加任何特殊的使用,例如水、全息、鬼影、发光或溶解效果,仅举几例。

我们可以通过更改设置来获得其中一些效果,例如 表面类型 ( 不透明 或 透明 )、指定 金属 或 镜面反射 、 平滑度 或添加 发射 。 问题在于它们都是静态的。 我们想要的是一些动态效果或自定义设置,我们可以使用它们来为我们的游戏或应用程序的外观添加一些润色。

我们可以使用着色器获得不同的效果

让我们来看看一些不同的着色器效果。 这些只是可能的一小部分。 图片来自互联网图片搜索“Shader Graph Unity effects”:

来自流行的 YouTube 节目频道 :

From the Unity blog:

什么是着色器图?

现在我们知道了着色器是什么,并看到了我们可以从着色器中产生的一些不同的可能效果,让我们看看如何创建这些着色器。

Shaders used to be created through code; over the years, different software companies have been adding tools that allow the creation of shaders through visual node-based systems. Unity is no different; they have given us Shader Graph.

Refer to Unity’s Shader Graph features for the highlights: “Shader Graph enables you to build shaders visually. Instead of writing code, you create and connect nodes in a graph framework. Shader Graph gives instant feedback that reflects your changes, and it’s simple enough for users who are new to shader creation.”

Shader Graph 是为艺术家设计的,但不是着色器程序员的程序员也可以使用它来轻松创建着色器。 嘿,并不是我们所有人都与拥有专门的着色器程序员/艺术家团队预算的 AAA 工作室合作。 此外,着色器可能需要大量复杂的数学和算法知识才能手动编码。

例如,在 Unity 中创建的新着色器的快照使用颜色纹理对模型进行基本照明。 这是 1685 行代码中的第 1571 到 1580 行:

使用 Shader Graph 需要什么?

Unity 记录 了使用 Shader Graph 的这些要求 :


来自 LogRocket 的更多精彩文章:

  • 不要错过 The Replay 来自 LogRocket 的精选时事通讯

  • 了解 LogRocket 的 Galileo 如何消除噪音以主动解决应用程序中的问题

  • 使用 React 的 useEffect 优化应用程序的性能

  • 之间切换 在多个 Node 版本

  • 了解如何 使用 AnimXYZ 为您的 React 应用程序制作动画

  • 探索 Tauri ,一个用于构建二进制文件的新框架

  • 比较 NestJS 与 Express.js


将 Shader Graph 与 Unity 2018.1 及更高版本中提供的任一脚本渲染管道 (SRP) 一起使用:

  • ) 高清渲染管线 (HDRP

  • ) 通用渲染管线 (URP

从 Unity 版本 2021.2 开始,您还可以将 Shader Graph 与 内置渲染管道 一起使用。

这意味着只要我们使用其中一个 SRP,我们就可以开箱即用地使用 Shader Graph。

尽管我们可以使用包管理器安装它并将其与内置渲染管道一起使用,但 Unity 继续声明, “建议将 Shader Graph 与可编写脚本的渲染管道一起使用。”

第一步是使用 URP 或 HDRP 模板在 Unity Hub 中创建一个新项目(或将其中一个 SRP 安装到现有项目中)。

使用 URP 或 HDRP 模板创建项目。

Once the scene loads, I add a capsule to my scene that I can use to display my effects with (feel free to use any 3D object that you want, to include your own model). I also create a material that I can apply my custom shader to and add it to my capsule.

Using Shader Graph

现在我们有了一个非常基本的测试场景,让我们创建一个新的 Shader Graph。 右键单击 > 创建 > 着色器图 > 要使用的 SRP > 着色器类型。

就我而言,我将使用 URP > Lit Shader Graph 。

Shader Graph 菜单将始终包含 Blank Shader Graph (一个完全空白的 Shader Graph,没有选择目标,并且没有将任何块添加到 Master Stack)和 Sub Graph (一个空白的 Sub Graph 资产,一个可重复使用的图形,可以在其他图表)选项。

每个已安装的渲染管道都应该有一个包含模板堆栈的子菜单。 就我而言,我有 URP 和内置子菜单。 该模板创建了一个新的着色器图表,其中包含带有默认块和选定目标的主堆栈。 您以后可以随时更改 Shader Graph 窗口中的设置。

现在我们已经创建了一个 Shader Graph,让我们设置我们用于此着色器的材质。

有两种方法可以做到这一点:

  1. 在材质的 Inspector Window 中(所有 Shader Graphs 都在 Shader Graph 子菜单中)  

  2. 将着色器拖放到材质上  

基本着色器图定义和术语

<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pxr007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值