glEvalCoord cuando se usa con glFeedback no da salida como se esperaba

Estoy intentando leer el valor de glEvalCoord, pero no obtengo los valores exactos que debería obtener. Mi codigo es

GLfloat ctrlpoints[4][3] = {
    { -4.0, -4.0, 0.0}, { -2.0, 4.0, 0.0}, 
    {  2.0, -4.0, 0.0}, {  4.0, 4.0, 0.0}};

void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    glEnable(GL_LIGHTING);
    glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]);
    glEnable(GL_MAP1_VERTEX_3);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    GLint size;
    GLfloat feedBuffer[1024];

    glFeedbackBuffer (1024, GL_3D, feedBuffer);
    glRenderMode (GL_FEEDBACK);
    glBegin (GL_POINTS);
    for (int i=0; i<=30; ++i)
    {
        GLfloat t = GLfloat(i)/30;
        glEvalCoord1f(t);   
    }
    glEnd();
    size = glRenderMode (GL_RENDER);
    cerr<<size<<endl;
}

Ahora, no estoy seguro, pero ¿no debería darme 30 * 3 valores para cada una de las coordenadas x, y, z de la curva? Pero solo estoy obteniendo 7 * 3 valores. Y la salida de tamaño es 28.

Respuestas a la pregunta(1)

Su respuesta a la pregunta