此页面介绍如何从通用 渲染管线一系列将场景内容显示在屏幕上的操作。Unity 允许您选择预建的渲染管线,或编写自己的渲染管线。 更多信息
参见 术语表 (URP) 的旧版本升级到 12.0.x 版本。
有关将为内置渲染管线项目制作的资源转换为与 URP 兼容的资源的信息,请参阅页面 渲染管线转换器。
正向渲染器资源已重命名为通用渲染器资源。当您在包含 URP 12 的 Unity 编辑器中打开现有项目时,Unity 会将现有正向渲染器资源更新为通用渲染器资源。
通用渲染器资源包含属性 渲染路径渲染管线用于渲染图形的技术。选择不同的渲染路径会影响灯光和着色的计算方式。一些渲染路径比其他渲染路径更适合不同的平台和硬件。 更多信息
参见 术语表,它允许您选择正向或延迟渲染路径。
方法 ClearFlag.Depth
不再隐式清除 模板缓冲区一个存储每个像素 8 位值的内存存储。在 Unity 中,您可以使用模板缓冲区标记像素,然后仅渲染通过模板操作的像素。 更多信息
参见 术语表。请使用新方法 ClearFlag.Stencil
。
URP 12 实施了 渲染管线转换器 功能。此功能取代了以前在 编辑 > 渲染管线 > 通用渲染管线 > 升级... 中可用的资源升级功能。
以下 Shader Graph 着色器的文件名已重命名。新文件名不包含空格Autodesk Interactive
Autodesk Interactive Masked
Autodesk Interactive Transparent
如果您的代码使用 Shader.Find()
方法搜索着色器,请从 着色器在 GPU 上运行的程序。 更多信息
参见 术语表 名称中删除空格,例如 Shader.Find("AutodeskInteractive)
。
从 10.0.x 版本开始,URP 可以生成名为 _CameraNormalsTexture
的法线纹理。要在自定义着色器中渲染到此纹理,请添加一个名为 DepthNormals
的通道。有关示例,请查看 Lit.shader
中的实现。
URP 10.0.x 实施了屏幕空间 环境光遮蔽一种近似环境光(非来自特定方向的光)可以照射表面上某个点的方法。
参见 术语表 (SSAO) 效果。
如果您打算将 SSAO 效果与自定义着色器一起使用,请考虑与 SSAO 相关的以下实体
_SCREEN_SPACE_OCCLUSION
关键字。
Input.hlsl
在 InputData
结构体中包含新的声明 float2 normalizedScreenSpaceUV
。
Lighting.hlsl
包含 AmbientOcclusionFactor
结构体,其中包含用于计算间接和直接遮蔽的变量
struct AmbientOcclusionFactor
{
half indirectAmbientOcclusion;
half directAmbientOcclusion;
};
Lighting.hlsl
包含以下用于对 SSAO 纹理进行采样的函数
half SampleAmbientOcclusion(float2 normalizedScreenSpaceUV)
Lighting.hlsl
包含以下函数
AmbientOcclusionFactor GetScreenSpaceAmbientOcclusion(float2
normalizedScreenSpaceUV)
要在自定义着色器中支持 SSAO,请在着色器中添加 DepthNormals
通道和 _SCREEN_SPACE_OCCLUSION
关键字。有关示例,请查看 Lit.shader
。
如果您的自定义着色器实现自定义灯光函数,请使用函数 GetScreenSpaceAmbientOcclusion(float2 normalizedScreenSpaceUV)
获取灯光计算的 AmbientOcclusionFactor
值。
在 11.0.x 中,用于应用阴影法线偏差的公式已被稍微修复,以便更好地与点光源配合使用。因此,为了与早期版本的阴影轮廓完全匹配,可能需要在某些 场景场景包含游戏环境和菜单。将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,您放置环境、障碍物和装饰品,本质上是设计和构建游戏的各个部分。 更多信息
参见 术语表 中调整参数。通常,将方向光的参数设置为 1.4 而不是 1.0 就足够了。
在以前的 URP 版本中,如果渲染器有任何活动渲染器功能,URP 会通过中间渲染器执行渲染。在某些平台上,这会对性能产生重大影响。在此版本中,URP 通过以下方式缓解了这个问题:URP 预期渲染器功能使用 ScriptableRenderPass.ConfigureInput
方法声明其输入。该方法提供 URP 用于自动确定是否需要通过中间纹理进行渲染的信息。
出于兼容性目的,通用渲染器中有一个新的属性 中间纹理。如果您在属性中选择 始终,URP 将使用中间纹理。选择 自动 将启用新行为。仅当渲染器功能未使用 ScriptableRenderPass.ConfigureInput
方法声明其输入时,才使用 始终 选项。
为了确保现有项目正常运行,所有使用任何渲染器功能(不包括 URP 附带的功能)的现有通用渲染器资源在 中间纹理 属性中都选择了 始终 选项。所有新创建的通用渲染器资源都选择了 自动 选项。
请先升级到 URP 7.2.0。请参阅 升级到通用渲染管线 7.2.0 版本。
URP 8.x.x 不支持包后期处理堆栈 v2。如果您的项目使用包后期处理堆栈 v2,请先迁移使用该包的效果。