2009-10-08 173 views
1

我想弄清楚如何在DirectX中调试像素和顶点着色器,我已经尝试过使用Pix for Windows,但发现它相当有问题,并且实际上无法运行。是否有替代方案可以让我在我自己的应用程序中调试这些着色器?调试directx像素/顶点着色器?

回答

5

我不知道任何第三方工具调试hlsl着色器,但我有很好的经验,通过使用一些简单的技术进行调试。

您可以在cpu上复制渲染目标并将其存储到位图中,将其打印到终端或在CPU调试器中访问它。

如果存在错误,应首先检查您使用的缓冲区是否确实具有正确的值,开始时经常会发生某些纹理是使用错误的参数创建的,或者数据是以其他顺序预期的。 。根据我的经验,这是一个常见的错误来源。

4

总之,没有。

是的pix是有点bug,但它自第一次发布以来已经大大改进。确保你正在运行最新的SDK!

5

只输出调试信息作为颜色。例如,您可以输出255 *(普通+ 1)作为r,g,b,您可以输出一些中间着色器变量作为颜色,或者可以检查它是否在着色器的边界内,如果是黑色则输出白色如果不是。这通常有帮助。

2

适用于Windows的PIX附带DirectX SDK(自2010年6月起我可以验证),并允许您以可视方式调试您正在设置的状态,并允许逐行扫描着色器。它是一个救星。

相关问题