L'opzione mi ha confuso dove avevo la scelta tra SSAO, HBAO e HDAO in Far Cry 3.
Colpire Google non mi ha dato alcuna risposta, né l'abilitazione di ogni opzione e il confronto dei risultati. A quanto pare sono cieco o qualcosa del genere.
Prima di tutto, qual è la MIGLIORE qualità? In secondo luogo, qual è la vera differenza tra queste opzioni?
H*AO offre una qualità migliore ma con un aumento delle prestazioni.
SSAO è meno accurato ma migliora la qualità dell'immagine con una penalità di prestazioni molto minore.
Se avete intenzione di usare H*AO, da quello che ho capito dovreste selezionare HDAO se avete una scheda ATI o HBAO se avete una scheda nVIDIA.
HBAO e HDAO sono essenzialmente la stessa cosa, ma diverse implementazioni specifiche del fornitore.
Qui ci sono alcuni screenshot di BF3 che possono aiutare: http://www.reddit.com/r/gaming/comments/kwjtw/my_battlefield_3_screenshot_comparison_ssao_vs/
Raccomando di usare il link che forniscono qui: http://www.flickr.com/photos/bmorlok/6197863052/in/set-72157627662461565/lightbox/ e di usare i tasti cursore per sfogliare rapidamente avanti e indietro tra i 3 screenshot.
Dovreste essere in grado di identificare rapidamente dove l'ombreggiamento avviene tra nessuno, SSAO e HBAO.
Guarda le aree dove gli oggetti si intersecano. Per esempio, dove il pavimento incontra il muro, dove un pilastro incontra il soffitto, i cespugli, i pezzi di detriti sul terreno.
Mi sono preso la libertà di strappare una delle foto ed evidenziare le aree che dovreste guardare mentre girate avanti e indietro.
Noterete che la SSAO ha delle sfumature in queste stesse aree, ma è MOLTO meno pronunciata.
SSAO vs HBAO]1
Prima di tutto, l'occlusione ambientale dello spazio dello schermo non è affatto un effetto basato sulla fisica, quindi non c'è nessun argomento di realismo. La teoria dell'effetto afferma fondamentalmente che
ogni superficie che non è coperta (opzionalmente entro una certa distanza) è illuminata
Anche se raytracciato è solo un modo rapido e sporco per far emergere piccoli dettagli sui modelli.
In secondo luogo, tutte le tecniche in questione sono solo iterazioni dell'SSAO; tutte lavorano come un post processo, dopo che la scena è stata renderizzata. Questo significa che gli shader devono fare qualcosa di magico per produrre qualcosa di accurato dalle poche informazioni che rimangono dopo la rasterizzazione.
Questa è la tecnica più vecchia. Assume che ogni pixel entro un dato raggio spazio schermo sia un possibile occlusore. Questo è approssimativamente approssimato calcolando la differenza del buffer Z (profondità) sfocato e originale e scurendo il risultato se la versione sfocata ha un valore maggiore.
L'insidia di questo approccio è che scurisce falsamente e non riesce a rilevare alcune caratteristiche. Dovete guardare bene questo pilastro, ma noterete che mentre il soffitto è falsamente ombreggiato ai lati, non è interessato alla giunzione.
Il soffitto incontra il pilastro. Una dimostrazione SSAO]1
Questo articolo ha alcuni altri esempi grafici.
Questo algoritmo cerca di risolvere i problemi di SSAO. Lo fa usando più informazioni, cioè la mappa normale. Invece di cercare gli occlusori intorno ad un pixel nello spazio dello schermo, cerca di ripristinare piccoli pezzi della scena e di fare un'approssimazione più informata della luminosità che dovrebbe esserci.
Si può notare che il soffitto è molto più chiaramente verso il basso, inoltre, il pilastro è più scuro in alto.
Il pilastro sostiene il soffitto. HBAO]3
4 documento4 di NVIDIA ha qualche dettaglio in più.
HBAO è un algoritmo più recente, produce approssimazioni molto più vicine di... un'approssimazione.
Le immagini sono frammenti di queste schermate.