#version 120
varying vec2 uv;
uniform float time;

const float separation = 1500.0, speed = 5.0, size = 150.0;

void main() {
	float dToEdge = abs(uv.y - 0.5) * 2.0;

	vec4 color = gl_Color;
	color.a = 1.0;
	
	color.a *= dToEdge * dToEdge;
	if(dToEdge > 0.85)
		color.a += 0.3 * (dToEdge - 0.8)/0.2;
		
	if(dToEdge > 0.9)
		color.a *= 1.0 - ((dToEdge - 0.9) / 0.1);
	
	if(mod(uv.x + ((1.0 - time) * separation * speed), separation) < size) {
		color.a += max((0.8 - dToEdge) / 0.8, 0.0);
		color.b = 1.0;
	}

	color.a *= gl_Color.a;
	gl_FragColor = color;
}
