Искам да изобразя запълнени кръгове с динамично променящ се радиус около набор от точки, чиито 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;
}
С тези шейдъри получавам квадратни точки.