SSAO vs. HBAO vs. HDAO - Hva er den virkelige forskjellen?

Alternativet forvirret meg der jeg hadde valget mellom SSAO, HBAO og HDAO i Far Cry 3.

Å treffe google ga meg egentlig ikke noen svar, og heller ikke å aktivere hvert alternativ og sammenligne resultatene. Tilsynelatende er jeg blind eller noe.

For det første, hvilken er den BESTE kvaliteten? For det andre, hva er den virkelige forskjellen mellom disse alternativene?

Løsning

H*AO tilbyr bedre kvalitet, men med økt ytelse.

SSAO er mindre nøyaktig, men forbedrer bildekvaliteten med et mye mindre ytelsestap.

Hvis du skal bruke H * AO, fra det jeg forstår, bør du velge HDAO hvis du har et ATI-kort eller HBAO hvis du har et nVIDIA-kort.

HBAO og HDAO er egentlig det samme, men forskjellige leverandørspesifikke implementeringer.

Her er noen BF3-skjermbilder som kan hjelpe: http://www.reddit.com/r/gaming/comments/kwjtw/my_battlefield_3_screenshot_comparison_ssao_vs/

Jeg anbefaler å bruke lenken de gir her: http://www.flickr.com/photos/bmorlok/6197863052/in/set-72157627662461565/lightbox/ og bruke piltastene for raskt å bla frem og tilbake mellom de tre skjermbildene.

Du bør raskt kunne identifisere hvor skyggen foregår mellom ingen, SSAO og HBAO.

Se på områdene der objekter krysser hverandre. For eksempel der gulvet møter veggen, der en søyle møter taket, buskene, biter av rusk på bakken.

Jeg tok meg friheten til å ta et av bildene og markere områdene du bør se på mens du blar frem og tilbake.

Du vil legge merke til at SSAO skygger i de samme områdene, men det er MYE mindre uttalt.

Kommentarer (3)

For det første er okklusjon av omgivelsene på skjermen ikke en fysisk basert effekt i det hele tatt, så det er ikke noe realisme-argument. Teorien om effekten sier i utgangspunktet at

enhver overflate som ikke er dekket (eventuelt innenfor en viss avstand) er opplyst

Selv om det er raytraced, er det bare en rask og skitten måte å få frem små detaljer på modeller.

For det andre er alle de aktuelle teknikkene bare iterasjoner av SSAO; alle fungerer som en etterprosess, etter at scenen er gjengitt. Dette betyr at shaders må gjøre noe magisk for å produsere noe nøyaktig fra lite informasjon som gjenstår etter rasterisering.

SSAO

Dette er den eldste teknikken. Den forutsetter at alle piksler innenfor en gitt skjermområde-radius er en mulig okkluderer. Dette er grovt tilnærmet ved å beregne forskjellen mellom uskarp og original Z (dybde) buffer og mørkere resultat hvis den uskarpe versjonen har en større verdi.

Fallgruven med denne tilnærmingen er at den både blir feilaktig mørkere og unnlater å oppdage visse funksjoner. Du må ta en virkelig god titt på denne søylen, men du vil legge merke til at mens taket er feilaktig skyggelagt på sidene, påvirkes det ikke i krysset.

Tak møter søyle, en SSAO-demonstrasjon]1.

Denne artikkelen har noen flere grafiske eksempler.

HBAO

Denne algoritmen forsøker å løse problemer med SSAO. Den gjør det ved å bruke mer informasjon, nemlig normalkartet. I stedet for å søke etter tildekkinger rundt en piksel i skjermbildet prøver den å gjenopprette små biter av scenen og gjøre en mer informert tilnærming av lysstyrken som burde være der.

Du kan legge merke til at taket mye tydeligere vender nedover, også søylen er mørkere på toppen.

Søylen holder opp taket, HBAO]3.

Et papir av NVIDIA har noen flere detaljer om det.

Konklusjon

HBAO er en nyere algoritme, den gir mye nærmere tilnærminger til ... en tilnærming.


Bildene er utdrag av disse skjermbildene.

Kommentarer (3)

HBAO innebærer også bruk av teknikker for øyets bildeplan for å simulere forskjellene i irisstørrelse når man ser fra visse lysnivåer til andre lysnivåer.

HDAO gjør ikke dette.

Kommentarer (1)