Version: 2018.2
着色器:顶点和片元程序
物理系统

可编程渲染管线

可编程渲染管线 (Scriptable Render Pipeline, SRP) 是 Unity 内置渲染管线的替代方案。 使用 SRP 可以通过 C# 脚本控制和定制渲染方式。这样,您可以稍微修改或完全构建并自定义渲染管线以满足您的需求。

SRP 提供比内置 Unity 渲染管线更多的控制粒度和自定义选项。您可以根据自己的具体需求使用其中一个预先构建的 SRP。

使用 SRP 不同于使用内置的 Unity 渲染管线。例如,预先构建的 SRP 附带了一个新的着色器库。这是因为内置渲染管线中的光照着色器以及自定义光照着色器不适用于 SRP。可以将内置光照着色器升级到 LWRP 和 HDRP。

注意:这是一个预览功能,将来可能会更改。使用此功能的任何脚本都可能需要在以后的发行版中进行更新。在该功能尚未变为正式版之前,请勿在大规模生产环境中依赖此功能。

Pre-built SRPs

Unity 已经构建了两个使用 SRP 框架的可编程渲染管线,分别是:高清渲染管线 (HDRP) 和轻量级渲染管线 (LWRP)。每个渲染管线都针对一组特定的用例情形和硬件需求。预先构建的渲染管线可作为新项目的模板。

这两个渲染管线都是通过 Unity 中的 Package Manager 窗口以包的形式提供。两者都包含了 Shader Graph后期处理 (Post-processing) 包。

注意:LWRP 和 HDRP 不能彼此兼容,并且它们都不兼容内置渲染管线。在开始开发之前,必须决定在项目中使用哪个渲染管线。

High Definition Render Pipeline

HDRP 针对高端硬件,如游戏主机和 PC。使用 HDRP 可在严苛的条件下获得逼真的图形。HDRP 使用计算着色器 (Compute Shader) 技术,因此需要兼容的 GPU 硬件。

HDRP 可以用于 AAA 级高品质游戏、汽车演示、建筑应用以及任何高清图形优先于性能的应用。HDRP 使用基于物理的光照和材质,并且支持前向渲染和延迟渲染。

高清渲染管线在单个模板中提供。

有关 HDRP 的更多信息,请参阅 SRP GitHub Wiki 上的 HDRP 概述

Lightweight Render Pipeline

可以在广泛的硬件上使用 LWRP。这项技术可扩展到移动平台,还可以将其用于高端游戏主机和 PC。可以实现高质量的快速渲染。LWRP 使用简化的、基于物理的光照和材质。

LWRP 使用单通道前向渲染。使用此管线可在多个平台上获得优化的实时性能。

可通过两个模板(LWRP 和 LWRP-VR)创建轻量级渲染管线。LWRP-VR 具有预先启用的专用于 VR 的设置。

注意:内置和自定义的光照着色器不适用于轻量级渲染管线。相反,LWRP 有一组新的标准着色器。如果将当前项目升级到 LWRP,可以将内置着色器升级到新的着色器。

要查看 LWRP 的最新文档,请在 Unity 中选择 Package Manager,导航到轻量级渲染管线 (Lightweight Render Pipeline) 包,然后单击 View Documentation

Setting up a Scriptable Render Pipeline

有几种不同的方法来安装 SRP、HDRP 和 LWRP: 如果想在新的或当前的项目中使用某个预先构建的 SRP,请继续阅读本节。如果您是高级用户,希望直接修改 SRP 脚本,请参阅创建自定义 SRP

Using a pre-built SRP with a new Project

如果要在新项目中使用 HDRP 或 LWRP,并且不需要自定义渲染管线,则可以使用模板创建新项目。

要使用模板创建项目,请执行以下操作:

1.打开 Unity。在主页上,单击 New 启动一个新项目。 2.在 Template 下,选择其中一个渲染管线模板。 3.单击 Create Project。Unity 会自动为您创建一个新项目,并具备所含内置管线的所有功能。

有关使用模板的更多信息,请参阅项目模板

Installing the latest SRP into an existing Project

您可以通过 Package Manager 系统将最新版本的 HDRP、LWRP 或 SRP 下载并安装到现有项目中。

从现有项目中切换到 SRP 会消耗大量时间和资源。HDRP、LWRP 和自定义 SRP 都使用自定义着色器。它们与 Unity 的内置着色器不兼容。必须手动更改或转换许多元素。一种替代的方案是考虑使用您选择的 SRP 来启动新项目。

要将某个 SRP 安装到现有项目中,请执行以下操作:

1.在 Unity 中,打开您的项目。 2.在 Unity 菜单栏中,选择 Window > Package Manager 以打开 Package Manager 窗口。 3.选择 All 选项卡。此选项卡显示当前运行的 Unity 版本的可用资源包列表。 4.从包列表中选择要使用的渲染管线。在该窗口的右上角,单击 Install。这会将渲染管线直接安装到项目中。

Configuring and using a pre-built render pipeline

要使用任何预先构建的渲染管线,_必须_首先创建一个渲染管线资源并将其添加到项目设置中。下面的部分将介绍如何创建 SRP 资源以及如何将其添加到 HDRP 或 LWRP 中。

Creating Scriptable Render Pipeline Assets

要正确使用所选的 SRP,_必须_创建一个可编程渲染管线资源。

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 DefinitionLightweight。单击 Render Pipeline/Pipeline Asset

注意:HDRP 和 LWRP 互不兼容,因为它们使用不同的光照模型。您的项目只能使用其中一个。但是,可以对同一渲染管线使用不同资源。这意味着可以使用不同资源来测试不同的设置,为此应调换资源,而不是更改各项设置。

Configuring and using HDRP

要使用 HDRP,必须按如下所述编辑项目的 PlayerGraphics 设置:

  1. In the Editor, go to Edit > Project Settings > Player. In the Color Space dropdown, select Linear. HDRP does not support Gamma lighting. 2.在 Project 窗口中,导航到 Scriptable Render Pipeline 文件夹外部的目录。 3.右键单击 Project 窗口,然后选择 Create > Render Pipeline > High Definition > Render Pipeline
  2. Navigate to Edit > Project Settings > Graphics. 5.在 Render Pipeline Settings 字段中,添加先前创建的高清渲染管线资源。

提示:务必将高清渲染管线资源存储在 Scriptable Render Pipeline 文件夹的外部。这样可以确保在合并 SRP GitHub 代码仓库中的新更改时不会丢失 HDRP 设置。

Configuring and using LWRP

要使用 LWRP,必须按如下所述编辑项目的 Graphics 设置:

1.在 Project 窗口中,导航到 Scriptable Render Pipeline 文件夹外部的目录。 2.右键单击 Project 窗口,然后选择 Create > Render Pipeline > Lightweight > Pipeline Asset。 3. Navigate to Edit > Project Settings > Graphics. 4.在 Render Pipeline Settings 字段中,添加先前创建的轻量级渲染管线资源。

提示:务必将新的轻量级渲染管线资源存储在 Scriptable Render Pipeline 文件夹的外部。这样可以确保在合并 SRP GitHub 代码仓库中的新更改时不会丢失轻量级设置。

创建自定义 SRP

可编程渲染管线在 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 中,打开您的项目。您的包现在已在本地安装。在集成开发环境中打开项目解决方案时,可以直接调试和修改脚本。


  • 2018–12–12 页面已修订并进行了编辑审查

  • Scriptable Render Pipline added in 2018.1 NewIn20181

着色器:顶点和片元程序
物理系统