layout (location=0) in vec3 a_co; layout (location=1) in vec3 a_norm; layout (location=2) in vec2 a_uv; layout (location=3) in vec4 a_colour; layout (location=4) in vec4 a_weights; layout (location=5) in ivec4 a_groups; uniform mat4 uPv; uniform mat4x3 uMdl; out vec3 aNorm; out vec2 aUv; out vec3 aCo; void main() { vec3 world_pos = uMdl * vec4( a_co, 1.0 ); gl_Position = uPv * vec4(world_pos,1.0); aNorm = a_norm; aCo = world_pos; aUv = a_uv; }