37 lines
664 B
GLSL
37 lines
664 B
GLSL
|
#version 110
|
||
|
varying vec2 tex_coord;
|
||
|
|
||
|
void main (void)
|
||
|
{
|
||
|
vec4 white = vec4(1.0);
|
||
|
vec4 black = vec4(0.2);
|
||
|
vec4 color = white;
|
||
|
|
||
|
// First, cut out our circle
|
||
|
float x = tex_coord.x*2.0 - 1.0;
|
||
|
float y = tex_coord.y*2.0 - 1.0;
|
||
|
|
||
|
float radius = sqrt(x*x + y*y);
|
||
|
if (radius > 1.0) {
|
||
|
if (radius > 1.1) {
|
||
|
++color;
|
||
|
}
|
||
|
|
||
|
gl_FragColor = color;
|
||
|
|
||
|
if (radius > 1.2) {
|
||
|
++color;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
discard;
|
||
|
|
||
|
// If we're near an edge, darken us a tiny bit
|
||
|
if (radius >= 0.75)
|
||
|
color -= abs(pow(radius, 16.0)/2.0);
|
||
|
|
||
|
gl_FragColor = color;
|
||
|
|
||
|
}
|