glEvalCoord при использовании с glFeedback не дает вывод, как ожидалось

Я пытаюсь прочитать значение из glEvalCoord, но не получаю точные значения, которые я должен получить. Мой код

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;
}

Теперь я не уверен, но не должен ли он дать мне 30 * 3 значений для каждой из x, y и z координат кривой? Но я получаю только 7 * 3 значения. И выходной размер составляет 28.

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

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