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 →