#version 450 layout(set = 1, binding = 0) uniform CameraParam { mat4 projection; mat4 view; } Camera; vec3 positions[36] = vec3[]( vec3(-1.0f, 1.0f, -1.0f), vec3(-1.0f, -1.0f, -1.0f), vec3( 1.0f, -1.0f, -1.0f), vec3( 1.0f, -1.0f, -1.0f), vec3( 1.0f, 1.0f, -1.0f), vec3(-1.0f, 1.0f, -1.0f), vec3(-1.0f, -1.0f, 1.0f), vec3(-1.0f, -1.0f, -1.0f), vec3(-1.0f, 1.0f, -1.0f), vec3(-1.0f, 1.0f, -1.0f), vec3(-1.0f, 1.0f, 1.0f), vec3(-1.0f, -1.0f, 1.0f), vec3( 1.0f, -1.0f, -1.0f), vec3( 1.0f, -1.0f, 1.0f), vec3( 1.0f, 1.0f, 1.0f), vec3( 1.0f, 1.0f, 1.0f), vec3( 1.0f, 1.0f, -1.0f), vec3( 1.0f, -1.0f, -1.0f), vec3(-1.0f, -1.0f, 1.0f), vec3(-1.0f, 1.0f, 1.0f), vec3( 1.0f, 1.0f, 1.0f), vec3( 1.0f, 1.0f, 1.0f), vec3( 1.0f, -1.0f, 1.0f), vec3(-1.0f, -1.0f, 1.0f), vec3(-1.0f, 1.0f, -1.0f), vec3( 1.0f, 1.0f, -1.0f), vec3( 1.0f, 1.0f, 1.0f), vec3( 1.0f, 1.0f, 1.0f), vec3(-1.0f, 1.0f, 1.0f), vec3(-1.0f, 1.0f, -1.0f), vec3(-1.0f, -1.0f, -1.0f), vec3(-1.0f, -1.0f, 1.0f), vec3( 1.0f, -1.0f, -1.0f), vec3( 1.0f, -1.0f, -1.0f), vec3(-1.0f, -1.0f, 1.0f), vec3( 1.0f, -1.0f, 1.0f) ); layout(location = 0) out vec3 texCoords; void main() { mat4 normalView = mat4(mat3(Camera.view)); texCoords = positions[gl_VertexIndex]; vec4 pos = Camera.projection * normalView * vec4(positions[gl_VertexIndex], 1.0); gl_Position = pos.xyww; }