Files
loop/shader/texture/barrel.geom
T
2021-07-09 14:36:49 +02:00

49 lines
1.1 KiB
GLSL

#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();
}