Unité de rastérisation

L'unité de rastérisation (voir figure A.3 page [*]) opére à la fin du pipeline de rendu et contrôle toutes les opérations de combinaison à effectuer sur l'image entière. Cette unité n'est pas programmable comme les shaders mais les opérations sont contrôlées par des paramètres que l'on peut choisir. Par exemple la façon dont se comporte le tampon de profondeur est définie par un test qui est effectué pour chaque pixel affiché. Dans le cas du tampon de profondeur, le test est généralement ''autoriser l'affichage d'un pixel $ p(x,y,z)$ si sa profondeur $ z$ est inférieure à la valeur stockée dans le tampon de profondeur aux coordonnées $ (x,y)$''. Le programmeur dispose ainsi d'un panel de fonctions pré-programmées.

Cette unité de rastérisation applique successivement une série d'opération sur chaque fragment calculé par le pixel shaderA.1. Ces opérations sont (voir figure A.3) :

  1. le découpage qui élimine le fragment si il se trouve hors de l'écran.
  2. le test $ \alpha$ qui détermine si le fragment doit être éliminé en fonction de sa composante $ \alpha$ et d'une valeur de référence fixée, de la même façon que pour le test de profondeur (ci-dessous).
  3. le test du stencil qui détermine si le fragment doit être éliminé en fonction d'une valeur stockée en $ (x,y)$ dans le stencil buffer et d'une fonction de test. Le stencil buffer est une matrice de la résolution de l'écran stockant en chaque élément une valeur sur 8 bits qui est mise à jour lors du test (la fonction de mise à jour est configurable). De nombreux effets tels que la projection d'ombre peuvent être effectués à l'aide du stencil buffer.
  4. le test de profondeur (test de visibilité) qui détermine si le fragment doit être éliminé en fonction de sa profondeur $ z$ par rapport à la profondeur d'un précédent fragment affiché en $ (x,y)$.
  5. le mélange $ \alpha$ qui calcule la couleur finale d'un pixel en combinant la couleur stockée dans le tampon de couleurs en $ (x,y)$ avec la couleur du fragment.
Figure A.3: Unité de rastérisation
\includegraphics[%
width=1.0\columnwidth,
keepaspectratio]{eps/annexe-a-raster-ops.eps}

Porquet Damien 2005-03-02