1

我试图弄清楚如何在 DirectX 中调试像素和顶点着色器,我尝试过使用 Pix for Windows,但发现它有很多错误并且实际上无法操作。是否有替代方法可以让我在自己的应用程序中调试这些着色器?

4

4 回答 4

5

简而言之,没有。

是的,pix 有点问题,但自第一次发布以来已经大大改进。确保您运行的是最新的 SDK!

于 2009-10-08T10:41:27.040 回答
5

我不知道任何用于调试 hlsl-shaders 的第三方工具,但我通过使用一些简单的技术来调试它有很好的经验。

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

如果有错误,你应该首先检查你使用的缓冲区是否真的有正确的值,一开始经常会发生一些纹理是用错误的参数创建的,或者数据是按另一个顺序来的......根据我的经验这是一个常见的错误来源。

于 2009-10-09T14:44:22.667 回答
5

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

于 2009-10-12T20:27:18.347 回答
2

PIX for Windows 带有 DirectX SDK(从 2010 年 6 月开始,我可以验证),它允许您直观地调试您正在设置的状态,并允许您逐行遍历着色器。它是一个救生员。

于 2011-04-21T03:20:02.920 回答