#version 330 uniform mat4 model; uniform mat4 view; uniform mat4 projection; layout (location=0) in vec3 position; layout (location=1) in vec3 normal; layout (location=2) in vec2 uv0; layout (location=3) in vec3 tangent; layout (location=4) in vec3 bitangent; layout (location=5) in vec4 color; out vec4 vertexColor; out mat3 TBN; out vec3 fPos; out vec2 TCordinate; void main() { gl_Position = projection * view * model * vec4(position, 1.0f); fPos = vec3(view * model * vec4(position, 1.0f)); vertexColor = color; vec3 T = normalize(vec3(model * vec4(tangent, 0.0f))); vec3 B = normalize(vec3(model * vec4(bitangent, 0.0f))); vec3 N = normalize(vec3(model * vec4(normal, 0.0f))); TBN = mat3(T, B, N); TCordinate = uv0; }