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

有帮助吗?

解决方案

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

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

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

其他提示

简而言之,不。

是的,Pix有点越野车,但自首次发行以来,Pix已大大改善。确保您正在运行最新的SDK!

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

Windows Pix随附DirectX SDK(从2010年6月开始,我可以验证),并且可以视觉调试您要设置状态的明智之举,并允许您逐行浏览着着色器。它是救生员。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top