1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
// Common vertex shader for fullscreen post-processing effects.
// Draws a single triangle that covers the entire screen, with uv
// coordinates in [0..1]
struct VertexOutput {
@builtin(position) position: vec4<f32>,
@location(0) uv: vec2<f32>,
};
@vertex fn vs_main(@builtin(vertex_index) i: u32) -> VertexOutput {
let pos = array<vec4f, 3>(vec4f(-1, -1, 0, 1.), vec4f(3, -1, 2., 1.), vec4f(-1, 3, 0, -1));
var out: VertexOutput;
out.position = vec4f(pos[i].xy, 0.0, 1.0);
out.uv = pos[i].zw;
return out;
}
|