web-dev-qa-db-de.com

Der Zweck der Model View Projection Matrix

Für welche Zwecke verwenden wir Model View Projection Matrix? Warum benötigen Shader Model View Projection Matrix?

98
Yuriy Vikulov

Die Modell-, Ansichts- und Projektionsmatrizen sind drei getrennte Matrizen. Modellkarten aus dem lokalen Koordinatenraum eines Objekts in den Weltraum, Blick vom Weltraum in den Kameraraum, Projektion von Kamera auf Bildschirm.

Wenn Sie alle drei zusammensetzen, können Sie das eine Ergebnis verwenden, um den gesamten Weg vom Objektraum zum Bildschirmraum abzubilden. Auf diese Weise können Sie aus den eingehenden Scheitelpunkten herausfinden, was Sie zur nächsten Stufe einer programmierbaren Pipeline weitergeben müssen.

In den Pipelines mit festen Funktionen von früher haben Sie Modell und Ansicht zusammen angewendet und dann die Beleuchtung mit einem anderen daraus abgeleiteten Ergebnis berechnet (mit einigen Korrekturen, sodass z. B. Normalen immer noch die Einheitslänge haben, auch wenn Sie das Objekt skaliert haben ), dann Projektion anwenden. Dies spiegelt sich in OpenGL wider, bei dem die Modell- und Ansichtsmatrizen nie getrennt werden - sie bleiben als einzelner Modellansichtsmatrixstapel erhalten. Man sieht also manchmal auch, dass sich das in Shadern niederschlägt.

Also: Die Projektionsmatrix der zusammengesetzten Modellansicht wird häufig von Shadern verwendet, um die von Ihnen für jedes Modell geladenen Scheitelpunkte auf dem 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 ermöglicht. Aus diesem Grund war eine weniger komponierte Version davon auch die Norm in der alten Welt der festen Pipelines.

189
Tommy

Weil Matrizen bequem sind. Matrizen helfen beim Konvertieren von Positionen/Richtungen in Bezug auf verschiedene Räume (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, wobei der Ursprung sehr vernünftig im Stadtzentrum zentriert ist und die Achsen entlang der Himmelsrichtungen des Kompasses ausgerichtet sind. Die Einwohner von Legasthenie verwenden eine Karte ihrer Stadt, deren Koordinaten auf einem beliebigen Punkt zentriert sind und deren Achsen in eine beliebige Richtung 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 hat die Aufgabe, ein Budget für die erste Autobahn zwischen Cartesia und Dyslexia aufzustellen. Er benötigt eine Karte, auf der die Details beider Städte vermerkt sind, weshalb eine dritte Koordinate eingeführt wird 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 Scheitelpunkten mithilfe 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 komplexer. 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.

Siehe this Video, um die Konzepte von Modell, Ansicht und Projektion zu verstehen. (sehr empfehlenswert)

Dann sehen Sie this , um zu verstehen, wie die Eckpunkte in der Welt als Matrizen dargestellt werden und wie sie transformiert werden.

7
cegprakash