[Render] 适用于高级Unity创作者的通用渲染管线[9] - 与URP兼容的其他工具

11 篇文章 4 订阅

RuntimeMapMaker3D-Pro在这里插入图片描述


英文原文:https://resources.unity.com/games/introduction-universal-render-pipeline-for-advanced-unity-creators?ungated=true

  使用 URP 的另一个好处是它与 Unity 最新的创作工具兼容,这些工具将复杂的创作任务带到了技术艺术家的手中。 本章解开如何使用 Shader Graph 创建着色器,以及如何使用 Visual Effects (VFX) Graph 创建粒子效果。

Shader Graph

  Shader Graph 为艺术家的工作流程带来了自定义着色器。 当您使用 URP 模板启动项目或导入 URP 包时,将包含 Shader Graph 工具。

  Covering Shader Graph 需要一个单独的指南,但让我们通过从 Lighting 章节创建 Light Halo 着色器来回顾一些基本但关键的步骤。

  1. 在 Project 窗口中右键单击,找到合适的文件夹,然后选择 Create > Shader Graph > URP > Unlit Shader Graph。 在本例中,选择 Unlit。 将新资产命名为 FresnelAlpha。
    在这里插入图片描述

  2. 双击新的 Shader Graph Asset 以启动 Shader Graph 编辑器。
    在这里插入图片描述
    如果您熟悉着色器,那么您会认出 Vertex 和 Fragment 节点。 默认情况下,此着色器将确保使用它的材质的任何模型使用 Vertex 节点正确放置在 Camera 视图中,并且使用 Fragment 节点将每个像素设置为灰色。

  3. 此着色器将设置对象的 Alpha 透明度。 因此它需要应用于透明队列。 将 Graph Inspector > Graph Settings > Surface Type 更改为透明。 您将看到 Fragment 节点现在具有 Alpha 输入和 Base Color。

在这里插入图片描述
4. 将属性添加到着色器。 例如,将Color添加为Color,将 Power 和 Strength 添加为浮点值。
在这里插入图片描述
5. 使用 Graph Inspector > Node Settings > Default 设置默认值。 将颜色设置为白色,功率设置为 4,强度设置为 1。

在这里插入图片描述
6. Shader Graph 通过将节点连接在一起来发挥作用。 一个节点将有一个或多个输入和一个输出。 要添加节点,请右键单击并在顶部的“搜索”面板中选择“创建节点”,然后输入 Fre。 结果将显示一个菲涅耳效应节点。

在这里插入图片描述
7. 节点显示其效果的预览。 请注意,菲涅耳效应在边缘处是明亮的。 该值是视图方向和法线方向之间的差值——对于球体,这在边缘处最大。

alpha 值应该在边缘最低。 您可以使用 One Minus 节点翻转结果。 为此,请单击创建节点并输入 One。 选择减一节点。 现在从 Fresnel Effect 节点上的 Out(1) 拖动到 One Minus 节点上的 In(1)。 1 表示值类型是单个浮点数。 如果它是 3,那么它将是一个具有三个分量的向量。

节点应该像这样连接:

在这里插入图片描述
8. 下面我们来看看如何控制渐变的大小和整体的透明度。 使用 Power 节点来调整渐变的大小。 创建一个电源节点并将 One Minus Out(1) 连接到Power A(1)。 将 Power 属性拖到图形上并将其连接到 Power B(1)。 该图现在应如下所示:

在这里插入图片描述
9. 使用 Multiply 节点控制整体透明度。 创建它并将 Power Out(1) 连接到 Multiply A(1)。 将强度属性拖到图形上并将其连接到乘 B(1)。 然后将 Multiply Out(1) 连接到 Fragment Alpha(1) 并将 Color(4) 属性拖到图形并将其连接到 Fragment Base Color(3)。

请注意,属性 Color 包含一个四分量向量,而 Base Color 是一个三分量向量。 Shader Graph 会将 Color 的前三个分量映射到 Base Color 向量。

在这里插入图片描述
10. 保存资产并创建新材质。 将此着色器分配给位于 Shader Graphs/FresnelAlpha 中的新材质。

在这里插入图片描述
11. 现在您可以将材质应用于对象,控制其在边缘的可见性。

在这里插入图片描述
着色器应用于以Point light 为父级的球体,以在悬挂灯周围提供光晕效果

