演示:绘制调用与 SRP Batcher

Tutorial

intermediate

+0XP

60 mins

(9)

Unity Technologies

演示:绘制调用与 SRP Batcher

使用内置的通用渲染管线时,你还可以获得 Unity 的可编程渲染管线批处理程序。在本演示中,你将有机会试用 SRP Batcher,并比较启用该功能前后的性能。

1. SRP Batcher

在上一个教程中,你了解了如何在 Unity 中使用内置的通用渲染管线 (URP) 着色器,以确保获得最佳的移动性能。使用内置着色器的好处之一是可以访问 Unity 的 SRP(可编程渲染管线)Batcher。在本教程中,你将有机会评估该批处理程序带来的性能提升。

2. 开始之前

请在此处下载包含示例演示的课程项目。弹出提示时,单击 Shaders and Materials Demo,或在 Project 视图中打开示例场景 (Assets > 3 Shaders & Materials > Scene > Scene 3)。下载并打开后,可以在编辑器中进入运行模式,也可以将该场景构建到移动设备上以在性能分析器中进行性能分析。

3. 要观察的内容

示例场景包含几个移动部分 - 一个动画骑士,平面上的几片草,以及使用透明着色器模拟火焰的粒子效果,以便用户能够看到背景中的骑士。

所有着色器都是使用 Shader Graph(URP 中内置的基于节点的着色器工具)实现的。因此,URP 功能也支持使用 Shader Graph 创建的大多数着色器。SRP Batcher 就是这样的一个功能。

你可以在所提供的 UniversalRenderPipelineAsset (Assets > Content > Settings) 中找到打开和关闭 SRP Batcher 的选项。SRP Batcher 开关位于 Advanced 下面。

当开启 SRP Batcher 时,观察 Statistics 窗口及 Profiler 视图中 Rendering 部分下的 Vertices 图。除了运行帧率提升以外,所处理的三角形和顶点数量也大幅减少。由于我们的对象使用了与 URP 兼容的着色器,渲染管线会自动批处理所有相关的几何体数据,以减少处理数据量。

你还可以暂停游戏,并在开启和不开启 SRP Batcher 的情况下启用帧调试器。在开启 SRP Batcher 后,你会发现绘制调用次数明显减少。

4. 总结

在 Unity 中,你可以轻松地微调和配置着色器及材质,用较小的性能成本换取令人震撼的视觉效果。通过通用渲染管线中提供的功能,并应用使用它们的内置着色器,你可以充分利用目标移动设备的有限资源。在下一个项目中,我们将介绍如何使用光源高效地为移动应用程序增添氛围和情绪,以及如何将光源与 URP 配合使用。

Complete this Tutorial