Renderize grandes pontos circulares no OpenGL moderno

Quero renderizar círculos preenchidos com um raio que varia dinamicamente em torno de um conjunto de pontos cujas coordenadas 2D são armazenadas em um VBO. Até o momento, eu estava usando o GL_POINT_SMOOTH, mas agora tendo migrado para o OpenGL 4.0, essa opção não está mais disponível. Eu vi uma pergunta semelhanteaqui mas isso não atende à minha necessidade porque os centros dos círculos nesse exemplo são codificados no shader de fragmento. Como eu faria isso?

No momento, meu sombreador de vértice fica assim:

#version 400

layout(location=0) in vec2 in_Position;
layout(location=1) in vec4 in_Color;
out vec4 ex_Color;

uniform vec4 bounds;

void main(void){
    float x = -1+2/(bounds.y-bounds.x)*(in_Position.x-bounds.x);
    float y = -1+2/(bounds.w-bounds.z)*(in_Position.y-bounds.z);
    gl_Position = vec4(x,y,0,1);
    ex_Color = in_Color;
}

E meu shader de fragmento fica assim:

#version 400

in vec4 ex_Color;
out vec4 out_Color;

void main(void){
    out_Color = ex_Color;
}

Com esses shaders, estou obtendo pontos quadrados.

questionAnswers(1)

yourAnswerToTheQuestion