Retour à la page principale
L'antialiasing (ou anticrénelage pour les fanatiques de l'Académie Française) est une technique visant à améliorer la qualité visuelle d'une image numérique. Sur une image standard, les droites verticales et horizontales apparaissent sans défaut, mais les droites obliques (et les courbes) apparaissent "en escaliers". L'antialiasing peut atténuer avec plus ou moins de succès ce phénomène.
Il existe principalement deux manières de procéder :
La méthode choisie est hybride : les frontières entre solides sont repérées une fois l'image primaire rendue, puis une forme d'oversampling est appliquées pour ces pixels bien particuliers. La méthode de détection de détection des contours utilise l'algorithme de Sobel.
Pour chaque point, on calcule la saturation de la couleur et de ses huit plus proches voisins. Ensuite on calcule les deux dérivées Gx et Gy dont les valeurs absolues sont simplement sommées. Si la valeur est supérieure à un seuil donné (par défaut 0.3, réglable par l'attribut "seuil" de la balise Antialiasing), alors on va relancer plusieurs rayons et calculer une couleur moyenne pour lisser les pixels.
L'oversampling consiste dans ce cas à lancer 4 nouveaux rayons, formant un cône autour du rayon original, et on fait une simple moyenne. Le facteur de pondération pour chaque rayon est représenté dans le tableau ci-dessous :
0.25 | 0.25 |
0.25 | 0.25 |
Ici on donne en plus un certain poids au rayon original, qui est totalement négligé dans le cas d'antialiasing basique. Le facteur de pondération pour chaque rayon est représenté dans le tableau ci-dessous :
0.0 | 0.2 | 0.0 |
0.2 | 0.2 | 0.2 |
0.0 | 0.2 | 0.0 |
Dans ce dernier cas on lance douze rayons supplémentaires : huit situés sur un cercle autour du rayon original et quatre sur un autre cercle de plus grand rayon. Le facteur de pondération pour chaque rayon est représenté dans le tableau ci-dessous :
0.0 | 0.0 | 0.075 | 0.0 | 0.0 |
0.0 | 0.075 | 0.075 | 0.075 | 0.0 |
0.075 | 0.075 | 0.1 | 0.075 | 0.075 |
0.0 | 0.075 | 0.075 | 0.075 | 0.0 |
0.0 | 0.0 | 0.075 | 0.0 | 0.0 |