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
// 输入变量(与顶点着色器输出对应)
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);
}
Binary file not shown.
+15 -4
View File
@@ -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];
}
Binary file not shown.