Nvidia améliore la qualité graphique avec l'occlusion ambiante

Publié le 27/04/2009 par
Imprimer
Les limitations
Cette implémentation de l'occlusion ambiante repose sur de nombreuses approximations, ce qui introduit quelques limitations au niveau de sa fidélité.

De par sa nature, la SSAO n'a connaissance que des éléments visibles à l'écran. Imaginez par exemple un tuyau contre un mur et une caisse devant cet ensemble. La caisse est trop loin du mur pour causer une occlusion à la lumière ambiante, par contre le tuyau va, lui, entrainer l'apparition d'une ombre sur le mur. Cependant l'algorithme de SSAO n'a aucun moyen de savoir que le tuyau continue derrière la caisse. Ce qui n'est pas bien grave sauf dans le cas où le tuyau est tout juste derrière la caisse, c'est-à-dire qu'il n'est pas visible mais que son ombre devrait l'être. Du coup si vous vous déplacez dans la scène, l'ombre va apparaître soudainement ou disparaître suivant que le tuyau devient visible ou disparaît.

Un autre cas courant d'occlusion ambiante est le coin d'une pièce. Ceux-ci sont toujours légèrement ombragés, parce qu'ils reçoivent moins de lumière indirecte. C'est d'ailleurs souvent un élément mal représenté dans les jeux et qui fait que l'éclairage nous semble « bizarre » par rapport à la réalité. L'algorithme de SSAO permet de représenter cette ombre, mais seulement si les 2 surfaces qui forment le coin sont visibles à l'écran. Dès que l'une des surfaces sort du champ de vision, l'ombre qu'elle entraîne disparait aussitôt.

Enfin, l'occlusion ambiante ainsi calculée est dépendante de l'angle de vision ce qui veut dire que si vous tournez sur vous-même vous pourrez remarquer que les ombres sont influencées. Un effet accentué par le bruit qui, malgré le filtrage, reste visible en mouvement.


Les pilotes
Nvidia propose dans ses pilotes 185 une option qui permet d'activer l'occlusion ambiante pour les GeForce 8 et supérieures. Celle-ci n'est cependant fonctionnelle que dans certains jeux. La liste actuelle est composée de 22 jeux et devrait s'allonger progressivement :

Assassin's Creed
BioShock
Call of Duty 4
Call of Duty 5
Call Of Juarez
Company Of Heroes
Counter-Strike Source
Dead Space
Devil May Cry 4
F.E.A.R. 2
Fallout 3
Farcry 2
Half Life 2 series
Left 4 Dead
Lost Planet: Colonies
Lost Planet: Extreme Condition
Mirror's Edge
Portal
Team Fortress 2
Unreal Tournament 3
World In Conflict
World of Warcraft

Si l'option n'est pas fonctionnelle d'une manière générale, c'est pour une bonne raison et qui est identique pour l'activation de l'antialiasing via les pilotes. Les moteurs graphiques sont maintenant devenus plus complexes et ne font pas simplement un rendu dans le framebuffer. Du coup il n'est plus possible d'appliquer ce genre d'effet simplement sur celui-ci. Il faut spécifier son application sur le bon buffer, ce qui est fait manuellement, titre par titre.

Certains types de rendus plus exotiques peuvent également poser un certain nombre de problèmes et ont donc besoin d'une adaptation de l'algorithme. Enfin, certains jeux tels que Crysis et H.A.W.X. gèrent déjà nativement cet effet.

D'après ce que nous avons pu voir à l'écran, nous supposons que Nvidia a opté pour un calcul de l'occlusion ambiante dans une résolution réduite de moitié, pour alléger l'opération. Nous ne pouvons cependant pas savoir combien de direction et de samples sont utilisés, ni la dimension de la zone d'influence. Nvidia peut qui plus est paramétrer cela différemment d'un jeu à l'autre.

Pour observer l'intérêt pratique de cette technique de rendu, nous avons testé la version 185.63 des pilotes avec quelques-uns de ces jeux, une GeForce GTX 275 et une GeForce GTX 295. Nous avons également essayé la version 185.66 des pilotes mais celle-ci présentait de nombreux bugs une fois l'option activée.
Vos réactions

Top articles