#version 420 core layout (location = 0) in vec3 aPos; layout (location = 1) in vec3 aNormal; out vec3 FragPos; out vec3 Normal; out vec3 viewPos; uniform mat4 model; uniform mat4 view; uniform mat4 projection; uniform mat4 model_normal; uniform vec3 view_position; void main() { FragPos = vec3(model * vec4(aPos, 1.0f)); Normal = vec3(model_normal * vec4(aNormal, 1.0f)); viewPos = view_position; gl_Position = projection * view * vec4(FragPos, 1.0f); }