#version 460 core layout(location = 0) in vec3 position; layout(location = 1) in vec4 aColor; layout(location = 2) in vec3 aNormal; out vec4 vColor; out vec3 vNormal; out vec3 vPosition; layout(location = 0) uniform mat4 transform; layout(location = 1) uniform mat3 normalMatrix; void main() { gl_Position = transform * vec4(position, 1.0); vColor = aColor; vPosition = position; vNormal = normalize(normalMatrix * aNormal); }