Рендеринг больших круговых точек в современном OpenGL
Я хочу визуализировать заполненные круги динамически изменяющегося радиуса вокруг набора точек, чьи 2D-координаты хранятся в VBO. До сих пор я использовал GL_POINT_SMOOTH, но теперь перешел на OpenGL 4.0, эта опция больше не доступна. Я видел похожий вопросВот но это не совсем соответствует моим потребностям, потому что центры кругов в этом примере жестко закодированы в фрагментном шейдере. Как бы я это сделал?
На данный момент мой вершинный шейдер выглядит так:
#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;
}
И мой фрагментный шейдер выглядит так:
#version 400
in vec4 ex_Color;
out vec4 out_Color;
void main(void){
out_Color = ex_Color;
}
С этими шейдерами я получаю квадратные очки.