Für welche Zwecke verwenden wir die Model View-Projektionsmatrix? Warum benötigen Shader Model View Projection Matrix?
Für welche Zwecke verwenden wir die Model View-Projektionsmatrix? Warum benötigen Shader Model View Projection Matrix?
Antworten:
Die Modell-, Ansichts- und Projektionsmatrizen sind drei separate Matrizen. Modellkarten vom lokalen Koordinatenraum eines Objekts in den Weltraum, Ansicht vom Weltraum zum Kameraraum, Projektion von der Kamera zum Bildschirm.
Wenn Sie alle drei zusammenstellen, können Sie das eine Ergebnis verwenden, um den gesamten Weg vom Objektraum zum Bildschirmraum abzubilden, sodass Sie herausfinden können, was Sie von den eingehenden Scheitelpunktpositionen an die nächste Stufe einer programmierbaren Pipeline weitergeben müssen.
In den alten Pipelines mit fester Funktionalität haben Sie Modell und Ansicht zusammen angewendet und dann die Beleuchtung anhand eines anderen daraus abgeleiteten Ergebnisses berechnet (mit einigen Korrekturen, sodass z. B. Normalen immer noch eine Einheitslänge haben, selbst wenn Sie eine Skalierung auf das Objekt angewendet haben ), dann Projektion anwenden. Sie können dies in OpenGL sehen, das niemals die Modell- und Ansichtsmatrizen trennt und diese als einen einzigen Modellansichtsmatrixstapel beibehält. Sie sehen daher auch manchmal, dass sich dies in Shadern widerspiegelt.
Also: Die zusammengesetzte Projektionsmatrix für die Modellansicht wird häufig von Shadern verwendet, um die für jedes Modell geladenen Scheitelpunkte auf den Bildschirm abzubilden. Es ist nicht erforderlich, es gibt viele Möglichkeiten, dasselbe zu erreichen. Es ist nur üblich, weil es alle möglichen linearen Transformationen zulässt. Aus diesem Grund war eine weniger komponierte Version davon auch die Norm in der alten Welt der festen Pipelines.
Weil Matrizen bequem sind. Matrizen helfen dabei, Orte / Richtungen in Bezug auf verschiedene Räume umzuwandeln (Ein Raum kann durch 3 senkrechte Achsen und einen Ursprung definiert werden).
Hier ist ein Beispiel aus einem Buch, das von @ legends2k in Kommentaren angegeben wurde.
Die Einwohner von Cartesia verwenden eine Karte ihrer Stadt, deren Ursprung sehr vernünftig im Zentrum der Stadt zentriert ist und deren Achsen entlang der Himmelsrichtungen des Kompasses gerichtet sind. Die Bewohner von Legasthenie verwenden eine Karte ihrer Stadt, deren Koordinaten an einem beliebigen Punkt zentriert sind und deren Achsen in beliebige Richtungen verlaufen, was zu dieser Zeit wahrscheinlich eine gute Idee war. Die Bürger beider Städte sind sehr zufrieden mit ihren jeweiligen Karten, aber der staatliche Verkehrsingenieur, der die Aufgabe hat, ein Budget für die erste Autobahn zwischen Kartesien und Legasthenie aufzustellen, benötigt eine Karte mit den Details beider Städte, die daher eine dritte Koordinate einführt System, das ihm überlegen ist, aber nicht unbedingt jemand anderem.
Hier ist ein weiteres Beispiel:
Angenommen, Sie haben in einem Spiel ein Autoobjekt mit seinen Scheitelpunktpositionen unter Verwendung der Weltkoordinaten erstellt. Angenommen, Sie müssen dasselbe Auto in einem anderen Spiel in einer völlig anderen Welt verwenden, Sie müssen die Positionen erneut definieren und die Berechnungen werden komplex. Dies liegt daran, dass Sie erneut die Positionen von Fenster, Motorhaube, Scheinwerfer, Rädern usw. im Auto in Bezug auf die neue Welt berechnen müssen.
In diesem Video verstehen Sie die Konzepte von Modell, Ansicht und Projektion. (sehr empfehlenswert)
Sehen Sie sich dies an, um zu verstehen, wie die Eckpunkte in der Welt als Matrizen dargestellt werden und wie sie transformiert werden.