summaryrefslogtreecommitdiff
path: root/geometry_shader/shaders/normals.vs
diff options
context:
space:
mode:
Diffstat (limited to 'geometry_shader/shaders/normals.vs')
-rw-r--r--geometry_shader/shaders/normals.vs18
1 files changed, 18 insertions, 0 deletions
diff --git a/geometry_shader/shaders/normals.vs b/geometry_shader/shaders/normals.vs
new file mode 100644
index 0000000..3b728e5
--- /dev/null
+++ b/geometry_shader/shaders/normals.vs
@@ -0,0 +1,18 @@
+#version 330 core
+layout(location = 0) in vec3 apos;
+layout(location = 1) in vec3 anormal;
+
+out VS_OUT {
+ vec3 normal;
+} vs_out;
+
+uniform mat4 view;
+uniform mat4 model;
+
+void
+main(void)
+{
+ mat3 normal_matrix = mat3(transpose(inverse(view*model)));
+ vs_out.normal = normalize(normal_matrix*anormal);
+ gl_Position = view*model*vec4(apos, 1.0);
+}