Registriert: Mo Nov 24, 2003 21:28 Beiträge: 28 Wohnort: Kiel
Ich möchte in ein´s meiner ersten OpenGL-Programme auch eine Kamerasteuerung (wie z.B. in UT oder Half-Life) einbauen.
Gibt´s irgendne Möglichkeit in OpenGL herauszufinden in welcher "Relation" bzw. in welchem "Winkel" das Blickfeld der Kamera zu den Achsen x,y und z befindet?
Oder muss ich das selber irgendwie rausrechnen?
Mein Problem ist bei der Maus-Kamersteurung die Drehung um die Achse (ich muss da ja um eine mitwandernde X-Achse drehen) sowie das Vorwärts- bzw. Seitwärts-Bewegen per Tastatur (also je nach Blickrichtung geradeaus laufen; im Moment lauf ich bei Druck auf die Cursor-Tasten immer in die selbe Richtung, was nicht so schön ist das bei bestimmten Blickwinkel die Steuerung hässlich invertiert)
Tja, normalerweise gäbs in der Tutorialsektion einen netten Artikel zur Orientierung von Objekten - aber die ist ja leider noch offline.
Ganz kurz und schmerzlos: wenn du eine 4x4 Transformationsmatrix hast, entsprechen die ersten 3x3 Komponenten davon den Richtungsvektoren des lokalen Koordinatensystems, wenn du das in Bezug auf die Vektoren (1,0,0), (0,1,0), (0,0,1) bringst, hast du deine Winkel.
Du kannst deine Kameramatrix der Einfachheit halber auch um irgendwelche Differenzwinkel weitertransformieren, anstatt die Kameramatrix immer neu aufzubauen, musst aber dann darauf achten, dass die Transformationsmatrix nicht auf Grund von Rechenungenauigkeiten irgendwann degeneriert.
Ich hoffe, das klingt jetzt nicht zu unverständlich.
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.