36 lines
661 B
GLSL
36 lines
661 B
GLSL
#version 140
|
|
in 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;
|
|
|
|
}
|