This commit is contained in:
xsl
2025-09-16 19:25:18 +08:00
parent 3d205ab184
commit a418be886c
4 changed files with 21 additions and 12 deletions
+6 -8
View File
@@ -1,17 +1,15 @@
#version 450 #version 450
// 输入变量(与顶点着色器输出对应) // 输入变量(与顶点着色器输出对应)
layout(location = 0) in vec2 inPosition; layout(location = 0) in vec2 inTexCoord;
// 输出颜色 // 输出颜色
layout(location = 0) out vec4 outColor; layout(location = 0) out vec4 outColor;
// 纹理采样器
layout(binding = 0) uniform sampler2D texSampler;
void main() { void main() {
// 示例:基于位置生成颜色 // 采样纹理
outColor = vec4( outColor = texture(texSampler, inTexCoord);
(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固定
);
} }
Binary file not shown.
+15 -4
View File
@@ -2,7 +2,7 @@
// 硬编码的顶点数据 - 4个顶点组成三角形带覆盖整个屏幕 // 硬编码的顶点数据 - 4个顶点组成三角形带覆盖整个屏幕
const vec2 positions[6] = vec2[6]( 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
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 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() { void main() {
// 获取顶点位置 // 获取顶点位置
@@ -21,6 +32,6 @@ void main() {
// 设置输出位置(Vulkan使用不同的坐标系) // 设置输出位置(Vulkan使用不同的坐标系)
gl_Position = vec4(position, 0.0, 1.0); gl_Position = vec4(position, 0.0, 1.0);
// 输出位置坐标(如果需要传递给片段着色器) // 输出纹理坐标
outPosition = position; outTexCoord = texCoords[gl_VertexIndex];
} }
Binary file not shown.