如何有效使用调试器NVIDIA Nsight Graphics?

时间:2019-04-26 09:49:34

标签: debugging opengl shader nvidia

我下载了nvidia Nsight图形调试器,以了解图形调试器的工作方式。 起初,我以为我可以在着色器中看到变量的不同值,但是我觉得它根本不像cpu调试器那样起作用。

确实,我不太了解图形调试器的用处。 我知道我可以在带有参数的drawsCalls上看到状态和调用(通过查看参数的值)。

我还可以看到使用的着色器并编辑着色器。

但是我看不到在着色器中使用的值。如何在不知道值的情况下进行调试?有没有办法显示或查看着色器中使用的值?

我试图在着色器中显示值(但是无法打印出一些内容)...我有些困惑...

例如:

  1. 我的顶点着色器:因此,我从存储在fragmentColor中的多维数据集中恢复了vertexColor。

    #version 330 core
    
    // Input vertex data, different for all executions of this shader.
    layout(location = 0) in vec3 vertexPosition_modelspace;
    layout (location = 1) in vec3 vertexColor;
    
    out vec3 fragmentColor;
    //Values that stay constant for the whole mesh.
    uniform mat4 MVPSQUARE;
    
    void main(){
    
        //Output position of the vertex, in clip space : MVPSQUARE * position
        gl_Position =  MVPSQUARE * vec4(vertexPosition_modelspace,1);
        fragmentColor = vertexColor;
    
    }
    
  2. 然后是我的fragmentShader:

    #version 330 core
    
    // Input data
    in vec3 fragmentColor;
    
    //Output data
    out vec3 color;
    
    void main()
    {
        color = fragmentColor; // I know that this line is useless but for example here I would like to know the value of my fragmentColor
        color = vec3(1, 0, 0);
    }
    

调试器是否允许我显示我的Color片段的值(在T时刻)?可以使用替代方法来使用值吗?

0 个答案:

没有答案