#version 330 core layout(location=0) in vec3 position; layout(location=1) in vec3 normal; layout(location=2) in vec2 uv; out vec3 vert_normal; out vec3 frag_position; out vec2 uv_coords; uniform mat3 normal_mat; uniform mat4 model; uniform mat4 view; uniform mat4 projection; void main() { vert_normal = normal_mat * normal; frag_position = vec3(model * vec4(position, 1.0)); uv_coords = uv; gl_Position = projection * view * model * vec4(position, 1.0); };