Files
loop/shader/wallShadow.geom
T

27 lines
562 B
GLSL

#version 430 core
layout (points) in;
layout (triangle_strip, max_vertices = 4) out;
uniform vec2 lightPos;
uniform mat4 worldMat;
void emitLine (vec2 pa)
{
gl_Position = vec4 (pa, 0, 1);
EmitVertex();
gl_Position = vec4 (pa + (200 * (pa - lightPos)), 0 , 1);
EmitVertex();
}
void main()
{
vec4 frontL4 = worldMat * vec4(gl_in[0].gl_Position.xy, 0 ,1);
vec4 frontR4 = worldMat * vec4(gl_in[0].gl_Position.zw, 0 ,1);
vec2 frontL = frontL4.xy;
vec2 frontR = frontR4.xy;
emitLine (frontR);
emitLine (frontL);
EndPrimitive();
}