The Scriptable Render Pipeline (SRP) is an alternative to the Unity built-in pipeline. With the SRP, you can control and tailor rendering via C# scripts. This way, you can either slightly modify or completely build and customize the render pipeline to your needs.
SRP 提供比内置 Unity 渲染管线更多的控制粒度和自定义选项。您可以根据自己的具体需求使用其中一个预先构建的 SRP。
Using an SRP is different from using the built-in Unity render pipeline. For example, the pre-built SRPs come with a new Shader library, because the built-in Unity Shaders do not work with SRPs.
注意:这是一个预览功能,将来可能会更改。使用此功能的任何脚本都可能需要在以后的发行版中进行更新。在该功能尚未变为正式版之前,请勿在大规模生产环境中依赖此功能。
Unity 已经构建了两个使用 SRP 框架的可编程渲染管线,分别是:高清渲染管线 (HDRP) 和轻量级渲染管线 (LWRP)。每个渲染管线都针对一组特定的用例情形和硬件需求。预先构建的渲染管线可作为新项目的模板。
Both of these render pipelines are delivered as packages, and include the Shader Graph and Post Processing packages.
Note: Projects made using HDRP are not compatible with the Lightweight Render Pipeline or the built-in Unity rendering pipeline. Before you start development, you must decide which render pipeline to use in your Project.
HDRP 针对高端硬件,如游戏主机和 PC。使用 HDRP 可在严苛的条件下获得逼真的图形。HDRP 使用计算着色器 (Compute Shader) 技术,因此需要兼容的 GPU 硬件。
HDRP 可以用于 AAA 级高品质游戏、汽车演示、建筑应用以及任何高清图形优先于性能的应用。HDRP 使用基于物理的光照和材质,并且支持前向渲染和延迟渲染。
高清渲染管线在单个模板中提供。
有关 HDRP 的更多信息,请参阅 SRP GitHub Wiki 上的 HDRP 概述
可以在广泛的硬件上使用 LWRP。这项技术可扩展到移动平台,还可以将其用于高端游戏主机和 PC。可以实现高质量的快速渲染。LWRP 使用简化的、基于物理的光照和材质。
LWRP 使用单通道前向渲染。使用此管线可在多个平台上获得优化的实时性能。
可通过两个模板(LWRP 和 LWRP-VR)创建轻量级渲染管线。LWRP-VR 具有预先启用的专用于 VR 的设置。
Note: Built-in and custom Lit Shaders do not work with the Lightweight Render Pipeline. Instead, LWRP has a new set of standard shaders. If you upgrade a current Project to LWRP, you can upgrade built-in shaders to the new ones.
Fore more information on LWRP, see the LWRP overview on the SRP GitHub Wiki.
有几种不同的方法来安装 SRP、HDRP 和 LWRP: 如果想在新的或当前的项目中使用某个预先构建的 SRP,请继续阅读本节。如果您是高级用户,希望直接修改 SRP 脚本,请参阅创建自定义 SRP。
如果要在新项目中使用 HDRP 或 LWRP,并且不需要自定义渲染管线,则可以使用模板创建新项目。
要使用模板创建项目,请执行以下操作:
1.打开 Unity。在主页上,单击 New 启动一个新项目。 2.在 Template 下,选择其中一个渲染管线模板。 3.单击 Create Project。Unity 会自动为您创建一个新项目,并具备所含内置管线的所有功能。
有关使用模板的更多信息,请参阅项目模板。
您可以通过 Package Manager 系统将最新版本的 HDRP、LWRP 或 SRP 下载并安装到现有项目中。
从现有项目中切换到 SRP 会消耗大量时间和资源。HDRP、LWRP 和自定义 SRP 都使用自定义着色器。它们与 Unity 的内置着色器不兼容。必须手动更改或转换许多元素。一种替代的方案是考虑使用您选择的 SRP 来启动新项目。
要将某个 SRP 安装到现有项目中,请执行以下操作:
1.在 Unity 中,打开您的项目。 2. In the Unity menu bar, go to Window > Package Manager to open the Package Manager window. 3.选择 All 选项卡。此选项卡显示当前运行的 Unity 版本的可用资源包列表。 4.从包列表中选择要使用的渲染管线。在该窗口的右上角,单击 Install。这会将渲染管线直接安装到项目中。
Before you can use either of the pre-built render pipelines, you must create a Render Pipeline Asset and add it to your Project settings. The following sections explain how to create the SRP Asset and how to add it to a HDRP or LWRP.
To properly use your chosen SRP, you must create a Scriptable Render Pipeline Asset.
The Scriptable Render Pipeline Asset controls the global rendering quality settings of your Project and creates the rendering pipeline instance. The rendering pipeline instance contains intermediate resources and the render pipeline implementation.
可以创建多个管线资源来存储不同平台或不同测试环境的设置。
要创建渲染管线资源,请执行以下操作:
1.在 Editor 中,选择 Project 窗口,然后导航到 Scriptable Render Pipeline 文件夹外部的目录。 2.在 Project 窗口中单击右键,然后选择 Create > Render Pipeline。 3.根据需求选择 High Definition 或 Lightweight。单击 Render Pipeline/Pipeline Asset。
要使用 HDRP,必须按如下所述编辑项目的 Player 和 Graphics 设置:
提示:务必将高清渲染管线资源存储在 Scriptable Render Pipeline 文件夹的外部。这样可以确保在合并 SRP GitHub 代码仓库中的新更改时不会丢失 HDRP 设置。
要使用 LWRP,必须按如下所述编辑项目的 Graphics 设置:
1.在 Project 窗口中,导航到 Scriptable Render Pipeline 文件夹外部的目录。 2.右键单击 Project 窗口,然后选择 Create > Render Pipeline > Lightweight > Pipeline Asset。 3. Navigate to Edit > Project Settings > Graphics. 4. In the _Render Pipeline Settings field, add the Lightweight Render Pipeline Asset you created earlier.
Tip: Always store your new Render Pipeline Asset outside of the Scriptable Render Pipeline folder. This ensures that your Lightweight settings are not lost when merging new changes from the SRP GitHub repository.
可编程渲染管线在 GitHub 中作为开源项目提供。您可以克隆 SRP 并在本地版本中进行修改。
要为新的或现有的 Unity 项目配置本地脚本文件,请执行以下操作:
1.创建 SRP 代码仓库的克隆体。将克隆体放在项目目录的根目录中(_Assets_ 文件夹旁边)。有关克隆代码仓库的信息,请参阅 GitHub 中有关克隆代码仓库 (Cloning a repository) 的帮助。
2.签出与您的 Unity 版本兼容的分支。使用 git checkout
命令,并键入分支名称。
3.使用 git submodule update --init
命令查找并初始化与 SRP 相关的所有子模块。
4.在项目清单中,更新 dependencies
以便这些依赖项指向 SRP 包。要了解与项目清单相关的更多信息,请参阅 Package Manager 文档。您的脚本应该如以下示例所示:
```
{
"dependencies": {
"com.unity.postprocessing": "file:../ScriptableRenderPipeline/com.unity.postprocessing",
"com.unity.render-pipelines.core": "file:../ScriptableRenderPipeline/com.unity.render-pipelines.core",
"com.unity.shadergraph": "file:../ScriptableRenderPipeline/com.unity.shadergraph",
"com.unity.render-pipelines.lightweight": "file:../ScriptableRenderPipeline/com.unity.render-pipelines.lightweight"
}
}
```
5.在 Unity 中,打开您的项目。您的包现在已在本地安装。在集成开发环境中打开项目解决方案时,可以直接调试和修改脚本。