diff --git a/shaders/texture_loading/glsl/bg.frag b/shaders/texture_loading/glsl/bg.frag new file mode 100644 index 0000000..6ead49d --- /dev/null +++ b/shaders/texture_loading/glsl/bg.frag @@ -0,0 +1,11 @@ +#version 450 + +layout(binding = 0) uniform sampler2D backgroundTexture; // Binding 0 + +layout(location = 0) in vec2 inUV; +layout(location = 0) out vec4 outColor; + +void main() { + //outColor = texture(backgroundTexture, inUV); + outColor = vec4(1.0, 0.0, 0.0, 1.0); // 输出红色 +} \ No newline at end of file diff --git a/shaders/texture_loading/glsl/bg.frag.spv b/shaders/texture_loading/glsl/bg.frag.spv new file mode 100644 index 0000000..2c12da6 Binary files /dev/null and b/shaders/texture_loading/glsl/bg.frag.spv differ diff --git a/shaders/texture_loading/glsl/bg.vert b/shaders/texture_loading/glsl/bg.vert new file mode 100644 index 0000000..335ebdc --- /dev/null +++ b/shaders/texture_loading/glsl/bg.vert @@ -0,0 +1,29 @@ +#version 450 + +// 在没有顶点缓冲区的情况下,通过顶点ID生成全屏 quad +// 顶点ID: 0=(-1,-1), 1=(1,-1), 2=(-1,1), 3=(1,1) +out gl_PerVertex { + vec4 gl_Position; +}; + +layout(location = 0) out vec2 outUV; + +void main() { + vec2 pos; + vec2 uv; + if (gl_VertexIndex == 0) { + pos = vec2(-1.0, -1.0); + uv = vec2(0.0, 0.0); + } else if (gl_VertexIndex == 1) { + pos = vec2(1.0, -1.0); + uv = vec2(1.0, 0.0); + } else if (gl_VertexIndex == 2) { + pos = vec2(-1.0, 1.0); + uv = vec2(0.0, 1.0); + } else { // gl_VertexIndex == 3 + pos = vec2(1.0, 1.0); + uv = vec2(1.0, 1.0); + } + gl_Position = vec4(pos, 0.0, 1.0); + outUV = uv; +} \ No newline at end of file diff --git a/shaders/texture_loading/glsl/bg.vert.spv b/shaders/texture_loading/glsl/bg.vert.spv new file mode 100644 index 0000000..fb7e2bc Binary files /dev/null and b/shaders/texture_loading/glsl/bg.vert.spv differ