我有一个简单的顶点和片段着色器,可以工作并绘制一些东西。在顶点着色器中,我设置了变量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);
}