« Les cartes graphiques/Les Render Output Target » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 102 :
Pour les textures partiellement transparentes, l’antialiasing de type MSAA ne donne pas de bons résultats. Les textures partiellement transparentes servent à rendre des feuillages, des grillages, ou d'autres objets du genre. Prenons l'exemple d'un grillage. La texture de grillage est posée sur une surface carrée, les portions transparentes de la texture correspondant aux trous du grillage entre les grilles, et les portions opaques au grillage lui-même. Dans ce cas, les portions transparentes sont située dans l'objet, dans les triangles, et ne sont pas antialiasées. Pourtant, un grillage est l'exemple type d'objet où l'effet d’escalier se manifeste. le SSAA n'a pas de problèmes pour filtrer dcette texture, mais le MSAA ne filtre pas l'intérieur de la texture.
 
Tout cela a poussé les fabricants de cartes graphiques à inventer diverses techniques pour appliquer l'antialiasing à l'intérieur des textures transparentes. L'idée la plus simple pour cela est d'appliquer le MSAA sur toute l'image, mais de passer en mode SSAA pour les portions de l'image où on a une texture transparente. Cela demande cependant de détecter les textures transparentes au niveau du pixel shader, et de les rendre à plus haute résolution façon SSAA. DCette technique a été utilisée sur les cartes NVIDIA sous le nom de 'autres'transparency techniquesadaptive plusanti-aliasing'' optimisées(TAAA) sontet possiblessur les cartes AMD sous le nom de ''adaptive anti-aliasing''.
 
Un autre méthode est la technique dite de l''''''alpha to coverage'''''. Pour le rendu des textures transparentes, les pixels shaders utilisent souvent la technique de l'''alpha test'', qui détermine si un pixel doit être rendu en fonction de sa transparence. Avec l'''apha-testing'', si un texel/pixel a une composante alpha trop basse, le pixel/texel n'est tout simplement pas rendu. En clair, les opérations d'''alpha blending'' ne sont pas effectuées normalement. Pour certains objets, comme les buissons, ou le feuillage, l'''apha-testing'' donne de meilleurs résultats que l'''alpha blending'' normal. On peut modifier l'''apha-testing'' pour effectuer un antialiasing de type MSAA en même temps. L'idée est que le pixel shader récupère le masque de couverture et l'utilise pour calculer la composante alpha finale du pixel traité. Pour mieux comprendre, prenons un exemple. Imaginons qu'un pixel soit colorié avec une texture transparente : le pixel se voit attribuer une composante alpha provenant de la texture transparente et passe le test alpha pour savoir s'il doit être rendu avant ou non. Avec l'''alpha to coverage'', la composante alpha est calculée en combinant la composante alpha provenant de la texture et le masque de couverture. Si le masque de couverture dit que seuls 2 sous-pixels sur 4 sont dans la texture, la composante alpha est réduite de moitié. Si le masque de couverture dit que 3 sous-pixels sur 4 sont dans la texture, la composante alpha est multipliée par 3/4. Et ainsi de suite. C'est seulement ensuite que le test alpha est effectué. Le résultat est un peu meilleur que sans antialiasing.
 
====Le ''Fast Approximate Anti-Aliasing'' (FXAA) et le ''Subpixel Morphological Antialiasing'' (SMAA)====