# RenderDoc 集成

> Use the RenderDoc debugger to debug graphics on a frame by frame basis.

编辑器支持启动集成的 [RenderDoc](https://github.com/baldurk/renderdoc) 图形调试器并进行捕获，从而进行详细的帧自检和调试。

只支持集成 RenderDoc 版本 0.26 或更高版本，因此如果当前安装的是早期版本，至少需要更新至版本 0.26。

\*\*注意：\*\*虽然集成仅在编辑器中可用，但很有可能无需在独立平台播放器构建中进行额外设置，即可正常使用 RenderDoc。

\*\*注意：\*\*仅当 Unity 在 RenderDoc 支持的平台和 API 上运行时，才能捕获帧。如果正在使用其他 API，则会暂时禁用 RenderDoc 集成，直到启用支持的 API 为止。有关受支持的平台和 API 的更多信息，请参阅 [RenderDoc 文档](https://renderdoc.org/docs/getting_started/features.html#)。

## 加载 RenderDoc

如果检测到 RenderDoc 安装，则在加载编辑器之后的任何时间，均可右键单击[游戏视图 (Game View)](/engine/6000.0/manual/unity-editor/using-the-editor/game-view.md) 或[场景视图 (Scene View)](/engine/6000.0/manual/unity-editor/using-the-editor/using-the-scene-view.md) 的选项卡，然后单击“加载 RenderDoc (Load RenderDoc)”选项。这样就会重新加载图形设备，因此必须保存所有更改，但随后 RenderDoc 将可以直接捕获而无需重新启动 Editor 或构建独立平台播放器。

\*\*注意：\*\*也可以照常通过 RenderDoc 启动 Editor，或者传递 -load-renderdoc 命令行选项以从启动中加载 RenderDoc。

## 使用 RenderDoc 捕获帧

当检测到兼容版本的 RenderDoc 加载到 Editor 中时，Game 和 Scene 视图上的工具栏右侧会出现一个新按钮。


**使用 RenderDoc 捕获帧:**
![](/api/media?file=/engine/6000.0/media/images/RenderDocCaptureButton.png)

按此按钮将触发捕获视图的下一帧渲染。如果尚未打开 RenderDoc 工具 UI，则会启动一个新实例来显示捕获，如果已在运行，则最新的捕获将自动显示在其中。从此处可以使用该工具打开捕获结果并进行调试。


**RenderDoc 中列出的帧捕获结果:**
![](/api/media?file=/engine/6000.0/media/images/RenderDocCaptureList.jpg)

## 包含着色器调试信息

默认情况下，为了优化 DirectX11 着色器的大小，会删除调试信息。这意味着，常量和资源将没有名称，并且着色器源代码将不可用。要在着色器中包含此调试信息，请在着色器的 CGPROGRAM 代码块中包含 **# pragma enable\_d3d11\_debug\_symbols**。

## 备用图形调试技术

如果使用 D3D11 来构建独立平台播放器，则可使用 [Visual Studio 图形调试器](/engine/6000.0/manual/materials-and-shaders/shaders/shader-troubleshooting/shader-debugging/sl-debugging-d3d11shaders-with-vs.md)捕获帧并进行调试。
