Visual c++ 是否可以在绘制时查看后缓冲区?

Visual c++ 是否可以在绘制时查看后缓冲区?,visual-c++,directx,direct3d,Visual C++,Directx,Direct3d,使用断点,我试图找出使用DirectX缓冲区的复杂应用程序的工作原理。 我看到很多地方,Blt命令会绘制到后缓冲区/表面,我需要知道它在代码中的那个点上到底绘制了什么 不幸的是,只有在绘制整个帧并翻转缓冲区时,我才能看到绘制的内容 在绘制时,是否有办法查看后缓冲区/曲面?在它被翻转之前?您可以使用PIX for Windows调试GPU中的渲染问题或性能瓶颈。PIX是一个分析器,它可以为您提供渲染过程中每一步的详细信息 因此,它将允许您在每次Direct3D调用时查看后台缓冲区中呈现的内容。您还

使用断点,我试图找出使用DirectX缓冲区的复杂应用程序的工作原理。
我看到很多地方,
Blt
命令会绘制到后缓冲区/表面,我需要知道它在代码中的那个点上到底绘制了什么

不幸的是,只有在绘制整个帧并翻转缓冲区时,我才能看到绘制的内容


在绘制时,是否有办法查看后缓冲区/曲面?在它被翻转之前?

您可以使用PIX for Windows调试GPU中的渲染问题或性能瓶颈。PIX是一个分析器,它可以为您提供渲染过程中每一步的详细信息

因此,它将允许您在每次Direct3D调用时查看后台缓冲区中呈现的内容。您还可以在最终图像中选择给定的像素,并查看该像素的历史记录中发生了什么(例如,应用于该像素的着色器)

以下是一些教程:


尝试使用PIX,但它等待我的应用程序退出,然后才显示配置文件信息(也找不到backbuffer信息)。在我的应用程序运行时,是否可以查看后台缓冲区?(无法通过youtube视频,因为youtube在此服务器上被阻止)嘿,Nav。PIX确实会在应用程序执行时对其进行测量,并在最后向您显示概要信息。它不能实时向您显示正在发生的事情的信息,因为信息太多了。不过,您可以选择使用F12仅捕获几个帧。顺便说一句,通常(在Direc3D中)每个绘制调用(如SetRenderState、SetVertexShader等)都默认在BackBuffer中进行。只有在看到IDirect3DDevice9::Present函数调用时,它才会显示在主框架中。所以PIX向你展示了在后缓冲区中发生的事情。谢谢,但我真正想看到的是,在后缓冲区中,当它发生时,正在进行绘图。看来没有什么工具能帮上忙。