Was ist eine OpenGL®-Kamera?
"OpenGL®-Kamera" ist die Bezeichnung für die virtuelle Position eines Betrachters in einer Open Graphics Library® (OpenGL®) -Szene. Sie wird durch die Position des Betrachters innerhalb der Szene und dann durch den Ort oder die Richtung definiert, in die der Betrachter schaut. Die Position der Kamera in einer OpenGL®-Szene bestimmt, welcher Teil einer Szene in welchem Winkel auf dem Anzeigegerät wiedergegeben wird. Zur Beschreibung einer OpenGL®-Kamera werden zwei Matrizen verwendet: die Modellansichtsmatrix und die Projektionsmatrix, die die Position der Kamera und die Art und Weise beschreiben, in der die Objekte gerendert werden, auf die sie schaut. Eine Kamera kann innerhalb einer Szene bewegt werden, um verschiedene Bereiche anzuzeigen oder Bewegungen zu simulieren. In vielen Fällen ist es jedoch einfacher oder effizienter, die Objekte in einer Szene anstelle der Kamera zu bewegen.
Beim Erlernen von OpenGL® fällt es einigen Programmierern schwer, die relativ abstrakten Eigenschaften einer OpenGL®-Kamera zu verstehen. Dies liegt hauptsächlich daran, dass einige Transformationen und andere Funktionen auf einer Kamera nicht so funktionieren wie auf einem Standard-OpenGL®-Objekt. Darüber hinaus erfordern komplexe Operationen mit einer OpenGL®-Kamera in der Regel Kenntnisse in Matrixmathematik und ein Verständnis der OpenGL®-Transformationspipeline. Die Unterstützung von OpenGL®-Bibliotheken bietet einige praktische Funktionen, obwohl es schwierig sein kann, sich in interaktiveren Anwendungen nur auf die Support-Toolkits zu verlassen.
Die Position einer OpenGL®-Kamera wird mithilfe der Modelview-Matrix definiert. Die Kamera kann an einer beliebigen Stelle innerhalb einer Szene positioniert und entlang einer beliebigen Achse verschoben oder gedreht werden. In vielen Anwendungen, insbesondere in Anwendungen, die nur eine Handvoll Objekte enthalten, ist es möglicherweise einfacher, inverse Transformationen auf die Objekte in einer Szene anzuwenden, um das Erscheinungsbild einer Bewegung zu erhalten. Im Wesentlichen bewegt sich die gesamte Szene in diesem Fall um eine statische Kamera. Bei größeren Szenen kann es einfacher sein, mit der Komplexität der Pipeline- und Matrixberechnung umzugehen, wenn die Kamera frei bewegt wird und die Szene statisch bleibt.
Die Attribute einer OpenGL®-Kamera werden von der Projektionsmatrix gesteuert. Um die Kameraanalogie zu verwenden, kann die Projektionsmatrix als der Typ des verwendeten Objektivs angesehen werden. Die Projektionsmatrix wird häufig modifiziert, um orthografische Projektionen ohne perspektivische Anpassung und perspektivische Projektionen zu erstellen, die die Entfernung bei der Bestimmung der Größe von Objekten berücksichtigen. Andere Effekte wie Fischaugenlinse, Brennweite oder unterschiedliche Seitenverhältnisse können über die Projektionsmatrix eingestellt werden.