Computergrafik

OpenGL Kamera

GL Transformations Beispiel | | GL Matrix Stack

Die Bestimmung des Augpunktes geschieht ebenfalls durch die Modifikation der Model-View Matrix.

Die Transformationsmatrix $M_V$, definiert durch das Kameradreibein, wird von rechts mit dem entsprechenden OpenGL Befehl heranmultipliziert:

gluLookAt(// camera position in world coordinates
          eye_x,eye_y,eye_z,
          // looking at this point in world coordinates
          at_x,at_y,at_z,
          // up orientation vector of the camera
          up_x,up_y,up_z);

Der erste Parametervektor ist der Augpunkt, der zweite Vektor ist derjenige Punkt, auf den die Kamera fixiert ist, und der letzte Vektor ist ein Richtungsvektor, welcher die Orientierung der Kamera vorgibt. Letzterer zeigt in der Regel nach oben (y-Achse).

Als letzte auszuführende Transformation muss die Transformationsmatrix der Kamera als erste von rechts heranmultipliziert werden.

Kamera-Beispiel:

glLoadIdentity();
gluLookAt(0.0,5.0,0.0, // eye
          0.0,0.0,-10.0, // at
          0.0,1.0,0.0); // up
glTranslated(0,0,-10.0); // translation along z-axis
glRotated(45, 0.0,1.0,0.0); // rotation about y-axis
glBegin(GL_TRIANGLES);
   glVertex3d(0.0,0.0,0.0);
   glVertex3d(-1.0,1.0,0.0);
   glVertex3d(1.0,1.0,0.0);
glEnd();

Hinweis: Perspektive nicht vergessen!

GL Transformations Beispiel | | GL Matrix Stack

Options: