【发布时间】:2012-01-05 12:29:51
【问题描述】:
使用断点,我试图弄清楚一个使用 DirectX 缓冲区的复杂应用程序的工作原理。
我看到Blt 命令绘制到后台缓冲区/表面的许多地方,我需要知道它在代码中的那个点究竟在绘制什么。
不幸的是,我只能在绘制整个帧并且翻转缓冲区时才能看到绘制的内容。
有没有办法在绘制时查看后台缓冲区/表面?在它被翻转之前?
【问题讨论】:
标签: visual-c++ directx direct3d
使用断点,我试图弄清楚一个使用 DirectX 缓冲区的复杂应用程序的工作原理。
我看到Blt 命令绘制到后台缓冲区/表面的许多地方,我需要知道它在代码中的那个点究竟在绘制什么。
不幸的是,我只能在绘制整个帧并且翻转缓冲区时才能看到绘制的内容。
有没有办法在绘制时查看后台缓冲区/表面?在它被翻转之前?
【问题讨论】:
标签: visual-c++ directx direct3d
您可以使用 PIX for Windows 来调试 GPU 中的渲染问题或性能瓶颈。 PIX 是一个分析器,可以为您提供有关渲染时每一步发生的情况的非常详细的信息。
因此,您可以在每次 Direct3D 调用时查看后台缓冲区中呈现的内容。您还可以在最终图像中选择一个给定像素,并查看该像素的历史记录(例如应用到它的着色器)。
这里有几个教程:
http://blogs.msdn.com/b/manders/archive/2006/12/15/a-painless-introduction-to-pix-for-windows.aspx
http://www.garagegames.com/community/blogs/view/14251
http://www.youtube.com/watch?v=-3PISvNTeB0&feature=player_embedded
【讨论】: