glEvalCoord gibt bei Verwendung mit glFeedback nicht die erwartete Ausgabe aus

Ich versuche, den Wert von glEvalCoord zu lesen, erhalte aber nicht die genauen Werte, die ich erhalten sollte. Mein Code ist

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

Jetzt bin ich mir nicht sicher, aber sollte es mir nicht 30 * 3 Werte für jede der x-, y- und z-Koordinaten der Kurve geben? Ich bekomme aber nur 7 * 3 Werte. Und die Ausgabe der Größe ist 28.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage