#version 430 core layout (points) in; layout (triangle_strip, max_vertices = 4) out; in vec2 vRad1[]; in vec2 vRad2[]; in float vFactor[]; out vec2 cenPos; out vec2 texPos; out vec2 texDist; out float factor; //const float root = 1 / sqrt(2); const float root = 1; vec2 cpos = gl_in[0].gl_Position.xy; vec2 rad1 = vRad1[0]; vec2 rad2 = vRad2[0]; vec2 g(float x,float y) { return vec2 //(x,y); (dot(rad1-cpos,vec2(x,y)-cpos) ,dot(rad2-cpos,vec2(x,y)-cpos) ); } void main() { float factor = vFactor[0]; cenPos = cpos; texPos = vec2(1,1); //texDist = g(root,root); texDist = vec2(root,root); gl_Position = vec4 (1,1,0,1); //gl_Position = vec4 (cenPos,0,1); EmitVertex(); texPos = vec2(1,0); //texDist = g(root,-root); texDist = vec2(root,-root); gl_Position = vec4 (1,-1,0,1); EmitVertex(); texPos = vec2(0,1); //texDist = g(-root,root); texDist = vec2(-root,root); gl_Position = vec4 (-1,1,0,1); EmitVertex(); texPos = vec2(0,0); //texDist = g(-root,-root); texDist = vec2(-root,-root); gl_Position = vec4 (-1,-1,0,1); EmitVertex(); EndPrimitive(); }