OpenGL: Koordinaten eines Punktes nach der Rotation?

Ich arbeite gerade mit OpenGL und habe ein grundlegendes Verständnisproblem mit der Rotation.

Der relevante Teil meines Programms sieht in Pseudocode etwa so aus:
Code:
display(){
      gl.glLoadIdentity();
      // alle objekte verschieben
      gl.glTranslatef(0.0f, 0.0f, this.z);
      gl.glTranslatef(0.0f, this.y, 0.0f);
      gl.glTranslatef(this.x, 0.0f,  0.0f);

      // alle objekte drehen
      gl.glRotatef(xrot, 1.0f, 0.0f, 0.0f);
      gl.glRotatef(yrot, 0.0f, 1.0f, 0.0f);
      gl.glRotatef(zrot, 0.0f, 0.0f, 1.0f);

      for(alle objekte){
        gl.glPushMatrix();
            //einzelnes object verschieben
            gl.glTranslatef(objX, objY, objZ);
            gl.glBegin(GL.GL_QUADS);
               rechteck mit mittlepunkt im nullpunkt zeichnen
            gl.glEnd();
       gl.glPopMatrix();
    }
}
}
Wenn ich nun alle Objekte um die Y und um die Z Achse rotiere verändert sich natürlich die X Koordinate aller Objekte. Nun möchte ich gerne die neue X Koordinate berechnen. Gibt es viileicht irgendeine openGL Funktion welcher ich einfach die ursprünglichen Koordinaten geben und diese mir dann die neuen Koordinaten zurückliefert?
Wenn nicht, muss ich es wohl manuell über die Rotationsmatrizen berechnen. Aber in welcher Reihenfolge? Matrizenmultiplikation ist ja nicht kommutativ, deshalb müsste ich wissen in welcher Reihenfolge OpenGL die Matrizen miteinander multipliziert. Weiß das jeamand?
 
Zurück
Oben