版本:Unity 6 (6000.0)
语言:英语
使用 Visual Studio 调试着色器
着色器语言参考

使用 PIX 调试着色器

PIX 是微软为 Windows 开发者提供的一种性能调整和调试工具。它提供了一系列模式用于分析应用程序的性能,并且包括从应用程序捕获 DirectX 项目帧以进行调试的功能。

使用 PIX 检查 Windows 64 位 (x86_64) 独立或通用 Windows 平台应用程序中的问题。

要安装 PIX,下载并运行 Microsoft PIX 安装程序,然后按照说明操作。

有关 PIX 的更多信息,请参阅 Microsoft 的 PIX 简介PIX 文档

使用 PIX 调试 DirectX 着色器

您应该使用 Unity 应用程序的已构建版本来捕获帧,而不是在 Unity 编辑器中运行的版本。这是因为您需要从 PIX 中启动目标应用程序才能捕获 GPU 帧。

使用开发版本会在 PIX 中添加更多信息,这使得导航 场景场景包含游戏的环境和菜单。可以将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,您放置环境、障碍物和装饰物,本质上是分段设计和构建您的游戏。 更多信息
请参阅 术语表
捕获更容易。

创建包含已启用调试的着色器的项目

要在 PIX 中调试包含源代码的着色器,您需要在着色器代码中插入以下 pragma:#pragma enable_d3d11_debug_symbols

示例

以下演练使用一个基本示例来演示整个过程。

创建一个基本项目

  1. 创建一个新的 Unity 项目(请参阅 Hub 文档中的 项目)。

  2. 在顶部菜单中,转到 资源游戏中或项目中可以使用的任何媒体或数据。资源可能来自在 Unity 之外创建的文件,例如 3D 模型、音频文件或图像。您也可以在 Unity 中创建一些资源类型,例如动画控制器、音频混音器或渲染纹理。 更多信息
    请参阅 术语表
    > 创建 > 着色器在 GPU 上运行的程序。 更多信息
    请参阅 术语表
    > 标准表面着色器。这将在您的 项目在 Unity 中,您使用项目来设计和开发游戏。项目存储与游戏相关的所有文件,例如资源和场景文件。 更多信息
    请参阅 术语表
    文件夹中创建一个新的着色器文件。

  3. 选择着色器文件,并在 检查器一个 Unity 窗口,显示有关当前选定游戏对象、资源或项目设置的信息,允许您检查和编辑值。 更多信息
    请参阅 术语表
    窗口中,单击 打开。这将在您的脚本编辑器中打开着色器文件。在其他 #pragma 行下方,将 #pragma enable_d3d11_debug_symbols 插入到着色器代码中。

  4. 创建一个新的材质(菜单:资源 > 创建 > 材质定义表面渲染方式的资源。 更多信息
    请参阅 术语表
    )。

  5. 在材质的检查器窗口中,选择 着色器 下拉菜单,转到 自定义,然后选择您刚刚创建的着色器。

  6. 创建一个 3D 立方体游戏对象(菜单:游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、摄像机、航路点等。游戏对象的的功能由附加到它的组件定义。 更多信息
    请参阅 术语表
    > 3D 对象一个 3D 游戏对象,例如立方体、地形或布娃娃。 更多信息
    请参阅 术语表
    > 立方体)。

  7. 将您的新材质分配给您的新游戏对象。为此,将材质从 项目 窗口拖放到 3D 立方体。

从 Windows 独立应用程序捕获帧

  1. 转到 文件 > 构建设置,并在 平台 下,选择 Windows、Mac、Linux。将 目标平台 设置为 Windows,将 体系结构 设置为 Intel 64 位,然后单击 开发版本开发版本包含调试符号并启用探查器。 更多信息
    请参阅 术语表
    复选框。

  2. 单击 构建将项目编译成可在特定平台或多个平台上运行的格式的过程。 更多信息
    请参阅 术语表

  3. 启动 PIX。

  4. 单击 主页,然后单击 连接

  5. 选择计算机 localhost 用于捕获,然后单击 连接

  6. 选择目标进程 框中,选择 启动 Win32 选项卡,并使用 浏览 按钮选择应用程序的可执行文件。请注意,这里的“Win32”是指非 UWP 应用程序;您的应用程序文件必须是 64 位二进制文件。

  7. 启用 启动以进行 GPU 捕获,然后使用 启动 按钮启动应用程序。

  8. 按正常方式使用您的应用程序,直到您准备好捕获帧。要捕获帧,请按键盘上的 Print Screen,或单击 GPU 捕获面板上的 相机一个组件,它创建场景中特定视点的图像。输出要么绘制到屏幕上,要么作为纹理捕获。 更多信息
    请参阅 术语表
    图标。捕获的缩略图将显示在面板中。要打开捕获,请单击缩略图。

  9. 要开始分析捕获,请单击突出显示的文本或菜单栏上的小型 播放 图标。

  10. 选择 管道 选项卡,并使用 __事件__ 窗口导航到您感兴趣的绘制调用。

  11. 管道 选项卡的下半部分,从 OM(输出合并器)列表中选择一个渲染目标以查看绘制调用的输出。选择您要调试的对象上的 像素计算机图像中最小的单元。像素大小取决于屏幕分辨率。像素照明在每个屏幕像素处计算。 更多信息
    请参阅 术语表
    。请注意,您可以右键单击像素以查看绘制调用历史记录,作为查找您感兴趣的绘制调用的方法。

  12. 像素详细信息 面板中选择 调试像素

  13. 在调试面板上,使用着色器选项选择要调试的着色器阶段。

  14. 使用 工具栏Unity 编辑器顶部的按钮和基本控件行,允许您以各种方式与编辑器进行交互(例如缩放、平移)。 更多信息
    请参阅 术语表
    或键盘快捷键逐步执行代码。

有关使用 PIX 调试着色器的更多信息,请参阅 Microsoft 的视频系列 Windows 上的 PIX,特别是 第 5 部分 - 调试选项卡

有关 PIX 中的 GPU 捕获的更多信息,请参阅 Microsoft 关于 GPU 捕获 的文档。

  • 2018 年 9 月 17 日 发布页面
使用 Visual Studio 调试着色器
着色器语言参考