Transformieren von Koordinaten
Die OpenGL Utility Library (GLU) stellt mehrere häufig verwendete Matrixtransformationsfunktionen bereit. Sie können einen zweidimensionalen orthografischen Anzeigebereich mit gluOrtho2D, einem Standardvolumen für die Perspektivansicht mit gluPerspective oder einem Ansichtsvolumen einrichten, das mit gluLookAt auf einen angegebenen Blickpunkt zentriert ist. Jede dieser Funktionen erstellt die gewünschte Matrix und wendet sie mithilfe von glMultMatrix auf die aktuelle Matrix an.
Die gluPickMatrix-Funktion vereinfacht die Auswahl einer Auswahlmatrix, indem eine Matrix erstellt wird, die das Zeichnen auf einen kleinen Bereich des Viewports beschränkt. Wenn Sie die Szene im Auswahlmodus erneut rendern, nachdem diese Matrix angewendet wurde, werden alle Objekte ausgewählt, die in der Nähe des Cursors gezeichnet würden, und Informationen zu ihnen werden im Auswahlpuffer gespeichert. Weitere Informationen zum Auswahlmodus finden Sie unter "Ausführen von Auswahl und Feedback" Ausführen von Auswahl und Feedback.
Um zu bestimmen, wo im Fenster ein Objekt gezeichnet wird, verwenden Sie gluProject, das die angegebenen Objektkoordinaten objx, objy und objz mithilfe von modelMatrix, projMatrix und viewport in Fensterkoordinaten konvertiert. Das Ergebnis wird in winx, winy und winz gespeichert. Wenn die Funktion erfolgreich ist, wird der Rückgabewert GL_TRUE. Wenn die Funktion fehlschlägt, wird der Rückgabewert GL_FALSE.
Die Funktion gluUnProject führt die umgekehrte Konvertierung aus: Sie transformiert die angegebenen Fensterkoordinaten winx, winy und winz mithilfe von modelMatrix, projMatrix und viewport in Objektkoordinaten. Das Ergebnis wird in objx, objy und objz gespeichert. Wenn die Funktion erfolgreich ist, wird der Rückgabewert GL_TRUE. Wenn die Funktion fehlschlägt, wird der Rückgabewert GL_FALSE.