Ich versuche eine einfache Szene zu schaffen, in der ich herumlaufen kann, mit den Kriterien, in der Lage zu sein, herumzuschwenken und mit den Schlüsseln herumzulaufen. In meiner Zeichnungsszenenfunktion, wenn ich meine Szene übersetze, aber nicht rotiere, funktioniert das Schwenken nicht richtig, da sich die gesamte Szene nur um mich herum dreht, was dazu führt, dass Objekte durch mich gehen. Wenn ich meine Szene rotiere, kann ich richtig herumschwenken, aber ich kann mich nur in eine bestimmte Richtung bewegen. Wenn ich also um 90 Grad nach rechts schwenke, bewege ich mich nach links, anstatt vorwärts zu gehen. Gibt es überhaupt wo ich diese 2 Effekte zusammensetzen kann?Soll ich zuerst übersetzen oder zuerst drehen?
Dies ist der Code, den ich meiner Ansicht nach zeichnen verwenden:
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glPushMatrix();
glTranslated(xposition, 0, zposition); //This is where I translate my views
glRotated(yrot, 0, 1, 0); //
glEnableClientState(GL_NORMAL_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER_ARB, quadVBO);
glNormalPointer(GL_FLOAT, 0, (void*)sizeof(sideArray));
glColorPointer(3, GL_FLOAT, 0, (void*)sizeof(sideArray)+sizeof(normals));
glVertexPointer(3, GL_FLOAT, 0, 0);
glDrawArrays(GL_QUADS, 0, sizeof(sideArray)/sizeof(GLfloat)/3);
glPopMatrix();
glFlush();
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
Hier sind einige Bilder, die jetzt mein Problem veranschaulichen:
drehen dann übersetzen:
Pic1
http://dl.dropbox.com/u/2747708/Screen%20Shot%202012-04-03%20at%2010.17.39%20PM.PNG
Bild2
kann ich die Wende des
http://dl.dropbox.com/u/2747708/Screen%20Shot%202012-04-03%20at%2010.17.48%20PM.PNG
Pic3
jedoch
Kamera imitieren, wenn ich nach vorne gehen, ist es nur in eine Richtung geht, und nicht die Richtung an ich suche.http://dl.dropbox.com/u/2747708/Screen%20Shot%202012-04-03%20at%2010.18.30%20PM.PNG
http://dl.dropbox.com/u/2747708/Screen%20Shot%202012-04-03%20at%2010.18.39%20PM.PNG
Übersetzen dann Drehen:
Pic1
http://dl.dropbox.com/u/2747708/Screen%20Shot%202012-04-03%20at%2010.19.44%20PM.PNG
Pic2
ich bewegen kann frei herumlaufen und in jede Richtung gehen, in die ich schaue.
http://dl.dropbox.com/u/2747708/Screen%20Shot%202012-04-03%20at%2010.19.52%20PM.PNG
Pic3
Allerdings, wenn ich drehen die Szene, die ganze Sache dreht, welche Objekte verursacht durch mich zu befestigen und nicht „pan“ durch den Blick mehr wie wenn ich drehen dann übersetze meine Sichtweise.
http://dl.dropbox.com/u/2747708/Screen%20Shot%202012-04-03%20at%2010.20.01%20PM.PNG