Computergrafik

Matrix-Stack

Mehrere ModellView-Matrizen | | GL Modi

Um je Hierarchieebene eine Matrix zu speichern, wurde v.a. früher ein Matrix-Stack benutzt.

  • Hierbei wird eine Matrix, die nochmal benötigt wird (im Beispiel $M_{MV}^{Auto}$) auf den Stack gepushed, also gespeichert.
  • Dann wird sie weiterverarbeitet (hier: mit $M_{M3a}$ multipliziert).
  • Dann zum Rendern verwendet (hier: Rad1)
  • Für die nochmalige Verwendung wird die Matrix wieder gepopped - d.h. durch die letzte auf den Stack gepushte Matrix ersetzt
  • Dann wieder weiterverarbeitet und zum Rendern verwendet.

Durch das poppen wird die Matrix vom Stack genommen. Wird sie nochmal benötigt, muss sie gleich wieder gepushed werden. Im Beispiel:

  • $M_{MV}^{Auto}$ berechnen
  • push
  • mit $M_{M3a}$ multiplizieren
  • Rad zeichnen
  • pop
  • push
  • mit $M_{M3b}$ multiplizieren
  • Rad zeichnen
  • pop
  • push
  • mit $M_{M3c}$ multiplizieren
  • Rad zeichnen
  • pop
  • mit $M_{M3d}$ multiplizieren
  • Rad zeichnen

Für das letzte Rad ist kein push nötig, da danach die Matrix für das Auto nicht mehr benötigt wird.

Diese Vorgehensweise ist i.d.R. umständlicher als mit extra Variablen (hier: eine für $M_{MV}^{Auto}$) zu arbeiten.

Mehrere ModellView-Matrizen | | GL Modi

Options: