Computergrafik

Mehrere Modell View-Matrizen

Modellierungs-Sichtweisen | | Matrix-Stack

Im Beispiel hat ein Auto 4 Räder. Also wird 4 mal die gleiche Geometrie gezeichnet werden, jedesmal an einem anderen Ort (mit einem anderen Koordinatensystem).
$M_{M3a}$ sei die Position des 1. Rades am Auto, $M_{M3b}$ die des 2. u.s.w

Rad1: $M_{MV} = M_V \cdot M_{M1} \cdot M_{M2} \cdot M_{M3a}$
Rad2: $M_{MV} = M_V \cdot M_{M1} \cdot M_{M2} \cdot M_{M3b}$
etc.

Nur die Position des Rades am Auto ändert sich von Rad zu Rad; das Auto steht immer am gleichen Platz.

Es ist möglich, die einzelnen ModellView-Matrizen getrennt zu berechnen, und jeweils nach einer Berechnung ein Rad zu zeichnen. Das ist aber umständlich.

Besser:

  • Man berechnet die ModellView-Matrix für das Auto:
    $M_{MV}^{Auto} = M_V \cdot M_{M1} \cdot M_{M2}$
  • Man berechnet die gesamte ModellView-Matrix für das 1. Rad:
    $M_{MV}^{Rad1} = M_{MV}^{Auto} \cdot M_{M3a}$
  • Man zeichnet mit $M_{MV}^{Rad1}$ das erste Rad
  • Man berechnet die gesamte ModellView-Matrix für das 2. Rad:
    $M_{MV}^{Rad2} = M_{MV}^{Auto} \cdot M_{M3b}$
  • Man zeichnet mit $M_{MV}^{Rad2}$ das zweite Rad

Man spart sich so einige Matrix-Matrix-Multiplikationen durch eine zusätzliche Matrix-Variable!

Genauso arbeitet man mit mehreren Autos auf dem Laster. Genauso mit mehreren Lastern in der Szene (Hierarchie). Je Hierarchieebene wird eine Variable zur Speicherung der ModellView-Matrix bis zu dieser Ebene benötigt.


Modellierungs-Sichtweisen | | Matrix-Stack

Options: