summaryrefslogtreecommitdiff
path: root/vk-cube/vk-cube-vs.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'vk-cube/vk-cube-vs.glsl')
-rw-r--r--vk-cube/vk-cube-vs.glsl42
1 files changed, 42 insertions, 0 deletions
diff --git a/vk-cube/vk-cube-vs.glsl b/vk-cube/vk-cube-vs.glsl
new file mode 100644
index 0000000..eb51557
--- /dev/null
+++ b/vk-cube/vk-cube-vs.glsl
@@ -0,0 +1,42 @@
+#version 450
+// ================================================================================================
+// Vertex shader
+//
+// Build:
+// $ glslc -o vk-cube-vs.spv -fshader-stage=vertex vk-cube-vs.glsl
+//
+// Changelog:
+// 5/31/2026: Initial release
+//
+// License:
+// Copyright (c) 2026 Hunter Kvalevog
+//
+// Permission to use, copy, modify, and/or distribute this software for any
+// purpose with or without fee is hereby granted.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+// WITH REGARD TO THIS SOFTWARE.
+// ================================================================================================
+
+layout (binding = 0) uniform UBO
+{
+ mat4 mvp;
+ mat4 model;
+};
+
+layout (location = 0) in vec3 v_p;
+layout (location = 1) in vec3 v_c;
+layout (location = 2) in vec3 v_n;
+
+layout (location = 0) out vec3 f_c;
+layout (location = 1) out vec3 f_n;
+layout (location = 2) out vec3 f_p;
+
+void main()
+{
+ f_c = v_c;
+ f_n = mat3(model) * v_n;
+ f_p = (model * vec4(v_p, 1.0f)).xyz;
+ gl_Position = mvp * vec4(v_p, 1.0f);
+}
+