渲染调试器
Rendering Debugger 窗口可视化各种光照、渲染和材质属性。这些可视化工具可以帮助您识别渲染问题并优化场景和渲染配置。
本节包含以下内容:
-
介绍如何在 Editor、Playmode 和 Development Build 的 Runtime 中访问 Rendering Debugger 窗口。
-
介绍如何在 Runtime 运行时导航 Rendering Debugger 界面。
-
介绍 Rendering Debugger 窗口中的各个元素和属性。
如何访问 Rendering Debugger
Rendering Debugger 窗口可用于以下模式:
模式 | 平台 | 可用性 | 如何打开 Rendering Debugger |
---|---|---|---|
Editor | 所有 | 是(在 Editor 窗口中) | 选择 Window > Analysis > Rendering Debugger |
Playmode | 所有 | 是(在 Game 视图中作为 Overlay) | 在桌面或笔记本电脑上,按 LeftCtrl+Backspace(macOS 上为 LeftCtrl+Delete) 在游戏手柄上,按 L3 和 R3(Left Stick 和 Right Stick) |
Runtime | Desktop/Laptop | 是(仅限 Development Build) | 按 LeftCtrl+Backspace(macOS 上为 LeftCtrl+Delete) |
Runtime | Console | 是(仅限 Development Build) | 按 L3 和 R3(Left Stick 和 Right Stick) |
Runtime | Mobile | 是(仅限 Development Build) | 使用三指双击 |
要在构建的应用程序中启用 Rendering Debugger 的所有部分,请在 Project Settings > Graphics > URP Global Settings 中禁用 Strip Debug Variants。否则,您只能使用 Display Stats 部分。
要禁用 Runtime UI,可以使用 enableRuntimeUI 属性。
Note
在 Development Build 中使用 Rendering Debugger 窗口时,请确保在 Project Settings > Graphics > URP Global Settings 中取消选中 Strip Debug Variants 选项。
Runtime 导航
Keyboard
操作 | 控制方式 |
---|---|
更改当前活动项 | 使用方向键 |
更改当前选项卡 | 使用 Page Up 和 Page Down 键(MacOS 上分别使用 Fn + Up 和 Fn + Down) |
独立显示当前活动项(脱离调试窗口) | 按下右 Shift 键 |
Xbox Controller
操作 | 控制方式 |
---|---|
更改当前活动项 | 使用方向键(D-Pad) |
更改当前选项卡 | 使用 Left Bumper 和 Right Bumper |
独立显示当前活动项(脱离调试窗口) | 按下 X 按钮 |
PlayStation Controller
操作 | 控制方式 |
---|---|
更改当前活动项 | 使用方向按钮 |
更改当前选项卡 | 使用 L1 和 R1 按钮 |
独立显示当前活动项(脱离调试窗口) | 按下 Square 按钮 |
Rendering Debugger 窗口部分
Rendering Debugger 窗口包含以下部分:
下图展示了 Rendering Debugger 窗口在 Scene 视图中的显示效果。
Display Stats
Display Stats 面板显示与调试项目性能问题相关的统计信息。您只能在 Playmode 下查看 Rendering Debugger 的这一部分。
使用 Runtime 快捷键 在 Scene 视图中打开 Display Stats 窗口。
Frame Stats
Frame Stats 部分显示每个属性的平均值、最小值和最大值。HDRP 计算 Frame Stats 的值基于最近 30 帧的数据。
属性 | 描述 |
---|---|
Frame Rate | 当前相机视图的帧率(帧/秒)。 |
Frame Time | 当前相机视图的总帧时间。 |
CPU Main Thread Frame | 从帧开始到主线程完成作业所用的总时间(毫秒)。 |
CPU Render Thread Frame | 渲染线程开始工作到 Unity 等待渲染当前帧所用的时间(毫秒)。 |
CPU Present Wait | CPU 在上一帧等待 Unity 渲染当前帧(Gfx.PresentFrame)的时间(毫秒)。 |
GPU Frame | GPU 渲染当前帧所用的时间(毫秒)。 |
Debug XR Layout | 显示 XR Passes 的调试信息。 该模式仅在 Editor 和 Development Build 中可用。 |
Bottlenecks
Bottleneck 指的是某个进程的执行速度明显慢于其他组件,而其他组件又依赖于它的情况。
Bottlenecks 部分描述了最近 60 帧在 CPU 和 GPU 之间的分布情况。只有在设备上构建 Player 后,您才能看到 Bottleneck 信息。
注意: Vsync 会根据设备屏幕的刷新率限制 Frame Rate。这意味着当 Vsync 开启时,Present Limited 类别在大多数情况下都会达到 100%。要关闭 Vsync,请前往 Edit > Project Settings > Quality > Current Active Quality Level,然后将 Vsync Count 设置为 Don't Sync。
Bottleneck 分类
类别 | 描述 |
---|---|
CPU | 最近 60 帧中,由 CPU 限制帧时间的帧数百分比。 |
GPU | 最近 60 帧中,由 GPU 限制帧时间的帧数百分比。 |
Present limited | 最近 60 帧中,由以下呈现约束(presentation constraints)限制帧时间的帧数百分比: • Vertical Sync (Vsync):Vsync 使渲染与显示器的刷新率同步。 • Target framerate:用于手动限制应用程序帧率的函数。如果帧在目标帧率指定的时间之前准备好,Unity 会等待一段时间后再呈现该帧。 |
Balanced | 最近 60 帧中,不受上述任何类别限制的帧数百分比。Balanced 达到 100% 表示 CPU 和 GPU 的处理时间基本相等。 |
Bottleneck 示例
如果 Vsync 限制了最近 60 帧中的 20 帧,那么 Bottlenecks 部分可能会显示如下数据:
- CPU 0.0%:表示在最近 60 帧中,HDRP 没有任何帧在 CPU 上渲染受限。
- GPU 66.6%:表示 HDRP 渲染的最近 60 帧中,有 66.6% 受到 GPU 限制。
- Present Limited 33.3%:表示最近 60 帧中,有 33.3% 受到呈现约束(Vsync 或 target framerate)的限制。
- Balanced 0.0%:表示最近 60 帧中,没有帧的 CPU 处理时间和 GPU 处理时间相等。
在此示例中,瓶颈(bottleneck)在于 GPU。
Detailed Stats
Detailed Stats 部分显示了每个渲染步骤在 CPU 和 GPU 上所花费的时间(以毫秒计)。HDRP 每帧更新这些值,基于上一帧的计算结果。
属性 | 描述 |
---|---|
Update every second with average | 计算一秒钟内的平均值,并每秒更新一次。 |
Hide empty scopes | 隐藏 CPU 和 GPU 处理时间为 0.00ms 的分析范围(profiling scopes)。 |
Debug XR Layout | 启用后,在 Editor 和 Development Builds 中显示 XR pass 的调试信息。 |
Frequently Used
此部分包含了一些用户常用的属性,这些属性来自 Rendering Debugger 窗口中的其他部分。有关这些属性的详细信息,请参阅 Material、Lighting 和 Rendering 章节。
Material
此部分的属性可用于可视化不同的 Material 属性。
Material Filters
属性 | 描述 |
---|---|
Material Override | 选择一个 Material 属性,在屏幕上的每个 GameObject 上进行可视化。 可用选项包括:
|
Vertex Attribute | 选择一个 GameObject 的顶点属性进行屏幕可视化。 可用选项包括:
|
Material Validation
属性 | 描述 |
---|---|
Material Validation Mode | 选择要可视化的 Material 属性:Albedo 或 Metallic。选择其中一个属性后,将显示新的上下文菜单。 |
Validation Mode: Albedo | 选择 Albedo 后,Material Validation Mode 属性会显示 Albedo Settings 部分,其中包括以下属性: Validation Preset:选择一个预配置材质,或选择 Default Luminance 以可视化亮度范围。 Min Luminance:Unity 用红色绘制亮度低于该值的像素。 Max Luminance:Unity 用蓝色绘制亮度高于该值的像素。 Hue Tolerance:仅在选择预设材质时可用。Unity 在最小和最大亮度值上添加色调容差。 Saturation Tolerance:仅在选择预设材质时可用。Unity 在最小和最大亮度值上添加饱和度容差。 |
Validation Mode: Metallic | 选择 Metallic 后,Material Validation Mode 属性会显示 Metallic Settings 部分,其中包括以下属性: Min Value:Unity 用红色绘制金属度低于该值的像素。 Max Value:Unity 用蓝色绘制金属度高于该值的像素。 |
Lighting
此部分的属性可用于可视化与光照系统相关的不同设置和元素,例如阴影级联、反射、主光源和附加光源的贡献等。
Lighting Debug Modes
属性 | 描述 |
---|---|
Lighting Debug Mode | 指定要在屏幕上覆盖的光照和阴影信息,以进行调试。可用选项包括:
|
Lighting Features | 指定哪些光照特性会影响最终的光照结果。可用于查看和调试场景中特定的光照特性。可用选项包括: |
Rendering
此部分的属性可用于可视化不同的渲染功能。
Rendering Debug
属性 | 描述 |
---|---|
Map Overlays | 指定要在屏幕上覆盖的渲染管线纹理。可选项包括:
|
** Map Size** | 叠加纹理的宽度和高度,以 URP 在视图窗口中显示的百分比表示。例如,值 50 代表纹理占据屏幕的四分之一(宽度的 50% 和高度的 50%)。 |
HDR | 指示是否使用 高动态范围 (HDR) 渲染场景。仅当您在 URP 资源中启用了 HDR 时,该属性才会生效。 |
MSAA | 指示是否使用 Multisample Anti-aliasing (MSAA) 渲染场景。仅当满足以下条件时,该属性才会生效:
|
Post-processing | 指定 URP 如何应用后处理。可选项包括:
|
Additional Wireframe Modes | 指定是否以及如何为场景中的网格渲染线框。可选项包括:
|
Overdraw | 指示是否渲染 Overdraw 调试视图。这对于查看 Unity 在同一像素位置多次绘制内容的情况非常有用。 |
Pixel Validation
Pixel Validation 子部分。
属性 | 描述 |
---|---|
Pixel Validation Mode | 指定 Unity 用于验证像素颜色值的模式。可选项包括:
|
** Channels** | 指定用于像素值范围验证的通道。可选项包括:
|
** Value Range Min** | 最小有效颜色值。Unity 会高亮显示低于该值的颜色值。 此属性仅在 Pixel Validation Mode 设为 Highlight Values Outside Range 时可用。 |
** Value Range Max** | 最大有效颜色值。Unity 会高亮显示高于该值的颜色值。 此属性仅在 Pixel Validation Mode 设为 Highlight Values Outside Range 时可用。 |