Version: 6000.3
语言: 中文
URP 中的已知问题
URP 中的图形质量设置

在 URP 中配置以获得更好的性能

您可以禁用或更改通用渲染管线获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管线中进行选择,或编写自己的渲染管线。更多信息
请参阅术语表
(URP) 对性能有重大影响的设置和功能。这有助于您获得更好的项目性能,尤其是在低端平台上。

根据您的项目或目标平台,以下一项或全部可能会产生最大的影响:

  • 渲染路径渲染管道用于渲染图形的技术。选择不同的渲染路径会影响照明和着色的计算方式。某些渲染路径比其他渲染路径更适合不同的平台和硬件。更多信息
    请参阅术语表
    您选择
  • URP 使用多少内存
  • CPU 上的处理时间
  • GPU 上的处理时间

您可以使用 Unity Profiler 或 GPU探查器帮助您优化游戏的窗口。它显示在游戏的各个区域花费了多少时间。例如,它可以报告渲染、动画或游戏逻辑所花费的时间百分比。更多信息
请参阅术语表
例如 RenderDocXcode,以衡量每个设置对项目性能的影响。

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

选择渲染路径

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

减少 URP 使用的内存量

你可以在URP资产中执行以下作:

  • 除非需要(例如,如果你使用对场景深度进行采样的着色器),否则禁用深度纹理(Depth Texture),这样URP就不会存储深度纹理,除非需要。
  • 禁用 不透明纹理(Opaque Texture),以便 URP 不会将不透明纹理的快照存储在场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,您可以放置环境、障碍物和装饰,实质上是分批设计和构建游戏。更多信息
    请参阅术语表
    除非需要。
  • 如果使用延迟渲染路径,请禁用 使用渲染层(Use Rendering Layers),以便URP不会创建额外的渲染目标。
  • 如果不需要,请禁用高动态范围 (HDR),这样 URP 就不会这样做HDR高动态范围
    请参阅术语表
    计算。 如果需要 HDR,请将“HDR 精度”设定为 32 位
  • 降低主光源>阴影分辨率,以降低主光源阴影贴图的分辨率。
  • 如果使用其他光源,请将 附加光源(Additional Lights) 降低> 阴影图集分辨率(Shadow Atlas Resolution),以降低其他光源的阴影贴图分辨率。
  • 如果不需要轻 Cookie,请禁用它们,或降低 Cookie Atlas 分辨率Cookie Atlas 格式
  • 在低端移动平台上,将 Store Actions 设置为 AutoDiscard,这样 URP 就不会使用内存带宽将渲染目标从每次传递复制到内存中或从内存中复制出来。

Universal Renderer 资源中,您可以将 Intermediate Texture 设置为 Auto,以便 Unity 仅在必要时使用中间纹理进行渲染。这也可能减少 URP 使用的 GPU 内存带宽。使用帧调试器检查更改此设置时URP是否删除中间纹理。

您还可以执行以下作:

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

减少 CPU 的处理时间

你可以在URP资产中执行以下作:

  • 体积更新模式(Volume Update Mode) 设置为 通过脚本(Via Scripting),这样URP就不会每帧更新体积。你需要使用UpdateVolumeStack等API手动更新体积。
  • 在低端移动平台上,如果您使用反射探针一个渲染组件,可捕获各个方向周围环境的球形视图,就像相机一样。然后,捕获的图像将存储为立方体贴图,可供具有反射材质的对象使用。更多信息
    请参阅术语表
    ,禁用“探针混合”“盒体投影”。
  • 阴影(Shadows) 分段中,减少 最大距离(Max Distance) ,以便URP在阴影通道中处理更少的对象。这也减少了GPU上的处理时间。
  • 阴影(Shadows) 分段中,减少 级联计数(Cascade Count) 以减少渲染通道的数量。这也减少了GPU上的处理时间。
  • 附加光源(Additional Lights) 分段中,禁用 投射阴影(Cast Shadows) 。这还可以减少GPU上的处理时间以及URP使用的内存量。

相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
请参阅术语表
需要资源来进行 URP 剔除和渲染。要优化 URP 以获得更好的性能,请尽量减少使用的摄像机数量。这也减少了 GPU 上的处理时间。

减少 GPU 上的处理时间

你可以在URP资产中执行以下作:

  • 减少或禁用抗锯齿 (MSAA),以便 URP 不会使用内存带宽将帧缓冲区附件复制到内存中或复制到内存中。这也会减少 URP 使用的内存量。
  • 禁用地形场景中的地形。地形游戏对象向场景添加一个大型平面,您可以使用地形的“检查器”窗口创建详细的地形。更多信息
    请参阅术语表
    .
  • 启用 SRP Batcher,以便 URP 减少绘制调用之间的 GPU 设置,并使材质数据持久化在 GPU 内存中。检查着色器在 GPU 上运行的程序。更多信息
    请参阅术语表
    首先与 SRP Batcher 兼容。这也减少了 CPU 上的处理时间。
  • 在低端移动平台上,禁用LODDETAIL 级别 (LOD) 技术是一种优化,可减少 Unity 在游戏对象与相机的距离增加时必须为游戏对象渲染的三角形数量。更多信息
    请参阅术语表
    交叉淡入淡出
    ,这样URP就不会使用Alpha测试来淡入淡出细节级别(LOD)网格体。
  • 其他光源(Additional Lights) 设置为 禁用(Disabled)每个顶点(Per Vertex) 如果使用前向渲染一种渲染路径,用于在一个或多个通道中渲染每个对象,具体取决于影响对象的光源。光源本身也因前向渲染而异,具体取决于其设置和强度。更多信息
    请参阅术语表
    路径。这减少了 URP 计算光照的工作。如果设置为“禁用”,这也会减少 CPU 上的处理时间。
  • 禁用“柔和阴影”,或启用“柔和阴影”但降低“质量”

你可以在通用渲染器资源中执行以下作:

  • 如果您使用 Vulkan、Metal 或 DirectX 12 图形 API,请启用原生 RenderPass,以便 URP 自动减少复制频率渲染纹理(render texture)一种特殊类型的纹理,在运行时创建和更新。要使用它们,请先创建一个新的渲染纹理,并指定要渲染到其中的摄像机之一。然后,你可以在材质中使用渲染纹理,就像使用常规纹理一样。更多信息
    请参阅术语表
    进入和退出内存。这也减少了 URP 使用的内存量。
  • 如果使用“向前”或“向前+”渲染路径,请将 深度启动模式(Depth Priming Mode) 设置为 自动(Auto) 或 强制(Forced) (PC,以及主机平台),或将 禁用(Disabled) (移动平台) 设置为 禁用(Disabled)。在PC和主机平台上,这使得URP创建和使用深度纹理以避免运行像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素光照是在每个屏幕像素下计算的。更多信息
    请参阅术语表
    遮挡像素上的着色器。
  • 深度纹理模式(Depth Texture Mode) 设置为 透明之后(After Transparents),以便URP避免在不透明通道和透明通道之间切换渲染目标。

您还可以执行以下作:

  • 避免使用具有复杂光照计算的复杂光照着色器。如果使用“复杂光照”着色器,请禁用“清除涂层”
  • 在低端移动平台上,对静态对象使用“烘焙光照”着色器,对动态对象使用“简单光照”着色器
  • 如果使用屏幕空间环境光遮蔽(SSAO),请参阅环境光遮挡 一种近似环境光(不是来自特定方向的光)可以击中表面上某个点的量的方法。
    请参阅术语表
    有关对性能影响较大的设置的更多信息。

其他资源

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

URP 中的已知问题
URP 中的图形质量设置