Как передать цвет вершин через конвейер шейдера?

Я пытаюсь передать цвет вершины через вершины, геометрию и фрагментный шейдер:

glBegin(GL_POINTS);
    glVertex3f(-2.0f, 0.0f, 0.0); glColor3f(0.0,1.0,0.0);
    glVertex3f(+2.0f, 0.0f, 0.0); glColor3f(0.0,0.0,1.0);
glEnd();

вершинный шейдер:

# version 130 
varying vec4 colorv;
void main() {
    // pass trough:
    gl_Position = gl_ProjectionMatrix * gl_ModelViewMatrix * gl_Vertex; 
    colorv = gl_Color; 
}

геометрия шейдера:

#version 150

layout(points) in; // origo of cell
layout(points, max_vertices = 1) out;

varying vec4 colorv; 
varying vec4 color;
void main (void) 
{   
    for(int i = 0; i < gl_in.length(); ++i)
    {
        color = colorv;
        gl_Position = gl_in[i].gl_Position;
        EmitVertex();
        EndPrimitive();    
    }
}

фрагментный шейдер:

# version 130 
varying vec4 color;
void main (void) 
{   
    // pass-trough:    
    gl_FragColor = color;
}

Однако это не работает :-(. Обе точки получают серый цвет. Как мне это сделать?

Ответы на вопрос(1)

Ваш ответ на вопрос