Le principe

OpenGL dessine dans une image tampon. Cette image tampon peut être soit directement la mémoire vidéo de la fenêtre graphique, soit une image tampon intermédiaire permettant de faire du "double buffering"1.

Figure 1: La construction d'une image.
\begin{figure}\centerline{\epsfig{figure=Figures/construction_image.eps,width=8cm}}\end{figure}

Les différentes étapes de la génération d'une image sont (voir figure 1) :

  1. spécification des primitives à dessiner : les primitives sont définies dans un certain repère,
  2. transformation point de vue : une transformation est appliquée aux primitives à dessiner. Cette transformation sert à fixer le point de vue des primitives ou, en d'autres termes, la position du plan image.
  3. Projection : les primitives sont projetées sur le plan image suivant la projection spécifiée (orthographique, perspective).
  4. Fenêtrage et numérisation : l'image obtenue est redimensionnée suivant les tailles de la fenêtre graphique et les primitives projetées sont numérisées sous la forme de pixels dans la mémoire vidéo.

Ces quatre étapes sont réalisées directement à l'appel d'une fonction de dessin d'OpenGL et ne nécessitent pas quatre appels spécifiques. En effet, les spécifications du point de vue, de la projection et du fenêtrage se font de manière indépendante de la spécification des primitives. Cela veut dire qu'à chaque appel d'une fonction de dessin, la transformation point de vue courante et la projection courante sont appliquées aux primitives. La figure 2 montre, par exemple, ce qui est effectué lors de l'appel d'une fonction de dessin d'une ligne polygonale.

Figure 2: Le dessin d'une ligne polygonale avec OpenGL.
\begin{figure}\centerline{\epsfig{figure=Figures/rendering_pipeline.eps,width=13cm}}\end{figure}

Les paragraphes suivant explicitent les spécifications de ces différentes étapes.


Edmond Boyer
2001-03-07