#version 430 core layout (points) in; layout (triangle_strip, max_vertices = 10) out; in vec4 vBackPoss[]; uniform vec2 lightPos; void main() { vec2 posa = gl_in[0].gl_Position.xy; vec2 posb = gl_in[0].gl_Position.zw; vec2 posc = vBackPoss[0].xy; vec2 posd = vBackPoss[0].zw; // gl_Position = vec4 (posa, 0 , 1); // EmitVertex(); // gl_Position = vec4 (posa + (200 * (posa - lightPos)), 0 , 1); // EmitVertex(); // gl_Position = vec4 (posb, 0 , 1); // EmitVertex(); // gl_Position = vec4 (posb + (200 * (posb - lightPos)), 0 , 1); // EmitVertex(); // gl_Position = vec4 (posb + (200 * (posb - lightPos)), 0 , 1); // EmitVertex(); // gl_Position = vec4 (posd, 0 , 1); // EmitVertex(); gl_Position = vec4 (posd, 0 , 1); EmitVertex(); gl_Position = vec4 (posd + (200 * (posd - lightPos)), 0 , 1); EmitVertex(); gl_Position = vec4 (posc, 0 , 1); EmitVertex(); gl_Position = vec4 (posc + (200 * (posc - lightPos)), 0 , 1); EmitVertex(); EndPrimitive(); }