Um eine an ein Objekt gebundene Kamera zu simulieren will ich die Matrizen der einzelnen Objekte durch die Matrix des Kamera-Objektes vor dem Rendern teilen. Gibt es, da es ja auch glMultMatrixf zur Multiplikation der aktuellen Matrix mit einer anderen Matrix gibt, auch einen Befehl zur Division der aktuellen Matrix durch eine andere Matrix? :huh: Sowas wie "glDivMatrixf" eben.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Sowas wie glDivMatrix gibts natürlich nicht.Allerdings brauchst du das auch nicht, wenn du in Mathe ein wenig aufgepasst hast : m1/m2 lässt sich nämlich auch durch m1*(1/m2) realisieren.Du liest also zuerst mit glGetDoublev(GL_MODELVIEW_MATRIX) deine aktuelle Modelansichtsmatrix in eine Variable ein, und machst aus dieser Matrix dann mittels ner eigenen Funktion 1/Modelansichtsmatrix.Danach multiplizierst du diese über glMultMatrix mit der Objektmatrix und schon hast du als Ergebnis Objektmatrix/Kameramatrix. Wenn du das ganz dann noch in eine handliche Funktion, idealerweise mit dem Namen glDivMatrix packst und in deinen Basecode reinbringst, musst du dir um dieses Problem nie wieder Sorgen machen.
Dass m1/m2=m1*(1/m2) ist mir klar. Aber wie rechne ich denn 1/m2 aus? :unsure: Ich bin erst in der 11. Klasse und da ham wer sowas noch nicht durchgenommen. Wenn 1/m2=m^-1, ist dann nicht 1/m2 die Inverse Matrix von m2? Ich dachte nämlich immer, dass Matrix^-1 die Inverse dieser Matrix ist.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
1/m2 ist gleich der Umkehrung von m2 also der inversen Matrix und entspricht damit in etwa dem Kehrwert bei reelen Zahlen.(1/m2)*m2 ist deshalb auch gleich der Einheitsmatrix.Über google hab ich folgendes zum Invertieren einer Matrix gefunden : <a href='http://www.hixman.de/htdocs/studium/mathe/matrix.html' target='_blank'>http://www.hixman.de/htdocs/studium/mathe/matrix.html</a> (siehe ganz unten), was die Sache recht einfach machen dürfte.
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.