leichte Anfänger-Frage bzgl. Rotation und Bewegung (OpenGL)



  • Ich habe folgenden Code:

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    
    glRotatef(CamLookAtAngleZ, 0.0f, 0.0f, 1.0f);
    glRotatef(CamLookAtAngleX, 1.0f, 0.0f, 0.0f);
    glRotatef(CamLookAtAngleY, 0.0f, 1.0f, 0.0f);
    
    glTranslatef(0,0,CamMovZ);
    

    AFAIK bin der Mittelpunkt des Ganzen ich mit meiner Kamera und glRotatef rotiert die Szenerie um meinen CamLookAtAngle. Mit glTranslatef müsste ich mich doch dann immer entlang der (feststehenden und nicht rotierten) z-Achse bewegen, unabhängig von der Bewegung der Szenerie. Was passiert ist aber, dass die z-Achse sozusagen mitrotiert und glTranslatef mich immer auf das Objekt zu bzw. weg bewegt.
    Was mache ich falsch, was habe ich da nicht richtig verstanden?
    Ziel ist, dass ich mich frei durch meine Szenerie bewegen kann, wie z.B. bei CounterStrike im Zuschauer-Flug Modus.

    Ich weiss die Frage ist hier wahrscheinlich schon x mal gepostet worden und ich soll mal googlen, hab ich schon getan, aber was ich da gefunden habe war alles recht lang und kompliziert, dabei reichen mir schon ein paar Zeilen code als antwort, dass bei mir das Zehnerle fällt.

    Btw: Weiss wer eine gute Seite, die das mit den Matrizen unter OpenGL kurz und leicht verständlich erklären kann?

    Ach, und noch was: Gibt es sowas wie gluLookAt, nur, dass man den Punkt auf den die Kamera gerichtet ist nicht in absoluten Koordinaten angeben muss, sondern in Winkeln?

    Vielen Dank im Voraus,
    FellaR


Anmelden zum Antworten