#version 330 core #ifdef NORMAL_MAP out mat3 tangentSpace; #else out vec3 varNormal; #endif out vec2 varTexCoord; // Matrices uniform mat4 modelViewMatrix; uniform mat4 MVP; uniform mat4 viewMatrix; uniform mat3 normalMatrix; layout(location = 0)in vec3 inPosition; layout(location = 1)in vec2 inTexCoord; layout(location = 2)in vec3 inNormal; #ifdef NORMAL_MAP layout(location = 3)in vec3 inTangent; layout(location = 4)in vec3 inBinormal; #endif void main(void) { #ifdef NORMAL_MAP tangentSpace = mat3(normalize(normalMatrix*inNormal), normalize(normalMatrix*inTangent), normalize(normalMatrix*inBinormal)); #else varNormal = normalize(normalMatrix*inNormal); #endif varTexCoord = inTexCoord.xy; gl_Position = MVP * vec4(inPosition, 1.0); }