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).
MM3a sei die Position des 1. Rades am Auto, MM3b die des 2. u.s.w
Rad1: MMV=MV⋅MM1⋅MM2⋅MM3a
Rad2: MMV=MV⋅MM1⋅MM2⋅MM3b
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:
MAutoMV=MV⋅MM1⋅MM2 - Man berechnet die gesamte ModellView-Matrix für das 1. Rad:
MRad1MV=MAutoMV⋅MM3a - Man zeichnet mit MRad1MV das erste Rad
- Man berechnet die gesamte ModellView-Matrix für das 2. Rad:
MRad2MV=MAutoMV⋅MM3b - Man zeichnet mit MRad2MV 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 →