La qualité de l’image joue un rôle essentiel dans les jeux et la réalité virtuelle (VR) car elle affecte le confort et la durée d’une session de jeu.
Pour améliorer le rendu et la qualité de l’image, une technique d‘anti-aliasing que l’on peut traduire par anticrénelage existe.
On peut donc être confronté à ces termes lorsque l’on doit optimiser les réglages de l’affichage et de la carte graphique.
L’article évoque le concept d’aliasing, les types d’aliasing et les algorithmes d’anti-aliasing (algorithmes AA).
Table des matières
Qu’est-ce que l’Aliasing et crénelage
Le crénelage ou Aliasing en anglais est un phénomène visuel qui se caractérise par des motifs en forme d’escalier sur les contours obliques des dessins.
On peut alors parler aussi d’effet escalier.
Ce phénomène apparaît lors d’un fort contraste sur les contours ou lignes.
Cet effet peut être exprimé par une transition nette entre les pixels, les groupes de pixels ou les cadres.
Les bords d’une lettre vectorielle doivent être pixelisés et convertis en image bitmap.
- Si vous convertissez binairement (en noir et blanc: là où il n’y a pas de lettre – blanc, où il y a une lettre – noir), vous obtiendrez la version sur la gauche.
- Si vous ne pixelisez pas de manière binaire, chaque pixel recevra un certain pourcentage de noir.
C’est d’autant plus vrai sur les appareils qui ne peuvent afficher que deux valeurs (sombres ou claires) comme les écrans à cristaux liquides ou LCD.
Les nouveaux écrans sont moins sujets à ces problèmes d’effet d’escalier.
Dans une image statique, l’aliasing est visible sur les limites des objets, des polygones – n’importe où, là où il y a un contour net.
Si un écran a une résolution élevée, alors en statique, l’aliasing n’apporte pas beaucoup d’inconfort.
Ainsi, dans de nombreux jeux PC, on ne lui accorde pas suffisamment d’attention. Cependant, dans la dynamique, la situation change.
Les jeux VR avec des casques où la zone de vision est encore plus sujet au crénelage.
De plus les casques VR ne sont pas en position statique qui accentue encore plus le phénomène.
Pour lutter contre les problèmes d’aliasing, différents algorithmes de lissage sont utilisés.
A noter aussi qu’en Français on est censé écrire crènelage (avec un accent grave).
L’Anti-Aliasing et anticrénelage : FXAA, SMAA, MSAA, SSAA, TXAA
Plusieurs algorithmes existent avec chacun leur avantages et inconvénients.
FXAA (Fast Approximate Anti-Aliasing)
FXAA (fast approximate anti-aliasing) développé par NVIDIA améliore la qualité de l’image en réduisant les irrégularités.
De ce fait, il est très répandue dans les jeux vidéos.
On voit la différence dans le contour des éléments de cette image.
Comparez ces deux images en plein écran sans et avec FXAA.
TAA
TAA (Temporal Anti-Aliasing) fonctionne en comparant les images voisines (temporellement) et en les mélangeant pour créer une image plus nette en mouvement.
Il consomme très peu de ressources.
SMAA
SMAA (Subpixel Morphological Anti-Aliasing) donne à l’image un aspect plus net en supprimant les bords rugueux ou irréguliers autour des objets.
Il va plus loin car il trouve et reconnaît des motifs sous forme de lignes, de courbes, de frontières d’objets et les brouille dans le sens de ces lignes.
NVIDIA a développé une variante du multisampling appelée CSAA (Coverage Sampling).
AMD a fait la même chose en sortant sa EQAA (Enhanced Quality) qui succède à CFAA (Custom Filter).
MSAA et SSAA
MSAA (Multi-Sample Anti-Aliasin) et SSAA (SuperSampling Anti-Aliasing) offrent les plus beaux rendus.
Ils fonctionnent en rendant l’image à une résolution plus élevée, puis en la redimensionnant pour l’adapter à la résolution native.
Cela rend essentiellement l’image entière plus nette et plus détaillée, réduisant les bords rugueux du processus mais ne les supprimant pas entièrement.
MSAA ou multi-échantillonnage utilise des algorithmes de détection des contours pour détecter le crénelage (basé sur les différences de contraste), puis ne rend que ces parties à une résolution plus élevée. Encore une fois, la quantité d’échantillonnage varie de 2x à 8x.
Dans la plupart des cas, SSAA et MSAA manquent de textures transparentes car la plupart des filtres de détection de bord ne parviennent pas à les reconnaître.
En outre, ils ont tendance à réduire l’intensité de l’aliasing, plutôt que de l’éliminer complètement.
MSAA est plus efficace sur les polygones.
Enfin les deux sont très efficaces sur les images statiques.
SSAA est un peu plus efficace sur les images dynamiques.
TXAA
On termine avec TXAA (Temporal approximate Anti-Aliasing)
L’image est rendue un à un avec une résolution d’écran, mais dans chaque image.
En conséquence et au fil du temps, nous obtenons plusieurs images du même pixel dans un petit rayon.
Moins couteux que SSAA mais plus couteux que SMAA, de plus les images sont floues et nécessitent un traitement d’image supplémentaire par le filtre de netteté.
Il peut être combiné avec FXAA pour une meilleure qualité.
Fonctionne bien avec les images statiques et dynamiques
MLAA
L’anticrénelage morphologique ou Filtrage morphologique ou encore MLAA, est une technique pour minimiser les artefacts de distorsion appelés aliasing lors de la représentation d’une image haute résolution à une résolution inférieure.
On l’utilise en complément de l’algorithme d’AA pour appliquer un autre algorithme AA sur les textures.
En combinant les deux, vous arrivez à lisser les textures de manière efficaces.
Comme le SSAO, MLAA peut être codé à la main dans une application 3D ou ajouté dans les pilotes graphiques.
Les multiplicateurs ou niveau d’anti-crénelage
Certains algorithmes comme SMAA ou MSAA ont des multiplicateurs ou niveau d’anti-crénelage que l’utilisteur peut régler.
Par exemple MSAA x2 fonctionne doublement par rapport à MSAA.
MSAA x8 effectue 8 fois plus de passage.
Certains algorithme vont plus loin, par exemple CSAA permet 16 passage, soit donc CSAA 16x.
Il existe en effet une différence de qualité visible entre l’anticrénelage zéro, 2x, 4x et 8x. Et les variantes MSAA peaufinées, alias «adaptatif» ou «échantillon de couverture», offrent une meilleure qualité à plus ou moins le même niveau de performance.
Les différences entre 2x et 8x sont très perceptibles, entre 8x et 16x ca l’est beaucoup moins.
Comparatif, quel Anti-Aliasing choisir ?
Voici un tableau récapitulatif :
Algorithmes Anticrénelages | Description |
MSAA SSAA | Les plus beaux rendus Mais les plus gourmands en ressources |
TXAA | Se place entre les deux en terme de coût de performances |
FXAA SMAA TAA | Bon rendu sans trop impacter les performances |
Voici l’algorithme anti-crénelage que l’on recommande :
- Si la carte graphique cible n’est pas puissante, vous devez sélectionner FXAA.
- Pour les systèmes moins puissants et lorsque MSAA n’est pas disponible essayez SMAA.
- Si la carte graphique est puissante et a fait face à la technique SMAA, alors il vaut la peine de choisir TXAA.
Liens
sources :
https://vr.arvilab.com/fr/blog/anti-aliasing et https://www.hardwaretimes.com/pc-graphics-options-explained-smaa-vs-taa-vs-fxaa-vs-msaa/