相关链接:

  • 这篇博文通过示例项目和一些高级建议介绍了 Shader Graph 流程。
  • 查看 Unity 网站上的 Shader Graph

VFX Graph

  视觉效果 (VFX) 图表使您能够使用艺术家友好、基于节点的图表创建无数粒子效果。 使用 VFX Graph 为您的项目添加火焰、烟雾、薄雾、火花、魔法球和许多其他效果。

  任何包含使用 VFX Graph 创建的效果的游戏的目标设备都必须具有计算能力,因为 VFX Graph 使用在 GPU 上运行的计算着色器来确保最佳性能。 测试您的代码并包含非计算回退,并谨慎使用 VFX Graph 来处理针对低端移动设备的游戏。

为了更好地了解 VFX Graph,让我们完成创建烟雾效果的步骤:

  1. VFX Graph 可以使用Package Manager 作为包下载。

在这里插入图片描述
2. 安装 VFX Graph 后,右键单击 Project 窗口 > Assets 文件夹会出现一个新选项。 选择 Create > Visual Effects > Visual Effect Graph,然后将新资源命名为 Smoke。

在这里插入图片描述

  1. 创建一个空的 GameObject 并在 Hierarchy 窗口中选择它。 在检查器中,选择Add Component > Effects > Visual Effect.

在这里插入图片描述
或者,您可以将视觉效果图资源添加到编辑器中的层次结构视图。 这将添加带有资产的组件,允许您跳过第 3 步和第 4 步。

  1. 使用 Component Settings 面板选择 Smoke VFX Graph 作为 Asset Template。
    在这里插入图片描述
  2. 现在您可以编辑 VFX Graph。 双击以启动 Visual Effect Graph 窗口。 在那里,您会发现 Spawn、Initialize、Update 和 Output Context 节点已经预先填充。

  您将使用包含动画烟雾精灵的 Atlas 形式的纹理。 8x8 网格中的一系列 64 张图像将充当单个粒子的源。 在任何单帧中,单个粒子将仅显示网格中的一个图像。 在渲染每一帧时,它将以预定义的速率循环显示图像。 这是烟雾Sprite图集:

在这里插入图片描述
6. 单击“+”按钮并添加颜色属性。 这将允许用户在 Inspector 中操纵烟雾的颜色。

在这里插入图片描述
7. 让我们看看 Spawn 块。 默认的 Spawn 块带有一个 Constant Spawn Rate 节点。 将此设置为 20。

在这里插入图片描述
8. 下一个块 Initialize 定义了在粒子首次创建时如何处理它。 移除 Set Lifetime Random 节点。 然后添加一个Set Tex Index,并将其设置为0到64之间的随机值,这样每个烟雾粒子都有不同的外观。 这很重要,因为粒子显示之前显示的 Smoke Sprite 表中的图像,并且您希望第一个索引为 0。

  然后添加一个设置为 1.5 秒的 Set Lifetime 节点。 要添加粒子发射速度的一些变化,请使用 Set Velocity Random 节点。 将 A 设置为 -0.1、0.4、-0.1,将 B 设置为 0.1、1、0.1。 要将粒子的颜色设置为使 Sprite 变亮或变暗,请添加一个 Color 节点并将创建的 Color 属性拖动到其输入。
在这里插入图片描述
9. 下一个块,Update,定义每次帧更新时发生的事情。
默认情况下,它显示为空块,但它实际上包含一些隐式隐藏块,如果选择了Update,则可以在 Inspector 中禁用这些隐藏块。

回想一下,您正在为每个粒子的图像使用 Sprite 表。 在 VFX Graph 中,这意味着您使用的是Flipbook.。 添加一个 Flipbook Player 节点,将其 Mode 设置为 Constant,并将 Frame Rate 设置为 16。它将在 Flipbook 中以每秒 16 帧变化的速度循环播放连续帧。
在这里插入图片描述
10. 接下来,设置粒子的最终输出。 将 UV 模式设置为 Flipbook(或 Flipbook Blend 以实现帧之间更平滑的过渡),将 Flipbook Layout 设置为 Texture 2D。 使用 Sprite 表,将 Flipbook Size 设置为 8x8,并将 Main Texture 设置为此纹理。 将 Set Color Over Life 替换为 Set Alpha Over Life。 默认曲线将在其生命周期内将粒子混入和混出。

