Accueil | News | Articles | Forum | Membres  | Prix  | A propos Recherche :  BeHardware.com 


ATI Radeon 9700 Pro - 128 Mo - Sortie TV et DVI - Boîte - 239 euros

  Overclocking

  Base Overclocking

  Processeurs

  Cartes Mères

  Cartes 2D-3D

  Multimédia

  Stockage

  Ecrans

  Imagerie

  Divers
Comparez les prix !
  Processeurs

  Cartes graphiques

  Ordinateur portable

  GPS

  Appareil photo

  TV LCD
Annuaires
  Définitions

  Drivers
Les Numériques
GameKult
Serveur express
Pub sur HardWare.fr

Sommaire:
Recommander la lecture de cet article à un contact Imprimer cet article
Dossier : Nvidia améliore la qualité graphique avec l’occlusion ambiante
par Damien Triolet
Publié le 27 Avril 2009

L’algorithme de SSAO

Une fois les 2 données à disposition, il ne reste plus qu’à observer l’occlusion à la lumière ambiante autour de chaque point. Il n’est bien entendu pas possible de passer en revue toute la scène pour chaque point. Une simplification est donc nécessaire. L’algorithme va s’attarder sur un voisinage du point de manière à ne prendre en compte que les surfaces les plus proches et donc les plus susceptibles d’avoir une influence.

La première étape consiste donc à déterminer ce voisinage. Il s’agit d’un hémisphère dont la base est sur le plan tangent au point étudié et centrée sur celui-ci. Tout objet présent dans cet espace va représenter une occlusion ambiante. Cet hémisphère prend forme dans l’eye space et est ensuite projeté dans le plan de l’image dans lequel il représente un cercle plus ou moins grand suivant la profondeur du point étudié.


Reste que ce cercle englobe encore beaucoup de points et qu’il n’est pas possible de tous les analyser pour déterminer s’ils représentent ou non une occlusion à la lumière ambiante. Qui plus est, étant donné que le cercle est d’une taille variable une fois projeté dans le plan de l’image, le coût du traitement serait impossible à déterminer puisque dépendant de la profondeur moyenne de la scène. Une simplification très importante intervient donc ici : seuls un certain nombre de points ou samples dans un certain nombre de directions seront étudiés. Par exemple 4 samples sur 4 directions différentes.


C’est une approximation grossière puisque ce nombre limité de samples va passer à côté de beaucoup d’informations. Pour compenser cela, Nvidia introduit une dose d’aléatoire au niveau du choix des directions et des samples observés sur celles-ci. Ce côté aléatoire est cependant bien contrôlé de manière à couvrir l’espace au mieux.

L’occlusion est la moyenne des occlusions constatées dans chaque direction. Pour calculer celles-ci, il faut additionner les contributions à l’occlusion des différentes samples, qui sont déterminées avec un petit peu de trigonométrie et pondérée suivant leur distance par rapport au point étudié.



Notez que pour éviter que la manque de tesselation de la géométrie ne crée une fausse occlusion et ne rende encore plus visible ce manque, l’algorithme ne prend pas en compte les petites occlusions.

Reste une dernière étape : le filtrage de toutes ces données. Il est rendu nécessaire par le côté aléatoire du choix des samples qui introduit beaucoup de bruit. Réaliser ce filtrage proprement est très délicat ce qui le rend gourmand en ressources. Il s’agit d’un filtre gaussien complexe, dépendant de la profondeur pour éviter de faire déborder l’ombre des arrêtes. Nvidia se contente cependant de filtrer dans une direction puis dans l’autre, ce qui en principe n’est pas permis pour ce genre de filtre, mais permet de gagner en performances.

Ce filtrage est également l’occasion de redimensionner le tout dans la bonne résolution si l’occlusion ambiante a été calculée dans une résolution inférieure. Notez ici que l’absence de gather4 dans les GeForce, fonction de DirectX 10.1 et supportée depuis longtemps par les Radeon, limite le rapport qualité/coût de ce filtre.


Au final nous obtenons une approximation de l’ombre causée par la lumière ambiante sur l’ensemble de la scène. Il suffit de la mélanger au rendu de la scène, avant l’application sur celle-ci des zones transparentes et des autres effets de post processing, pour ajouter une nouvelle dimension à l’image.

Si le sujet vous intéresse, vous pourrez retrouver quelques détails supplémentaires dans ce document de Nvidia.

<< Page précédente
L'implémentation de Nvidia

Index des pages
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11
Page suivante >>
Niveaux de qualité en image  




Copyright © 1997-2009 Hardware.fr SARL. Tous droits et bases réservés
Version anglaise BeHardware réalisée par la même équipe rédactionnelle.

Note au sujet des données personnelles

Hit-Parade
83.243.20.80
PUBLICITE

Liens sponsorisés LDLC
- NVIDIA GeForce 7800 GTX

  www.ldlc.com