30 lines
745 B
Plaintext
30 lines
745 B
Plaintext
#define pi 3.141592653589793238462643383279
|
|
#define twopi (pi * 2.0)
|
|
uniform float dist;
|
|
uniform float scale;
|
|
uniform float minRad;
|
|
uniform float maxRad;
|
|
varying vec2 rcoords;
|
|
|
|
void main() {
|
|
float modDist = dist / scale;
|
|
float width = 0.02 * max(min(modDist / 10.0, 5.0), 1.0);
|
|
float r = length(rcoords);
|
|
if(r >= 1.0 || r < 1.0 - width)
|
|
discard;
|
|
|
|
float ang = atan(rcoords.y, rcoords.x);
|
|
if(ang < minRad && ang > maxRad - twopi)
|
|
discard;
|
|
if(ang > maxRad && ang < minRad + twopi)
|
|
discard;
|
|
|
|
float bdist = r - (1.0 - width);
|
|
|
|
vec4 col = gl_Color;
|
|
col.a = 0.5;
|
|
col.a *= min(bdist / (width * 0.5), (width - bdist) / (width * 0.5));
|
|
col.a *= 1.0 - smoothstep(30.0, 70.0, modDist);
|
|
gl_FragColor = col;
|
|
}
|