Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
03.11.2007, 16:41
Death-Angel



Hiho, ich habe da ein Problem mit dem GL_QUAD_STRIP

Und zwar möchte ich ein Quadrat in die xz-Ebene zeichnen, mit jeweils einer Einheit Abstand vom Ursprung zu jedem Vertex.

Quellcode:glBegin(GL_QUAD_STRIP);
        glVertex3f(1, 0 , 1);
        glVertex3f(1, 0, -1);
        glVertex3f(-1, 0, -1);
        glVertex3f(-1, 0, 1);
    glEnd();
Leider kommt nur das dabei raus:

Ich verstehe zwar das Problem, dass durch dieses QUAD_STRIP die erste Startkoordinate (0,0,0) ist, aber leider weis ich nicht, wie ich diesen Startpunkt irgendwo anderst setzen kann. Also in diesem Fall sollte es (-1,0,1) sein.

Die Lösung ist bestimmt ganz simpel, aber ich habe dazu nichts gefunden. (Mit QUADS geht es zwar, aber ich muss QUAD_STRIP verwenden)
Vielen Dank!

--

Mein Japan Tagebuch | Japan Gallerie

zum Seitenanfang zum Seitenende Profil || Suche
001
03.11.2007, 17:42
HammerBlade



Zitat:
Death-Angel postete
Ich verstehe zwar das Problem, dass durch dieses QUAD_STRIP die erste Startkoordinate (0,0,0) ist, aber leider weis ich nicht, wie ich diesen Startpunkt irgendwo anderst setzen kann. Also in diesem Fall sollte es (-1,0,1) sein.
Die erste "Startkoordinate" ist nicht (0,0,0), und es gibts für die einfachen gLBegin/glEnd Primitives auch keine "Startkoordinaten". Dass das da gerade durch (0,0,0) geht ist Zufall. Du scheinst das damit zu verwechseln, das GLUT Primitives wie glutWireSphere im Urspung landen, aber dafür gibts ja glTranslatef usw um diese dorthin zu verschieben, wo him na sie haben will.

Dein Problem ist einfach, dass du die Vertices in der falschen Reihenfolge angibst. So wie du es machst ist es für GL_QUADS richtig, nämlich im Kreis. GL_QUAD_STRIP braucht sie aber im Zick-Zack:

Quellcode:glBegin(GL_QUAD_STRIP);
    glVertex3f( 1, 0,  1);
    glVertex3f( 1, 0, -1);
    glVertex3f(-1, 0,  1);
    glVertex3f(-1, 0, -1);
glEnd();
http://wiki.delphigl.com/index.php/glBegin

Vergleiche GL_QUAD_STRIP und GL_QUADS, ist zwar für Delphi, aber OpenGL API ist ja überall gleich.

--

"Mit C++ (noch besser mit C) kann man sich _sehr_ leicht in den Fuss schiessen." - theDon
Auspack und freu! - Auszug aus einer, aus dem japanischen übersetzten, Bedienugsanleitung für ein Spielzeugaquarium.
--
Photon Audio Player | Majestic42.net | How To Ask Questions The Smart Way


Dieser Beitrag wurde am 03.11.2007 um 17:44 von HammerBlade bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
03.11.2007, 20:19
Death-Angel



Ah vielen Dank :)

--

Mein Japan Tagebuch | Japan Gallerie

zum Seitenanfang zum Seitenende Profil || Suche