28 lines
585 B
Plaintext
28 lines
585 B
Plaintext
#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;
|
|
}
|