调试directx像素/顶点着色器?

twe*_*ypi 1 directx shader pixel hlsl vertex

我正在试图弄清楚如何在DirectX中调试像素和顶点着色器,我尝试使用Pix for Windows但发现它非常错误并且实际上不可操作.有没有替代方案可以让我在自己的应用程序中调试这些着色器?

Goz*_*Goz 5

简而言之,没有.

是的pix有点儿马车,但自首次发布以来已经提升了MASSIVELY.确保您运行的是最新的SDK!


Tra*_*tec 5

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

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

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


mir*_*age 5

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