Registriert: Mo Jan 24, 2005 15:55 Beiträge: 28 Wohnort: Biberach an der Riß
Hallo!
Hab ne Frage:
Wie kann ich bei OpenGl meine Position (x,y,z) und meinen Blickwinkel (also in welche Richtung, und ob nach oben oder unten...) festlegen?
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das hat wohl dann was mit Mathematik zu tun. Schätze du musst dir mit glGet(GL_MODELVIEW_MATRIX) die Matrixholen und dann mit (0,0,0) multiplizieren.
Aber das is jetzt nur so ne Idee.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Die Rotationsmatrix, die die Blickrichtung beinhaltet ist die obere linke 3x3 Matrix in der Modelviewmatrix - zumindest, wenn man nicht skaliert. Wenn man nur die Blickrichtung haben will, kann mans mit dem Vektor (0, 0, -1) bzw. (0, 0, -1, 0) multiplizieren, je nachdem, ob man nur die Rotationsmatrix nimmt, oder die ganze Modelviewmatrix. Der UpVektor geht ähnlich: (0, 1, 0) bzw. (0, 1, 0, 0).
Es geht noch einfacher, denn die Bilder der Einheitsvektoren kann man direkt aus der Matrix ablesen - willst du also wissen, wie der Up-Vektor (0,1,0) gedreht wird, betrachte die Linke-Obere 3x3 Matrix und lies die 2. Spalte von Oben nach unten. Entsprechend sieht es für (1,0,0) aus. Nehme hier die 1 Erste Spalte und für (0,0,1) die Dritte. Multiplikation der Vektoren mit der Matrix ist also gar nicht nötig. Bei so einfachen Matrizen, wie Rotatiosnmatrizen gibt es übriges einige kleine Helferlein, so z.B. auch wenn man die Matrix invertieren möchte...
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Sobald aber zu der Rotation noch Spiegelungen, Skalierungen und Scherungen hinzukommen siehts finster aus. (Dachte ich jedenfalls) Da muss man dann tatsächlich rechnen. Also solange kein glScale benutzt wurde stimm ich zu, aber nicht immer is das der Fall.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 6 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.