fragmentShader = () => `
precision mediump float;
uniform vec2 resolution;
uniform vec2 effectPosition;
varying vec2 v_pos;
vec3 rect(vec2 p1, vec2 p2, vec2 st) {
vec2 bl = step(p1,st);
float pct = bl.x * bl.y;
vec2 tr = step(1.0 - p2,1.0-st);
pct *= tr.x * tr.y;
return vec3(pct);
}
void main() {
vec3 color = vec3(0.0);
vec2 st = v_pos / 2.0 + 0.5;
vec2 effectPositionNorm = effectPosition / 2.0 + 0.5;
// effectPositionNorm = vec2(0.5);
float width = 0.05;
vec3 r1 = rect(vec2(0.1, effectPositionNorm.y - width / 2.0), vec2(0.9, effectPositionNorm.y + width / 2.0), st);
vec3 r2 = rect(vec2(effectPositionNorm.x - width / 2.0,0.1), vec2(effectPositionNorm.x + width / 2.0,0.9), st);
color = mod(r1 + r2, vec3(2));
color = mod(color + 1.0, vec3(2));
gl_FragColor = vec4(color,1.0);
}
`