#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; }