summaryrefslogtreecommitdiff
path: root/glsl/shader.vert
diff options
context:
space:
mode:
Diffstat (limited to 'glsl/shader.vert')
-rw-r--r--glsl/shader.vert30
1 files changed, 30 insertions, 0 deletions
diff --git a/glsl/shader.vert b/glsl/shader.vert
new file mode 100644
index 0000000..2407255
--- /dev/null
+++ b/glsl/shader.vert
@@ -0,0 +1,30 @@
+#version 450
+#extension GL_ARB_separate_shader_objects : enable
+
+layout(location = 0) in vec3 in_position;
+layout(location = 1) in vec3 in_normal;
+layout(location = 2) in vec3 in_color;
+layout(location = 3) in vec2 in_texture_coord;
+
+layout(location = 0) out vec3 frag_color;
+layout(location = 1) out vec2 frag_texture_coord;
+
+layout(set = 0, binding = 0) uniform UBOModelInstance
+{
+ mat4 model[128];
+} ubo_model_instance;
+
+layout(set = 1, binding = 0) uniform UBOViewProjection
+{
+ mat4 view;
+ mat4 proj;
+} ubo_view_projection;
+
+void main()
+{
+ gl_Position =
+ ubo_view_projection.proj * ubo_view_projection.view *
+ ubo_model_instance.model[gl_InstanceIndex] * vec4(in_position, 1.0);
+ frag_color = in_color;
+ frag_texture_coord = in_texture_coord;
+}