#version 430 layout (location = 0) in vec3 position; layout (location = 1) in vec3 aNormal; layout (location = 2) in vec2 texture_coordinate; layout (location = 3) in vec3 aTangent; layout (location = 4) in vec3 aBitangent; uniform mat4 model; uniform mat4 projection; uniform mat4 view; out PipelineData { vec4 position; vec2 texture_coordinate; } vs_out; void main() { mat4 pvm = projection * view * model; vs_out.texture_coordinate = texture_coordinate; vec4 homogenous_position = vec4(position, 1.0); vs_out.position = pvm * homogenous_position; gl_Position = vs_out.position; }