45 lines
1.0 KiB
GLSL
45 lines
1.0 KiB
GLSL
#version 450
|
|
|
|
layout(push_constant) uniform VertexUniformBufferObject {
|
|
mat4 model;
|
|
mat4 view;
|
|
mat4 proj;
|
|
} ubo;
|
|
|
|
layout(location = 0) out vec3 fragColor;
|
|
|
|
vec3 positions[12] = vec3[](
|
|
vec3(0.0, -1.0, 1.0), // 1
|
|
vec3(1.0, 1.0, 1.0), // 2
|
|
vec3(-1.0, 1.0, 1.0), // 3
|
|
vec3(-1.0, 1.0, 1.0), // 3
|
|
vec3(0.0, 0.0, -1.0), // 4
|
|
vec3(0.0, -1.0, 1.0), // 1
|
|
vec3(0.0, -1.0, 1.0), // 1
|
|
vec3(0.0, 0.0, -1.0), // 4
|
|
vec3(1.0, 1.0, 1.0), // 2
|
|
vec3(1.0, 1.0, 1.0), // 2
|
|
vec3(0.0, 0.0, -1.0), // 4
|
|
vec3(-1.0, 1.0, 1.0) // 3
|
|
);
|
|
|
|
vec3 colors[12] = vec3[](
|
|
vec3(1.0, 0.0, 0.0),
|
|
vec3(0.0, 1.0, 0.0),
|
|
vec3(0.0, 0.0, 1.0),
|
|
vec3(0.0, 0.0, 1.0),
|
|
vec3(1.0, 1.0, 1.0),
|
|
vec3(1.0, 0.0, 0.0),
|
|
vec3(1.0, 0.0, 0.0),
|
|
vec3(1.0, 1.0, 1.0),
|
|
vec3(0.0, 1.0, 0.0),
|
|
vec3(0.0, 1.0, 0.0),
|
|
vec3(1.0, 1.0, 1.0),
|
|
vec3(0.0, 0.0, 1.0)
|
|
);
|
|
|
|
void main() {
|
|
gl_Position = ubo.proj * ubo.view * ubo.model * vec4(positions[gl_VertexIndex], 1.0);
|
|
fragColor = colors[gl_VertexIndex];
|
|
}
|