#version 150 in vec2 vertTexCoord; in vec4 vertColor; uniform float radius; out vec4 fragColor; void main() { float distance = sqrt(vertTexCoord.x * vertTexCoord.x + vertTexCoord.y * vertTexCoord.y); distance = floor(distance * 50.0) / 50.0; float outerCircle = (1.0 - step(radius, distance)) * step(radius - 0.04, distance); float innerCircle = (1.0 - step(radius * 0.7, distance)) * step(radius * 0.7 - 0.04, distance); float angle = atan(vertTexCoord.y, vertTexCoord.x); float arc = step(1.7825957145940461, angle) * (1.0 - step(3.141592653589793, angle)); float alpha = max(outerCircle, innerCircle * arc); fragColor = vertColor * vec4(1.0, 1.0, 1.0, alpha); }