6 Kamera

Egal, wie bewegt die Objekte ist, wirkliches Leben bringt man erst durch rasante, effektvolle Kamerafahrten in die Sze-nerie.

Eine Kamera wird definiert durch einen Augpunkt und durch einen Zielpunkt.
Zusätzlich muß ein Punkt definiert werden, der angibt, welche Neigung die Kamera hat, ob sie auf dem Kopf steht, o.ä.. Zu diesem Zweck definiert man einen Punkt als OBEN.

gluLookAt ( eyex, eyey, eyez,      // Aug-Vektor
            destx, desty, destz,   // Ziel-Vektor
            upx, upy, upz );       // Oben-Vektor
Eine alternative Methode, die Kamera zu definieren, ist die Heading-Pitch-Roll-Methode. Diese kommt vor allem bei Flugsimulatoren vor. Heading definiert die Rotation um die X-Achse, Pitch die Rotation um die Y-Achse und Roll die Rotation um die Z-Achse. Der Programmcode sieht folgendermaßen aus:

void PilotView ( double posX, double posY, double posZ, double heading, double pitch, double roll )
{
  glRotated ( roll, 0.0, 0.0, 1.0 );
  glRotated ( pitch, 0.0, 1.0, 0.0 );
  glRotated ( heading, 1.0, 0.0, 0.0 );
  glTranslated ( -posX, -posY, -posZ );
}