我想渲染一個動態變化半徑的實心圓,它們的二維座標存儲在一個VBO中。到目前爲止,我使用的是GL_POINT_SMOOTH,但現在已經轉向OpenGL 4.0,此選項不再可用。我已經看到類似的問題here,但這並不完全符合我的需要,因爲該示例中圓圈的中心在片段着色器中被硬編碼。我將如何做到這一點?渲染現代OpenGL中的大圓點
此刻,我的頂點着色器看起來是這樣的:
#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;
}
有了這些着色器,我越來越多百分點。
完美!我的混淆源於對片段着色器缺乏瞭解。現在我明白這是如何工作的!非常感謝你。 – jaideep777 2014-11-24 13:25:42