#version 330 core layout(location = 0) in vec3 aPos; layout(location = 1) in vec3 aN; uniform mat4 model; uniform mat4 view; uniform mat4 projection; out vec3 vWorldPos; out vec3 vWorldNormal; void main() { vec4 worldPos = model * vec4(aPos, 1.0); mat3 normalMat = transpose(inverse(mat3(model))); vWorldPos = worldPos.xyz; vWorldNormal = normalize(normalMat * aN); gl_Position = projection * view * worldPos; }