#version 330 core layout(location=0) in vec3 position; layout(location=1) in vec3 normal; layout(location=2) in vec2 uv; uniform mat3 normal_mat; uniform mat4 model; layout (std140) uniform Common { mat4 projection; mat4 view; vec3 camera_position; }; // interface block out VS_OUT { vec3 vert_normal; } vs_out; void main() { vs_out.vert_normal = normal_mat * normal; gl_Position = view * model * vec4(position, 1.0); };