此页面介绍如何从旧版 Universal 渲染管线一系列操作,用于获取场景内容并在屏幕上显示。Unity 允许您选择预构建的渲染管线,或编写自己的渲染管线。 更多信息
请参阅 术语表 (URP) 升级到 11.0.x 版本。
以下着色器图着色器的文件名已重命名。新的文件名不包含空格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 7.2.0。请参阅 升级到 Universal Render Pipeline 的 7.2.0 版本。
URP 8.x.x 不支持 Post-Processing Stack v2 包。如果您的项目使用 Post-Processing Stack v2 包,请先迁移使用该包的效果。