#version 430 core layout (location = 0) in vec4 position; layout (location = 1) in vec4 color; layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ; out vec4 vCol; out vec3 vPos; void main() { vec4 posxy = theMat * vec4(position.xyz,1); vec4 posz = theMat * vec4(position.xyw,1); gl_Position = vec4(posxy.xy,posz.z,1); vCol = color; vPos = position.xyz; }