我下载了nvidia Nsight图形调试器,以了解图形调试器的工作方式。 起初,我以为我可以在着色器中看到变量的不同值,但是我觉得它根本不像cpu调试器那样起作用。
确实,我不太了解图形调试器的用处。 我知道我可以在带有参数的drawsCalls上看到状态和调用(通过查看参数的值)。
我还可以看到使用的着色器并编辑着色器。
但是我看不到在着色器中使用的值。如何在不知道值的情况下进行调试?有没有办法显示或查看着色器中使用的值?
我试图在着色器中显示值(但是无法打印出一些内容)...我有些困惑...
例如:
我的顶点着色器:因此,我从存储在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;
}
然后是我的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时刻)?可以使用替代方法来使用值吗?