+#version 330
+in vec3 pos;
+in vec3 unscaledNormal;
+in vec2 vTexCoord;
+
+uniform mat4 model;
+uniform mat4 view;
+uniform mat4 projection;
+
+out vec3 normal;
+out vec2 texCoords;
+
+out vec3 lightPos, viewPos, worldPos;
+
+void main() {
+ texCoords = vTexCoord;
+
+ worldPos = vec3(model * vec4(pos, 1.f));
+
+ normal = mat3(transpose(inverse(model))) * unscaledNormal;
+
+ gl_Position = projection * view * model * vec4(pos, 1.f);
+}
+