Wie konstruiere ich die MVP-Matrix



  • Hallo Gemeinde.

    Nunja, ich hab mich in Matrizen eingelesen und auch gelernt, wie ich mit ihnen rechne.
    Das Aufstellen einer Projektionsmatrix hat auch funktioniert.
    Also wenn ich nur die Projektionsmatrix an den Shader übergebe und den letzten Eintrag auf 1 setze, wird mein Würfel, wie es auch sein sollte quadratisch und nicht rechteckig gezeichnet.

    Nun frage ich mich, wie man eine Projektionsmatrix mit eine Model- oder Viewmatrix multiplizieren soll.
    Denn da ja die meisten Einträge in der P-Matrix auf 0 gesetzt sind, können die Transformationen nicht korrekt ausgeführt werden.

    Habe ich da irgendwas übersehen?
    Ich steh grad irgendwie wirklich im dunkeln.
    Ich bin nochmal mehrere Referenzen zum herleiten der Projektionsmatrix durchgegangen, find aber einfach den Fehler nicht.

    Danke 🙂



  • Da bisher noch niemand geantwortet hat, hier eine kurze Antwort:

    coder++ schrieb:

    ...
    Nun frage ich mich, wie man eine Projektionsmatrix mit eine Model- oder Viewmatrix multiplizieren soll.
    Denn da ja die meisten Einträge in der P-Matrix auf 0 gesetzt sind, können die Transformationen nicht korrekt ausgeführt werden.
    ...

    Dein Problem mit den Nullen verstehe ich nicht, wenn die Projektionsmatrix allerdings korrekt ist (siehe z.B. Wikipedia) dann würde ich mich von den vielen Nullen nicht irritieren lassen, das funktioniert schon so 😉

    Eine "kombinierte" MVP-Matrix erzeugst du durch einfaches Aufmultiplizieren (Matrixmultiplikation) von rechts nach links, also:

    T=PVMT = P \cdot V \cdot M

    Diese transformiert dann die mit ihr multiplizierten Punkte derart, als hättest du den Punkt nacheinander 1. "Modell-transformiert" (Wo ist das Objekt im Raum? Wie ist es orientiert?), 2. "View-transformiert" (wohin "schaut" meine Kamera?) und 3. "Projektions-transformiert" (orthogonal/perspektivisch, field of view, etc.).



  • Ah okay, danke.

    Ich dachte schon, ich hätte etwas übersehen.


Log in to reply