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

调试directx像素/顶点着色器?,directx,pixel,shader,hlsl,vertex,Directx,Pixel,Shader,Hlsl,Vertex,我试图找出如何调试DirectX中的像素和顶点着色器,我尝试过使用Pix for Windows,但发现它有很多缺陷,而且实际上无法运行。有没有其他方法可以让我在自己的应用程序中调试这些着色器?简而言之,没有 是的,pix有点问题,但自从第一次发布以来已经有了很大的改进。确保您正在运行最新的SDK 简言之,没有 是的,pix有点问题,但自从第一次发布以来已经有了很大的改进。确保您正在运行最新的SDK 我不知道有任何第三方工具可用于调试hlsl着色器,但我在使用一些简单技术进行调试方面有很好的经验

我试图找出如何调试DirectX中的像素和顶点着色器,我尝试过使用Pix for Windows,但发现它有很多缺陷,而且实际上无法运行。有没有其他方法可以让我在自己的应用程序中调试这些着色器?

简而言之,没有

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

简言之,没有


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

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

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


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

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

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


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

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

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

PIX for Windows附带DirectX SDK(我可以验证,从2010年6月开始),允许您直观地调试您正在设置的状态,并允许您逐行通过着色器。这是一个救命稻草。

PIX for Windows附带DirectX SDK(从2010年6月开始,我可以验证),允许您直观地调试正在设置的状态,并允许您逐行通过着色器。这是个救命稻草