layout (location = 0) out vec2 outUV;
layout(push_constant) uniform readonly PushConstant{
mat4 mvp;
vec4 color;
};
layout(std430, binding = 3) buffer readonly SceneInformation {
mat4 view;
void main() {
vec2 p = vec2((gl_VertexIndex << 1) & 2, gl_VertexIndex & 2);
outUV = vec2(p.x, 1.0 - p.y);
p = p * 2.0f + -1.0f;
const vec3 right = {view[0][0], view[1][0], view[2][0]};
const vec3 up = {view[0][1], view[1][1], view[2][1]};
vec3 position = right * p.x * 0.25 + up * p.y * 0.25;
gl_Position = mvp * vec4(position, 1.0);
}