Téléchargez l'application
Tom's Hardware sur l'App Store
Toute l'actu informatique de référence sur votre iPhone
Oui Non

Du nouveau du côté de l’antialiasing

par
Depuis le GeForce 3 tous les chips graphiques de NVIDIA ont adopté le multisampling comme technique de choix pour l’antialiasing. Il faut dire que cette technique présente de nombreux avantages en terme de performances.

En effet là où le supersampling consiste à effectuer un rendu dans une résolution supérieure avant d’être filtrée à la résolution souhaitée, consommant ainsi du fillrate et de la bande passante, le multisampling ne consomme pour sa part que de la bande passante et encore : le surcoût à ce niveau peut être largement limité. Pour accomplir cette magie il faut avouer que le GPU triche un petit peu : si plusieurs échantillons sont effectivement calculés ils partagent tous la même couleur. En effet le Pixel Shader n’est toujours calculé qu’une fois par pixel et non pas par échantillon. Quel est l’intérêt alors ? Et bien si les échantillons partagent tous la même couleur en revanche ils disposent d’une valeur Z propre à chacun. En d’autres termes la résolution effective est augmentée uniquement aux arêtes d’un polygone et pas à l’intérieur.

Mais reprenons depuis le début : lorsque le multisampling est activé, le triangle setup est effectué à une résolution supérieure en fonction du nombre d’échantillons. Le rasterizer génère ainsi une valeur de profondeur par échantillon et un masque de bit (1 bit par échantillon) par pixel qui représente sa couvrance. Ce masque indique quels échantillons sont à l’intérieur du polygone et lesquels sont à l’extérieur, si tous les échantillons sont à l’intérieur ce masque vaut 1 partout, mais si nous nous situons sur l’arête d’un polygone alors il peut contenir des 1 et des 0 comme le montre l’exemple ci-dessous :

Un pixel divisé en 4 sous pixels, les sous pixels couverts par le polygone contiennent des 1 dans leur masque les autres des 0. Ainsi le masque de bit pour ce pixel serait 0101.

Après le rasterizer le shader est appliqué de façon classique comme si l’antialiasing n’était pas activé.

Ainsi lors de l’application du multisampling un pixel contient donc : une unique couleur résultant de l’application d’une texture ou d’un shader, un masque représentant le pourcentage de couvrance de ce pixel par le polygone et non pas une mais quatre valeurs de profondeur correspondant à celles des sous-pixels.

Plus tard dans le ROP le test de profondeur est effectué pour chaque sous pixel visible (dont le masque contient un 1) et si le résultat du test est positif la couleur du pixel est stockée dans les différents buffers (un buffer par sous pixel). Lors de l’affichage final les valeurs des différents buffers sont moyennées, on peut donc considérer le masque de couvrance comme un indicateur de la contribution du pixel courant par rapport au pixel final. Dans notre exemple ci-dessus le pixel participerait à hauteur de 50% (deux 1 dans le masque) à la valeur du pixel final.

Après cette explication vous devriez comprendre pourquoi le multisampling est beaucoup moins gourmand que le supersampling : tout le surcoût engendré par le multisampling est prévu au niveau du hardware qui est capable de conserver plusieurs valeurs de profondeur par pixel. Chaque shader n’est calculé qu’une fois par pixel, le fillrate n’est donc pas impacté et même si la couleur est écrite pour chaque sous pixel comme elle ne change pas, la compression de couleur peut fonctionner à plein régime.

NVIDIA a donc concentré ses efforts sur cette technique qui offrait le meilleur rapport impact sur les performances/qualité visuelle offerte. Ainsi lors du passage au GeForce 4 la position des sous pixels a été optimisée ; le GeForce FX n’a rien apporté d’un point de vue qualitatif mais la compression de couleur a permis de limiter l’impact de l’antialiasing sur la bande passante. Le GeForce 6 a offert encore un nouveau pattern pour les sous pixels, utilisant une grille ayant subi une rotation ce qui permet d’offrir de meilleurs résultats sur les lignes presque verticales ou horizontales (cf. notre comparatif 6800 Ultra / X800 XT).

Partager:
Soyez le premier à laisser un commentaire !
X
Valider

Commentaires

Les offres du moment

Newsletters


OK