Version: Unity 6.0 (6000.0)
语言 : 中文
URP 中的已知问题:
URP 中的图形质量设置

配置 URP 以获得更好的性能

您可以禁用或更改对性能有重大影响的通用渲染管线 (URP) 设置和功能。这有助于提高项目的性能,尤其是在低端平台上。

根据项目或目标平台,以下一项或所有项可能会产生重大影响:

  • 所选的渲染路径
  • URP 使用的内存量
  • CPU 上的处理时间
  • GPU 上的处理时间

可使用 Unity Profiler 或 GPU 性能分析器(例如 RenderDocXcode)来衡量各设置对项目性能的影响。

如果项目需要某些功能,则可能无法禁用它们。

选择渲染路径

请参阅通用渲染器了解有关 URP 中的三种渲染路径以及每种渲染路径的性能影响和限制的更多信息。

减少 URP 使用的内存量

您可以在 URP 资产 (URP Asset) 中执行以下操作:

  • 除非有需要(例如,使用了对场景深度进行采样的着色器),否则请禁用深度纹理 (Depth Texture),以便 URP 在不需要时不会存储深度纹理。
  • 禁用不透明纹理 (Opaque Texture),这样除非有必要,否则 URP 将不会存储场景中不透明纹理的快照。
  • 如果使用了延迟渲染路径,请禁用使用渲染层 (Use Rendering Layers),这样 URP 就不会创建额外的渲染目标。 
  • 如果不需要,请禁用高动态范围 (High Dynamic Range (HDR)),这样 URP 就不会进行__ HDR__高动态范围
    See in Glossary
    计算。如果需要 HDR,请将 HDR 精度 (HDR Precision) 设置为 32 位
  • 降低主光源 (Main Light) > 阴影分辨率 (Shadow Resolution),以降低主光源的阴影贴图分辨率。
  • 如果使用了其他光源,请降低其他光源 (Additional Lights) > 阴影图集分辨率 (Shadow Atlas Resolution),以降低其他光源的阴影贴图分辨率。
  • 如果不需要光照剪影 (Light Cookie),请将其禁用,或降低剪影图集分辨率 (Cookie Atlas Format)剪影图集格式 (Cookie Atlas Format)
  • 在低端移动平台上,将存储操作 (Store Actions) 设置为自动 (Auto)放弃 (Discard),这样 URP 就不会使用内存带宽将渲染目标从各个通道复制到内存中或从内存中复制出来。

通用渲染器 (Universal Renderer) 资产中,可将中间纹理 (Intermediate Texture) 设置为自动 (Auto),这样 Unity 仅会在必要时使用中间纹理进行渲染。这还可以减少 URP 使用的 GPU 内存带宽。可使用帧调试器 (Frame Debugger) 来检查更改此设置时 URP 是否删除了中间纹理。

您还可以执行以下操作:

  • 尽量减少使用贴花渲染器功能,因为 URP 会创建额外的渲染通道来渲染贴花。这也会减少在 CPU 和 GPU 上的处理时间。请参阅贴花渲染器功能了解更多信息。
  • 剥离未使用功能的着色器变体

减少在 CPU 上的处理时间

您可以在 URP 资产 (URP Asset) 中执行以下操作:

  • 体积更新模式 (Volume Update Mode) 设置为通过脚本 (Via Scripting),这样 URP 就不会每帧更新体积。需使用 API(例如 UpdateVolumeStack)手动更新体积。
  • 在低端移动平台上,如果使用了反射探针 (Reflection Probes),请禁用探针混合 (Probe Blending)盒体投影 (Box Projection)
  • 阴影 (Shadows) 部分中,减小最大距离 (Max Distance),这样 URP 可以在阴影通道中处理更少的对象。这也会减少 GPU 上的处理时间。
  • 阴影 (Shadows) 部分中,减少级联数量 (Cascade Count) 以减少渲染通道的数量。这也会减少 GPU 上的处理时间。
  • 其他光源 (Additional Lights) 部分中,禁用投射阴影 (Cast Shadows)。这也会减少 GPU 上的处理时间和 URP 使用的内存量。

场景中的每个摄像机都需要 URP 剔除和渲染资源。如要优化 URP 来获得更好的性能,请尽量减少使用的摄像机数量。这也会减少 GPU 上的处理时间。

减少 GPU 上的处理时间

您可以在 URP 资产 (URP Asset) 中执行以下操作:

  • 减少或禁用抗锯齿 (Anti-aliasing (MSAA)),这样 URP 就不会使用内存带宽将帧缓冲区附件复制到内存中或从内存中复制出来。这也会减少 URP 使用的内存量。
  • 禁用地形孔洞 (Terrain Holes)
  • 启用 SRP 批处理程序 (SRP Batcher),这样 URP 就能减少绘制调用之间的 GPU 设置,并使材质数据持久保存在 GPU 内存中。首先检查着色器是否与 SRP 批处理程序 (SRP Batcher) 兼容。这也会减少 CPU 上的处理时间。
  • 在低端移动平台上,禁用 LOD 交叉淡化 (LOD Cross Fade),这样 URP 就不会使用 Alpha 测试来淡入和淡出细节级别 (LOD) 网格。
  • 其他光源 (Additional Lights) 设置为禁用 (Disabled),如果使用了前向渲染路径,则设置为每顶点 (Per Vertex)。这可以减少 URP的光照计算工作。如果设置为禁用 (Disabled),还可以减少 CPU 上的处理时间。
  • 禁用柔和阴影 (Soft Shadows),或启用柔和阴影 (Soft Shadows),但要降低质量

您可以在通用渲染器资产中执行以下操作:

  • 如果使用 Vulkan、Metal 或 DirectX 12 图形 API,请启用原生渲染通道 (Native RenderPass),这样 URP 可以自动减少将渲染纹理复制到内存中和从内存中复制出的频率。这也会减少 URP 使用的内存量。
  • 如果使用前向 (Forward) 或前向+ (Forward+) 渲染路径,对于 PC 和游戏主机平台,请将深度引动模式 (Depth Priming Mode) 设置为自动 (Auto)强制 (Forced),对于移动平台,则设置为禁用 (Disabled)。在 PC 和游戏主机平台上,这使得 URP 可以创建和使用深度纹理,从而避免在遮挡的像素上运行像素着色器。
  • 深度纹理模式 (Depth Texture Mode) 设置为 After Transparents,这样 URP 可以避免在不透明通道和透明通道之间切换渲染目标。

您还可以执行以下操作:

其他资源

请参阅以下内容了解有关设置的更多信息:

URP 中的已知问题:
URP 中的图形质量设置
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961