Bildung einer inversen Matrix (glLoadMatrix)
-
Hallo,
ich möchte gern auf einem bewegten Objekt eine Kamera 'befestigen'. Meine Idee war jetzt die MODEL_VIEW Matrix des Objektes zu invertieren und mit der Projektionsmatrix zu multiplizieren (was ja auch prinzipiell funktioniern sollte). Um aber auf die doch aufwendigen Invertierungalgorithmen zu verzichten habe ich versucht bei der Objekttransformation die jeweils inverse Transformation auf einer zweiten Matrix auszuführen. Das Problem ist aber, daß man anscheinen glLoadMatrix nur einmal pro Frame aufrufen kann, nur leider finde ich dazu weder einen Hinweis noch einen Workaround und hoffe jetzt auf eure Hilfe

-
glLoadMatrix kann natuerlich so oft aufgerufen werden wie man moechte.
-
Mmh, wenn ich das mache bewegt sich bei mir nichts mehr, benutze ich z.B. glLoadmatrix(meine_matrix) zweimal hintereinander scheinen keine Transformationen zu funktionieren.
Edit:
Nochmal etwas genauer:
Funktioniert:glLoadMatrixd(m_matrix); glTranslated(m_r.x,m_r.y,m_r.z);Funktioniert nicht:
glLoadMatrixd(m_matrix); glTranslated(m_r.x,m_r.y,m_r.z); glLoadMatrixd(m_matrix_inv); glTranslated(-m_r.x,-m_r.y,-m_r.z); glLoadMatrixd(m_matrix);
-
Sorry, man sollte eben nicht proggen wenn man müde ist

Es fehlt natürlich der Aufruf von glGet zwischen den Transformationen.
-
welches Get, klaer uns auf

sicher dass du double und nicht nur float als matrix-elemente nutzt?
-
wie waer's mit glPushMatrix/glPopMatrix?
-
Das glGetdoublev, ich muss die Matrix ja auch wieder speichern nach der Transformation

Sorry, hab den Post gar nicht mehr verfolgt..Gruß,
connan.