现已推出:使用通用渲染管线制作流行视觉效果的 12 种方法

我们的通用渲染管线 (URP) 效果新 手册 现在可以免费下载。本指南提供了 12 种流行视觉效果的配方,可应用于各种游戏、艺术风格和平台。准备好制作渲染器功能、GPU 实例化网格、贴花、体积材质等。您可以将它与 高级 Unity 创作者指南中的通用渲染管线简介 一起使用,该指南为使用内置渲染管线开发项目的创作者提供了有关如何使用 URP 的大量信息。
以下是您将在书中找到的食谱的简要概述。
渲染器功能为您提供了充足的机会来尝试灯光和效果。本指南重点介绍模板,仅使用最少的必需代码。如果您与示例项目一起工作,请在编辑器中通过 “场景”>“渲染器功能”>“SmallRoom – Stencil” 打开示例场景。
示例项目使用了桌子上方的放大镜示例,目的是转换放大镜的镜头,使您能够像 X 射线图像一样透过桌子看到东西。该方法使用了图层蒙版、着色器和渲染器功能的组合。
渲染器功能是实现戏剧性自定义效果或游戏可能性的绝佳方式。

CPU 和 GPU 之间的数据交换是渲染管道的主要瓶颈。如果您有一个需要使用相同几何图形和材质多次渲染的模型,那么 Unity 提供了一些很好的工具来实现这一点,这些工具在手册的实例章节中有介绍。
此配方使用一片长满青草的田野来说明 实例化的概念。它使用 SRP Batcher、GPU 实例、RenderMeshPrimitives 和 ComputeBuffers。

卡通着色器和轮廓着色器通常一起使用,但它们却带来两个不同的挑战。卡通着色器采用使用 URP 兼容 Lit 着色器创建的冷却器,并增加输出而不是允许连续渐变,因此需要自定义照明模型。
本配方中的示例使用了 Shader Graph。但是,Shader Graph 不支持自定义照明,因此没有可用的节点直接访问 主灯和附加灯。相反,您可以利用自定义节点来访问它们。
查看卡通和轮廓阴影配方以获取完整详细信息。

环境光遮蔽是 Unity 2020.2 中提供的一种后处理技术。此效果会使折痕、孔洞、交叉点以及彼此靠近的表面变暗。在现实世界中,这些区域往往会阻挡或遮挡环境光,从而显得更暗。
了解如何使用 URP 将实时屏幕空间环境光遮蔽 (SSAO) 效果作为渲染器功能实现。

贴花是将覆盖层插入表面的好方法。当玩家与场景互动时,它们通常用于向游戏环境添加弹孔或轮胎胎面等视觉效果。
如果您想遵循这种方法,您将使用 URP Decal Projection 属性,创建材质,甚至使用代码添加贴花。

在 Shader Graph 中创建了水配方,以使步骤更易于理解。它分为三个阶段构建:
- 创造水彩
- 移动平铺的法线贴图以将小波添加到表面
- 在顶点位置添加移动位移来创建膨胀效果
虽然此配方构成了简单水着色器的基础,但您可以使用焦散反射、折射和泡沫来增强它。
LUT Texture是制作夸张调色效果的便捷方法,可用在许多游戏类型中。 它涉及使用一个过滤器,但所采用的步骤适用于所有过滤器。

使用 URP 的照明类似于使用内置渲染管道。主要的区别在于在哪里可以找到设置。
本手册的这一章介绍了实时照明和阴影的相关方法,包括使用 GPU 渐进光照贴图器、光照探针和反射探针的烘焙和混合照明。您将学到足够的知识来制作一顿五道菜的晚餐!
关于着色器和色彩空间需要记住以下几点:在 URP 中使用照明时,您可以在 Lit Shader 和 Simple Lit Shader 之间进行选择,这在很大程度上是一个艺术决定。如果您想要逼真的渲染,则可以使用 Lit Shader,但如果您想要更具风格化的渲染,则可以使用 Simple Lit 获得出色的效果。

使用渲染器数据对象和使用 URP 的 URP 资产来设置阴影设置。您可以使用这些资产来定义阴影的保真度。

此食谱包含以下提示:主光影分辨率、阴影级联、烘焙灯等等。

当您通过单击 “窗口”>“渲染”>“照明” 面板中 的“生成照明”来 烘焙照明时,光探测器会将光数据保存在环境内的特定位置。这可以确保在环境中移动的动态物体的照明能够反映烘焙物体使用的照明水平。在较暗的区域它会变暗,在较亮的区域它会变亮。
按照这个方法,了解如何使用基于代码的方法定位光探测器以加快编辑速度,如何在场景中使用反射探测器以及如何混合它们。

屏幕空间折射使用渲染管道创建的当前不透明纹理作为源纹理将像素映射到正在渲染的模型。此方法和配方是关于变形用于对图像进行采样的 UV。
了解如何使用法线贴图创建折射效果以及如何为折射效果着色。

这是使用光线行进渲染 3D 纹理的秘诀。Unity 支持 3D 纹理,即放置在单个纹理上的网格中的图像数组,类似于纹理图集。不同之处在于每张图像的大小相同。使用 3D UV 值,您可以从图像网格中获取纹素,并使用 UV.Z 定义要使用的单个图像的行和列。
您还可以在创建 3D 纹理时使用 Houdini。3D 纹理的替代方案包括使用多层 Perlin 噪声,或使用 Unity 预烘焙可平铺噪声纹理。


Unity 提供许多免费的高级资源。正如博文开头所提到的, 面向高级 Unity 创作者的电子书《通用渲染管线简介》 是帮助经验丰富的 Unity 开发人员和技术艺术家将他们的项目从 内置渲染管线 迁移到 URP 的宝贵资源。
所有高级电子书和文章均可从 Unity 最佳实践中心获取。您还可以在 高级最佳实践 文档页面上找到电子书。