在这里插入图片描述
11. 选择附有此 VFX Graph 的 GameObject。 在场景视图中,应该可以看到一个面板,您可以使用该面板在运行时之外演示效果。 如果您没有看到它,请确保用于可视化粒子系统的切换开关已打开。
在这里插入图片描述
这是最终烟雾效果的图像:

在这里插入图片描述

2D 渲染器和 2D 灯光

  如果您正在开发 2D 游戏,您会很高兴知道有一个专用的 URP 2D 渲染器。 最简单的入门方法是使用 Unity Hub 中的 2D URP 模板。 此模板可确保您的项目具有通过a Project Settings > Graphics > Scriptable Render Pipeline Settings分配的 URP 2D 渲染器。 所有经过验证和预编译的 2D 包都安装了 2D URP 模板和针对 2D 项目优化的默认设置。 这也确保了项目加载速度比手动安装所有包更快。
在这里插入图片描述
  如果要升级现有项目,则需要在项目的 Assets 文件夹中找到合适的文件夹。 右键单击并选择Create > Rendering > URP
Asset (with 2D Renderer)。 给它一个名字,然后使用 Project Settings > Graphics > Scriptable Render Pipeline Settings 选择它。 在场景视图中,请务必在编辑时选择 2D 按钮。

在这里插入图片描述
如果您正在更新现有项目,那么您可能会发现切换到 URP 2D 渲染器会出现典型的洋红色渲染错误。

在这里插入图片描述
使用 URP 2D 渲染器更新现有项目可能会导致场景中出现渲染错误。

  幸运的是,Window > Rendering > Render Pipeline Converter 已经为您提供了帮助。 选择 Convert Built-in to 2D (URP) 并单击 Material and Material Reference Upgrade 面板。 然后单击 Initialize Converters,然后单击 Convert Assets。 如果您仍然有洋红色Sprite,您可能需要手动替换某些材质中的着色器。 选择下表中的着色器之一。

在这里插入图片描述
在这里插入图片描述
  URP 2D 渲染器提供 2D 灯光。 这些提供了增强的性能和灵活性。 使用新工具,您可以创建更身临其境的体验,并通过使用烘焙灯光来创建新的游戏可能性,从而节省准备不同 Sprite 变体的时间。 如果您已迁移现有项目,则场景中将没有 URP 2D 灯光。 如果您的 Sprite 使用 Sprite-Lit-Default 着色器,您可能会惊讶地看到光照渲染。 但是在没有灯光的情况下,您会为场景分配一个默认的全局灯光,以获得无光照的外观。

在这里插入图片描述
场景中没有灯光,渲染默认为 Unlit。

使用 Hierarchy 窗口添加灯光。 右键单击并选择Create > Light > Global Light 2D。

在这里插入图片描述
现在您可以调整设置、颜色、强度以及它们影响的排序层。

在这里插入图片描述
在 Global Light 2D Settings 中,角色使用 Unlit 着色器。

2D URP 框架包括四种灯光类型:
  • Sprite:使用 Sprite 来控制照明级别。
  • Freeform:用于创建多边形光。
  • Spot:提供对所选灯光的角度和方向的出色控制。 将其用作点光源。 默认情况下,内锥和外锥跨度为 360 度。 您还可以调整内半径和外半径,并决定灯光是否投射阴影,以及这些阴影的强度。
  • Global:点亮目标排序层上的所有对象。

在这里插入图片描述
如果 Sprite 投射阴影,则需要添加 Shadow Caster 2D 组件。

在这里插入图片描述
URP 2D 渲染器提供了创建一流 2D 游戏所需的所有工具,即使在低端硬件上也能表现出色

在这里插入图片描述
来自 Unity 2D 演示 Dragon Crashers 的图像; Unity 的 2D 开发电子书、2D 游戏美术、动画和美术灯光,由 Dragon Crashers 的创意总监撰写。

相关链接:

  • Unity 2D 演示 Dragon Crasers 可在 Asset Store 上找到。

  • 面向艺术家的免费电子书、2D 游戏美术、动画和灯光,是为打算制作商业 2D 游戏的 Unity 开发人员和艺术家创建的高级开发指南。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值