SSAO vs. HBAO vs. HDAO - Quelle est la véritable différence ?

Cette option m'a dérouté alors que j'avais le choix entre SSAO, HBAO et HDAO dans Far Cry 3.

La recherche sur Google ne m'a pas vraiment donné de réponse, pas plus que l'activation de chaque option et la comparaison des résultats. Apparemment, je suis aveugle ou quelque chose comme ça.

Tout d'abord, laquelle est la meilleure qualité ? Deuxièmement, quelle est la différence réelle entre ces options ?

Solution

H*AO offre une meilleure qualité mais avec un coût de performance plus élevé.

SSAO est moins précis mais améliore la qualité de l'image avec une pénalité de performance beaucoup plus faible.

Si vous utilisez H*AO, d'après ce que j'ai compris, vous devez choisir HDAO si vous avez une carte ATI ou HBAO si vous avez une carte nVIDIA.

HBAO et HDAO sont essentiellement la même chose mais sont implémentés par des fournisseurs différents.

Voici quelques captures d'écran de BF3 qui peuvent vous aider : http://www.reddit.com/r/gaming/comments/kwjtw/my_battlefield_3_screenshot_comparison_ssao_vs/

Je vous recommande d'utiliser le lien fourni ici : http://www.flickr.com/photos/bmorlok/6197863052/in/set-72157627662461565/lightbox/ et d'utiliser les touches de curseur pour passer rapidement d'une capture d'écran à l'autre.

Vous devriez rapidement être en mesure d'identifier où l'ombrage a lieu entre aucun, SSAO et HBAO.

Regardez les zones où les objets se croisent. Par exemple, là où le sol rencontre le mur, là où un pilier rencontre le plafond, les buissons, les morceaux de débris sur le sol.

J'ai pris la liberté de prendre l'une des photos et de mettre en évidence les zones que vous devez regarder en faisant des allers-retours.

Vous remarquerez que la SSAO est ombragée dans ces mêmes zones, mais elle est BEAUCOUP moins prononcée.

[ssao vs hbao] [1]

[1] : http://i.stack.imgur.com/UxN8Z.jpg

Commentaires (3)

Tout d'abord, l'occlusion ambiante dans l'espace de l'écran n'est pas du tout un effet basé sur la physique, il n'y a donc aucun argument de réalisme. La théorie de l'effet stipule essentiellement que

Toute surface qui n'est pas couverte (éventuellement à une certaine distance) est éclairée.

Même s'il s'agit d'un effet de raytraced, c'est juste un moyen rapide et sale de faire ressortir les petits détails des modèles.

Deuxièmement, toutes les techniques en question ne sont que des itérations du SSAO ; elles fonctionnent toutes comme un post-processus, après le rendu de la scène. Cela signifie que les shaders doivent faire quelque chose de magique pour produire quelque chose de précis à partir du peu d'informations qui restent après le tramage.

SSAO

Il s'agit de la technique la plus ancienne. Elle part du principe que tout pixel situé dans un rayon d'espace écran donné est un occludeur possible. On obtient une approximation approximative en calculant la différence entre le tampon Z (profondeur) du flou et celui de l'original et en assombrissant le résultat si la version du flou a une valeur supérieure.

Le piège de cette approche est qu'elle assombrit faussement et ne détecte pas certaines caractéristiques. Il faut vraiment bien regarder ce pilier, mais vous remarquerez que si le plafond est faussement ombragé sur les côtés, il n'est pas affecté à la jonction.

[Plafond et pilier : une démonstration SSAO][1]

[Ce document][2] contient d'autres exemples graphiques.

HBAO

Cet algorithme tente de résoudre les problèmes de SSAO. Il le fait en utilisant plus d'informations, à savoir la carte normale. Au lieu de rechercher les occlusives autour d'un pixel dans l'espace écran, il essaie de restaurer de petits morceaux de la scène et de faire une approximation plus informée de la luminosité qui devrait être présente.

Vous pouvez remarquer que le plafond est clairement facé vers le bas, et que le pilier est plus sombre en haut.

[Le pilier soutient le plafond. HBAO] [3]

[Un document][4] de NVIDIA donne plus de détails.

Conclusion

HBAO est un algorithme plus récent, il produit des approximations beaucoup plus proches de... une approximation.


Les images sont des extraits de ces captures d'écran.

[1] : http://i.stack.imgur.com/cSB0J.png [2] : http://graphics.uni-konstanz.de/publikationen/2006/unsharp_masking/Luft%20et%20al.%20--%20Image%20Enhancement%20by%20Unsharp%20Masking%20the%20Depth%20Buffer.pdf [3] : http://i.stack.imgur.com/BCB2N.png [4] : http://developer.download.nvidia.com/presentations/2008/SIGGRAPH/HBAO_SIG08b.pdf

Commentaires (3)

HBAO implique également l'utilisation de techniques de plan d'image de l'œil pour simuler les différences de taille de l'iris lorsque l'on regarde de certains niveaux de lumière vers d'autres niveaux de lumière.

L'HDAO ne fait pas cela.

Commentaires (1)