#version 440 layout(location=0) in vec3 coord3d; layout(location=1) in vec3 v_normal; layout(location=2) in vec3 v_color; layout(location=3) in vec2 v_texmap; layout(location=5) in vec3 v_tangent; layout(location=6) in vec3 v_bittangent; uniform mat4 mvp; uniform mat3 NormalMatrix; uniform mat4 ModelViewMatrix; out vec3 fNormal; out mat3x3 tangentMatrix; out vec3 pos; out vec2 texCoord; void main(void) { vec3 fBittangent = normalize(NormalMatrix * v_bittangent); vec3 fTangent = normalize(NormalMatrix * v_tangent); fNormal = normalize(NormalMatrix * v_normal); tangentMatrix = mat3(fTangent.x, fNormal.x, fBittangent.x, fTangent.y, fNormal.y, fBittangent.y, fTangent.z, fNormal.z, fBittangent.z); pos = (ModelViewMatrix * vec4(coord3d, 1.0)).xyz; texCoord = v_texmap; gl_Position = mvp * vec4(coord3d, 1.0f); }