35 lines
844 B
GLSL

#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);
}