框架调试器可以将正在运行的游戏的状态冻结在一个特定的框架中,以供自由回放,并查看渲染框架的每个绘图调用。除了列出绘图调用之外,调试器还可以一个接一个地遍历这些调用,以便您可以详细了解场景是如何从场景的图形元素构建的。
框架调试器使用框架调试器
框架调试器窗口(菜单:__窗口>:框架调试器_ _)显示绘图调用信息,并允许您控制正在构建的框架的“回放”。
主列表在分层视图中显示绘图调用(和其他事件,如帧缓冲区清除)的顺序,并在其中标识绘图调用的来源。列表右侧的面板提供了有关绘图调用的更多信息,例如用于渲染的几何细节和着色器。
单击列表中的一个项目将显示场景(在游戏视图中),直到并包括绘图调用。工具栏中的左右箭头按钮用于在列表中向前和向后移动一步,您也可以使用箭头键来达到相同的效果。此外,窗口顶部的滑动条允许您在绘图调用中快速拖动以快速定位注意力。如果绘图调用对应于游戏对象的几何图形,该对象将在主层次面板中突出显示,以便于识别。
如果在选定的绘图调用中渲染纹理,渲染纹理的内容将显示在游戏视图中。这可用于检查各种屏幕外渲染目标是如何构建的,例如延迟着色中的扩散g缓冲区:
或者查看阴影贴图的渲染方式:
框架调试器显示远程框架调试器
要远程使用框架调试器,播放器必须支持多线程渲染(例如,webgl,ios不支持这种渲染模式,因此不可能运行框架调试器)。大多数统一平台支持多线程渲染,并且在构建过程中必须选择“开发构建”。
桌面平台的注意事项:确保在构建前选择了“在后台运行”选项。否则,当框架调试器连接到播放器时,它将不会反映任何呈现更改,直到它获得焦点。假设编辑器和播放器在同一台机器上运行,当您在编辑器中控制框架调试器时,您将从播放器获得焦点。
快速启动:
从编辑器为目标平台构建一个项目(选择开发播放器)
运行播放器
回到编辑
打开框架调试器窗口
单击活动事件探查器,然后选择播放器
单击启用,应在播放器上启用帧调试器
在渲染目标显示选项信息面板的顶部是一个工具栏,允许您为游戏视图的当前状态隔离红色、绿色、蓝色和阿尔法通道。同样,您可以使用这些通道按钮右侧的“级别”滑块,根据亮度级别隔离视图区域。这些功能仅在渲染到渲染纹理时启用。
当同时渲染到多个渲染目标时,您可以选择在游戏视图中显示哪个渲染目标。下面显示了5.0版中延迟着色模式下的漫射、镜面反射、正常和发光/间接照明缓冲区:
此外,您可以通过从下拉菜单中选择“深度”来查看深度缓冲区的内容:
通过隔离渲染纹理的阿尔法通道,您可以看到延迟g缓冲区的遮挡(存储在rt0alpha中)和平滑度(存储在rt1 alpha中):
该场景中的冷光和环境/间接照明非常暗;我们可以通过更改“级别”滑块来使其更加明显:
查看着色器属性值
对于绘图调用,框架调试器还可以显示所使用的着色器属性值。单击着色器属性选项卡显示属性:
着色器属性对于每个属性,它显示属性的值以及在哪个着色器阶段(顶点、片段、几何图形、外壳、域)使用它。请注意,当使用opengl时(例如,在mac上),由于glsl着色器的工作原理,所有着色器属性都被视为顶点着色器阶段的一部分。
在编辑器中,还会显示纹理的缩略图,单击它们将突出显示项目窗口中的纹理。
替代帧调试技术您也可以使用外部工具来调试渲染。现有的编辑器集成使得在编辑器中启动渲染文档来检查场景或游戏视图变得容易。
此外,独立的平台播放器可以通过以下任何方式构建和运行:
visual studio图形调试器
英特尔gpa
renderdoc
nvidia nsight
图形处理器性能工作室
超码图形处理器帧捕获
图形处理器驱动仪器
文章来源:www.atolchina.com