Du nouveau du côté de l’antialiasing (suite)

Le GeForce 7 ne modifie pas la position des sous pixels qui est désormais optimale pour quatre échantillons mais apporte la correction gamma à l’antialiasing. La correction gamma à elle seule est un vaste sujet très souvent mal compris. En quelques mots, l’origine de la correction gamma vient du fait que la réponse d’un moniteur à tube cathodique à un voltage donné n’est pas linéaire. En d’autres termes si en passant d’un niveau de gris de (0.5, 0.5, 0.5) à un blanc (1.0, 1.0, 1.0) on s’attend implicitement à ce que l’intensité lumineuse double, sans correction gamma ce ne sera pas le cas : le gris sera beaucoup plus sombre que prévu. Ainsi en supposant une valeur gamma de 2.2 l’intensité sera pratiquement multipliée par 5 (0.5 à la puissance 2.2 donne 0.22 environ).

Pour compenser ce phénomène et obtenir un résultat fidèle de l’intensité lumineuse on utilise donc la correction gamma qui va ajuster le signal d’entrée pour obtenir le résultat souhaité. Cette correction est simple dès lors que la valeur gamma du moniteur est connue. Dans notre exemple précédent il suffit ainsi de mettre 0.5 à la puissance 1/ 2.2 ce qui nous donne 0.73.

A gauche : courbe gamma du moniteur. A droite : courbe de correction appliquée aux couleurs.

La correction gamma se révèle particulièrement importante dans le cadre de l’antialiasing. Prenons l’exemple d’un triangle blanc sur fond noir, avec l’antialiasing plusieurs couleurs supplémentaires vont être générées avec des niveaux de gris intermédiaires pour adoucir les contours du triangle : 0.75, 0.5, 0.25 par exemple. Sans correction gamma la valeur médiane sera bien trop sombre et l’intensité perçue n’augmentera pas linéairement ce qui nuira à la qualité.

Avec correction gamma

Sans correction gamma (gamma de 2.2 supposé)

Le multisampling peut sembler comme la solution miracle à première vue mais il engendre en fait son lot de problèmes. En premier lieu les développeurs effectuent désormais de plus en plus fréquemment le rendu dans une texture afin de pouvoir appliquer un post traitement sur l’image dans un shader. Ce genre d’opérations est particulièrement problématique lors de l’utilisation du multisampling. En effet les render targets multisamplées ne sont pas autorisées, et de la même façon le multisampling n’est pas supporté vers des buffers flottants ce qui pose problème lors de l’utilisation d’effets HDR. Il existe heureusement des moyens détournés pour résoudre ces problèmes mais ils demandent plus de travail aux développeurs.


Annonces Google
Commentaires
Soyez le premier à commenter cette news !

A savoir Vous allez poster en tant qu'utilisateur anonyme.



Annonces Google