diff --git a/shaders/texture_loading/glsl/bg.frag b/shaders/texture_loading/glsl/bg.frag index b0c9aab..ee29b3d 100644 --- a/shaders/texture_loading/glsl/bg.frag +++ b/shaders/texture_loading/glsl/bg.frag @@ -1,17 +1,15 @@ #version 450 // 输入变量(与顶点着色器输出对应) -layout(location = 0) in vec2 inPosition; +layout(location = 0) in vec2 inTexCoord; // 输出颜色 layout(location = 0) out vec4 outColor; +// 纹理采样器 +layout(binding = 0) uniform sampler2D texSampler; + void main() { - // 示例:基于位置生成颜色 - outColor = vec4( - (inPosition.x + 1.0) * 0.5, // 将X从[-1,1]映射到[0,1] - (inPosition.y + 1.0) * 0.5, // 将Y从[-1,1]映射到[0,1] - 0, // 蓝色分量固定 - 1.0 // Alpha固定 - ); + // 采样纹理 + outColor = texture(texSampler, inTexCoord); } \ No newline at end of file diff --git a/shaders/texture_loading/glsl/bg.frag.spv b/shaders/texture_loading/glsl/bg.frag.spv index 279cea5..705a775 100644 Binary files a/shaders/texture_loading/glsl/bg.frag.spv 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 index 3dad2ab..f23fcc1 100644 --- a/shaders/texture_loading/glsl/bg.vert +++ b/shaders/texture_loading/glsl/bg.vert @@ -2,7 +2,7 @@ // 硬编码的顶点数据 - 4个顶点组成三角形带覆盖整个屏幕 const vec2 positions[6] = vec2[6]( - vec2( 1.0, 1.0), // 右上 - 三角形1 + vec2( 1.0, 1.0), // 右上 - 三角形1 vec2(-1.0, 1.0), // 左上 - 三角形1 vec2(-1.0, -1.0), // 左下 - 三角形1 @@ -11,8 +11,19 @@ const vec2 positions[6] = vec2[6]( vec2( 1.0, 1.0) // 右上 - 三角形2 ); +// 硬编码的纹理坐标 +const vec2 texCoords[6] = vec2[6]( + vec2(1.0, 1.0), // 右上 + vec2(0.0, 1.0), // 左上 + vec2(0.0, 0.0), // 左下 + + vec2(0.0, 0.0), // 左下 + vec2(1.0, 0.0), // 右下 + vec2(1.0, 1.0) // 右上 +); + // 输出变量 -layout(location = 0) out vec2 outPosition; +layout(location = 0) out vec2 outTexCoord; void main() { // 获取顶点位置 @@ -21,6 +32,6 @@ void main() { // 设置输出位置(Vulkan使用不同的坐标系) gl_Position = vec4(position, 0.0, 1.0); - // 输出位置坐标(如果需要传递给片段着色器) - outPosition = position; + // 输出纹理坐标 + outTexCoord = texCoords[gl_VertexIndex]; } \ No newline at end of file diff --git a/shaders/texture_loading/glsl/bg.vert.spv b/shaders/texture_loading/glsl/bg.vert.spv index 5d1f271..b9c73c6 100644 Binary files a/shaders/texture_loading/glsl/bg.vert.spv and b/shaders/texture_loading/glsl/bg.vert.spv differ