#version 450 core in vec4 vPosID; in vec4 vCol; in vec4 vControls; layout (location=0) out vec4 fCol; layout (location=1) out vec4 fPos; layout (location=2) out vec4 fNorm; void main() { float d = dot(vControls,vControls); if (d > 1) {discard;} fCol = vec4(vCol.xyz,vCol.w*(1-d)); fPos = vec4(vPosID.xyz, vCol.w*(1-d)); fNorm = vec4(vControls.xy, 0.1 ,fPos.w); // note arbitrary 0.1, might want to point downwards at the edges? }