Kamera gegen Ansichtsfenster


23

Ich verstehe nicht genau, was genau der Unterschied zwischen den Kamerakoordinaten und den Ansichtsfensterkoordinaten ist. Kann jemand bitte klären?

Antworten:


40

Kamera ist wie eine Kamera, mit der Batman-Film gefilmt wird. Es existiert in einer virtuellen Welt und kann verschoben werden, um verschiedene Szenen anzuvisieren, die Brennweite und andere Kameraeigenschaften zu ändern. Sie können viele Kameras haben und zwischen ihnen wechseln. Sie können sogar mit mehreren Kameras gleichzeitig filmen.

Typische Kamerakoordinaten sind: Position in der virtuellen Welt, Blickrichtung, Aufwärtsvektor, Sichtfeld usw.

Ansichtsfenster ist eine Kinoleinwand. Hier wird das mit der Kamera aufgenommene Bild angezeigt. In der PC-Welt ist dies ein Bereich auf dem Bildschirm innerhalb eines Fensters oder ein Vollbild. Sie können Feeds von mehreren Kameras gleichzeitig anzeigen (wie bei Konsolenrennspielen zwischen 2 und 4 Spielern).

Typische Ansichtsfensterkoordinaten sind: Position auf dem Display, Höhe und Breite.


0

Die Ansichtsfensterkoordinaten sind die Koordinaten, an denen sie auf dem Bildschirm platziert werden. (Zum Beispiel in einem Win32-Fenster).

Die Kamerakoordinaten sind die Position der Kamera IN dem Ansichtsfenster, das sich innerhalb des 2D / 3D-Raums befindet, den Sie in Ihrer OpenGL-Anwendung festgelegt haben. Die Kamera kann dieses Ansichtsfenster nicht verlassen, da sie sich innerhalb eines Win32-Fensters an dem von Ihnen festgelegten Ort befindet, an dem opengl seine Arbeit erledigen kann.


Das ist nicht ganz richtig. Das Ansichtsfenster definiert die Zuordnung vom NDC-Raum zum Fensterraum für die Scheitelpunkttransformation. In älteren GL-Versionen galt diese Zuordnung auch für die Rasterpositionstransformation (wurde jedoch entfernt). Es gibt jedoch viele GL-Vorgänge, die nicht durch die Scheitelpunkttransformation eingeschränkt sind, sodass Sie beispielsweise den Farbpuffer außerhalb des Ansichtsfensters löschen können. Tatsächlich besteht die einzige Möglichkeit, einen Puffer zu beschränken, der auf einen bestimmten Bereich des Framebuffers gelöscht wird, darin, ein anderes Element zu verwenden, das als Scissor Box ( glScissor (...)) bezeichnet wird.
Andon M. Coleman
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.