Une "caméra" OpenGL peut-être gérée par deux méthodes générales : modifier la matrice de projection pour déplacer la caméra en elle-même ou bien modifier la matrice de modélisation des objets pour déplacer les objets autour de la caméra.

Pour cela, Gabriel Peyré nous présente deux types de caméra: la caméra freefly et la caméra satellite.
.
A noter, ces deux petits liens, l'un, également sur le déplacement d'une caméra libre en OpenGL.
Et l'autre, plus mathématique, sur les Quaternions et les rotations.


EDIT: Un petit code source d'exemple avec une camera satellite.