summaryrefslogtreecommitdiff
path: root/assets/shaders/static_geometry.vert
diff options
context:
space:
mode:
Diffstat (limited to 'assets/shaders/static_geometry.vert')
-rw-r--r--assets/shaders/static_geometry.vert33
1 files changed, 33 insertions, 0 deletions
diff --git a/assets/shaders/static_geometry.vert b/assets/shaders/static_geometry.vert
new file mode 100644
index 0000000..2021691
--- /dev/null
+++ b/assets/shaders/static_geometry.vert
@@ -0,0 +1,33 @@
+#version 410 core
+
+// Vertex attributes
+layout(location = 0) in vec3 inPosition;
+layout(location = 1) in vec3 inNormal;
+layout(location = 2) in vec2 inTexCoords;
+
+uniform Camera {
+ mat4 view;
+ mat4 proj;
+ vec4 viewPos;
+} cam;
+
+uniform Model {
+ mat4 inner;
+} model;
+
+// Outputs
+layout(location = 0) out vec3 fragWorldPos;
+layout(location = 1) out vec3 fragNormal;
+layout(location = 2) out vec2 fragTexCoords;
+
+out vec4 viewPos;
+
+void main() {
+ fragWorldPos = vec3(model.inner * vec4(inPosition, 1.0));
+ fragNormal = mat3(transpose(inverse(model.inner))) * inNormal; // world-space normal
+ fragTexCoords = inTexCoords;
+
+ viewPos = cam.viewPos;
+
+ gl_Position = cam.proj * cam.view * model.inner * vec4(inPosition, 1.0);
+}