Я скачал отладчик nsid Graphics от nvidia, чтобы понять, как работает графический отладчик.
Сначала я думал, что могу видеть различные значения моих переменных в моих шейдерах, но у меня есть ощущение, что это не работает совсем как отладчик процессора.
Действительно, я действительно не понимаю полезности графического отладчика.
Я знаю, что могу видеть состояния и мои вызовы в drawsCalls с моими аргументами (видя значение в аргументах).
Я также вижу используемые шейдеры и редактирую шейдеры.
Но я не вижу значений, которые я использую в шейдере. Как я могу отладить, не зная значения? Есть ли способ отобразить или увидеть значения, используемые в шейдерах?
Я пытался отобразить значения в шейдерах (но что-то напечатать невозможно) ... Я немного растерялся ...
Например:
Мой вершинный шейдер: поэтому я восстанавливаю vertexColor из своего куба, который храню в фрагменте ColourColor.
#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;
}
Тогда мой фрагментShader:
#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);
}
Позволяет ли отладчик отображать значение (в момент T) моего фрагмента Color? Можно ли использовать альтернативу для использования значения?