--- /dev/null
+#version 330 core
+
+layout(location = 0) in vec3 vert_position;
+layout(location = 1) in vec3 vert_normal;
+
+uniform mat4 MV;
+uniform mat4 MVP;
+
+out vec3 view_position;
+out vec3 view_normal;
+
+void main() {
+ gl_Position = MVP * vec4(vert_position, 1.0);
+ view_position = (MV * vec4(vert_position, 1.0)).xyz;
+ view_normal = mat3(MV) * vert_normal;
+}