У меня есть простой вершинный и фрагментный шейдер, который работает и что-то рисует. В вершинном шейдере я установил переменную fs_uv
, но я не использую ее в фрагментном шейдере. Однако, если я закомментирую эту строку или изменим ее на fs_uv = coord;
, шейдер прекратит рисовать. Что вызвало бы это?
Вершинный шейдер:
#version 300 es
precision mediump float;
precision mediump int;
precision lowp sampler2D;
precision lowp sampler2DArray;
in vec4 uv;
out vec2 fs_uv;
flat out uint draw_id;
uniform mat4 matrix;
void main() {
vec2 coord = vec2(gl_VertexID >> 1, gl_VertexID & 1);
fs_uv = uv.xy + coord * uv.zw;
gl_Position = matrix * vec4(vec2(100.0f) * coord, 0.0f, 1.0f);
}
Фрагмент шейдера:
#version 300 es
precision mediump float;
precision mediump int;
precision lowp sampler2D;
precision lowp sampler2DArray;
in vec2 fs_uv;
out vec4 color;
void main() {
color = vec4(1.0f, 0.0f, 0.0f, 1.0f);
}