// version 120 is needed for gl_PointCoord #version 120 uniform vec4 uniform_color; uniform float percent_outline_radius; uniform float percent_center_radius; vec4 calc_color(float radius, vec4 color) { return ((radius < percent_center_radius) || (radius > 1.0 - percent_outline_radius)) ? vec4(0.5 * color.rgb, color.a) : color; } void main() { vec2 pos = (gl_PointCoord - 0.5) * 2.0; float radius = length(pos); if (radius > 1.0) discard; gl_FragColor = calc_color(radius, uniform_color); }