Opération OpenGL de base

Le diagramme suivant illustre la façon dont OpenGL traite les données. Comme indiqué, les commandes entrent à partir de la gauche et passent par un pipeline de traitement. Certaines commandes spécifient des objets géométriques à dessiner, tandis que d’autres contrôlent la façon dont les objets sont gérés au cours des différentes étapes de traitement.

Diagramme montrant les étapes du pipeline de traitement des données OpenGL.

Les étapes de traitement de l’opération OpenGL de base sont les suivantes :

  • Afficher la liste Au lieu de faire passer immédiatement toutes les commandes par le pipeline, vous pouvez choisir d’accumuler certaines d’entre elles dans une liste d’affichage pour traitement ultérieurement.

  • Évaluateur L’étape de traitement de l’évaluateur fournit un moyen efficace d’estimer la géométrie de courbe et de surface en évaluant les commandes polynomiales des valeurs d’entrée.

  • Opérations par vertex et assembly primitif OpenGL traite les points de primitives géométriques, les segments de ligne et les polygonestous de qui sont décrits par des sommets. Les sommets sont transformés et allumés, et les primitives sont coupées dans la fenêtre d’affichage en vue de la rastérisation.

  • Rasterization L’étape de rastérisation produit une série d’adresses de mémoire tampon de trame et de valeurs associées à l’aide d’une description à deux dimensions d’un point, d’un segment de ligne ou d’un polygone. Chaque fragment ainsi produit est alimenté dans la dernière étape, des opérations par fragment.

  • Opérations par fragment Il s’agit des dernières opérations effectuées sur les données avant qu’elles ne soient stockées en tant que pixels dans le framebuffer.

    Les opérations par fragment incluent des mises à jour conditionnelles du framebuffer en fonction des valeurs z entrantes et précédemment stockées (pour la mise en mémoire tampon z) et la fusion des couleurs de pixels entrantes avec les couleurs stockées, ainsi que le masquage et d’autres opérations logiques sur les valeurs de pixel.

Les données peuvent être entrées sous forme de pixels plutôt que de sommets. Les données sous forme de pixels, telles que celles qui peuvent décrire une image à utiliser dans le mappage de textures, ignorent la première étape de traitement décrite ci-dessus et sont plutôt traitées en tant que pixels, dans l’étape des opérations de pixels. Après les opérations de pixel, les données de pixel sont les suivantes :

  • Stocké en tant que mémoire de texture, à utiliser dans la phase de rastérisation.
  • Rastérisé, avec les fragments résultants fusionnés dans le framebuffer comme s’ils étaient générés à partir de données géométriques.