Qu'est-ce qu'une caméra OpenGL®?
"Caméra OpenGL®" est le nom donné à la position virtuelle d'un spectateur dans une scène Open Graphics Library® (OpenGL®). Elle est définie par la position du spectateur dans la scène, puis par la position ou la direction dans laquelle le spectateur regarde. La position de la caméra dans une scène OpenGL® déterminera quelle partie d'une scène sera restituée au périphérique d'affichage et à quel angle. Deux matrices sont utilisées pour décrire une caméra OpenGL®: la matrice modelview et la matrice de projection, qui décrivent la position de la caméra et la façon dont les objets auxquels elle ressemble sont rendus, respectivement. Une caméra peut être déplacée dans une scène pour montrer différentes zones ou simuler un mouvement, même si dans de nombreux cas, il est plus facile ou plus efficace de déplacer les objets d'une scène à la place de la caméra.
Lors de l'apprentissage d'OpenGL®, certains programmeurs ont du mal à comprendre les propriétés relativement abstraites d'une caméra OpenGL®. Cela est dû en grande partie au fait que certaines transformations et autres fonctions ne fonctionnent pas de la même manière sur une caméra que sur un objet OpenGL® standard. De plus, les opérations complexes avec une caméra OpenGL® requièrent généralement une connaissance approfondie du calcul matriciel et une compréhension du processus de transformation OpenGL®. La prise en charge des bibliothèques OpenGL® comporte certaines fonctions pratiques, mais il peut être difficile de s’en remettre uniquement aux kits d’outils de support dans des applications plus interactives.
La position d'une caméra OpenGL® est définie à l'aide de la matrice modelview. La caméra peut être positionnée n'importe où dans une scène et traduite ou pivotée sur n'importe quel axe. Dans de nombreuses applications, notamment les applications ne contenant qu'une poignée d'objets, il est plus facile d'appliquer des transformations inverses aux objets d'une scène pour donner l'apparence d'un mouvement. Dans l’ensemble, la scène se déplace autour d’une caméra statique. Pour les scènes plus grandes, il peut être plus facile de gérer les complexités du pipeline et des calculs matriciels pour déplacer la caméra librement, en laissant la scène statique.
Les attributs d'une caméra OpenGL® sont contrôlés par la matrice de projection. Pour utiliser l'analogie de la caméra, la matrice de projection peut être considérée comme le type d'objectif utilisé. La matrice de projection est fréquemment modifiée pour faire des projections orthographiques, sans ajustement de perspective, et des projections en perspective qui prennent en compte la distance dans la détermination de la taille des objets. Vous pouvez également définir d'autres effets, tels qu'un objectif fish-eye, une distance focale ou différents formats, en utilisant la matrice de projection.