Slik virker kantutjevning
Dette er teknologien som får spillene til å se fantastiske ut.
Innhold
Anti-aliasing (AA), eller kantutjevning på norsk, er en velkjent teknologi du sikkert har hørt om før. Tar du en titt i grafikkmenyen på PC-spill får du som regel opp valg om å bruke MSAA, Supersampling eller en haug med andre anti-aliasing-teknikker. Men hva er egentlig aliasing, hvordan fungerer anti-aliasing, og hva er forskjellen på de ulike metodene? Det skal vi gå dypere in på i denne guiden, så er du kanskje litt klokere neste gang du skal optimalisere grafikken.
Aliasing: Skarpe kanter i en glatt verden
Skjermbildet på PC-skjermen består av kvadratiske piksler. Hvis vi skal tegne en horisontal eller vertikal linje på skjermen er alt vel og bra, men vi støter på et lite problem hvis vi skal tegne eksempelvis en kurve eller en sirkel. Da må vi tegne en tilnærming ved hjelp av kvadratiske piksler, og som du ser i bildet til høyre, er ikke resultatet alltid spesielt bra. Kvadratene nederst til venstre og øverst til høyre har helt glatte kanter, mens de i mellom har kantete sider.
Når oppløsningen er høy nok, er tilnærmingen så god at øyet ikke klarer å se at en rundingen består av kvadrater.
Hvis du har valget mellom å enten øke oppløsningen i spillet, eller å sette på anti-aliasing, bør du alltid velge det førstnevnte alternativet.
Anti-aliasing
For å redusere de skarpe kantene på objekter, kan vi runde dem av ved å bruke gradvis mykere farger. Som du ser i bildet til høyre – som viser ett bilde uten anti-aliasing og ett med – virker kantene jevne med anti-aliasing, spesielt på avstand.
De ulike metodene for anti-aliasing har som mål å fjerne uønskede kanter på best mulig måte, som krever minst mulig ekstra kraft fra skjermkortet. Dette gjøres med en bråte ulike teknikker – og de ulike teknologiene har ganske varierende resultat og ressursbehov. La oss først få et grovt overblikk over de to hovedkategoriene med anti-aliasing:
To forskjellige hovedmetoder for anti-aliasing
1) Supersampling
Supersampling betyr å tegne hele eller deler av grafikken som skal vises i høyere oppløsning enn det som skal vises på skjermen. For å skalere bildet ned til en oppløsning som skjermen kan vise, tar man stikkprøver fra det originale bildet og tegner pikslene med gjennomsnittsfargen av stikkprøvene. Hvis pikselen som skal tegnes på skjermen blir laget med fire ganger så høy oppløsning, kan vi ta fire stikkprøver og resultatet får da en farge som er gjennomsnittet av de fire stikkprøvene.
1a) Supersampling av hele skjermen
Super-Sampling AA (SSAA), også benevnt som Full-scene AA (FSAA), tegner hele bildet i høyere oppløsning og skalerer det ned ved å ta gjennomsnittet av fargene.
Downsampling (Nvidia DSR eller AMD VSR) bruker samme anti-aliasing-teknikk som SSAA, men det er én forskjell som er verdt å bite seg merke i: Downsampling er støttet i skjermkortdriveren, i motsetning til SSAA som er implementert i selve spillet. Dette betyr at spillet faktisk tror det kjører på en skjerm med høyere oppløsning – og tekst og menyer blir derfor nedskalert i tillegg til selve grafikken. Dette skjer ikke med SSAA, da spillet kan velge å kjøre anti-aliasing på alt bortsett fra menyer.
Hvis du har valget, velger du derfor SSAA over Downsampling om du vil bruke Supersampling av hele skjermen.
"Hvis du har valget mellom å enten øke oppløsningen i spillet, eller å sette på anti-aliasing, bør du alltid velge det førstnevnte alternativet."
SSAA er den eldste og enkleste anti-aliasing-teknikken i bruk. Fordelen er at resultatet som regel er ganske bra, men ulempen er at teknikken krever svært mye av skjermkortet. Hvis du kjører 4xSSAA på en skjerm med oppløsning på 1920 x 1080, vil det i praksis bety at du får samme FPS (bilder i sekundet) i spillet som om du hadde spilt med oppløsning på 3840 x 2160. Skjermkortet må tegne fire ganger flere piksler, og gjøre omtrent fire ganger mer arbeid.
1b) Supersampling av deler av bildet
Multi-Sampled AA (MSAA) har du nok hørt om. MSAA er også en form for supersampling, men fungerer ved at MSAA detekterer kantene på objekter og kun øker oppløsning der. I det nest øverste illustrasjonsbildet i denne saken betyr det i praksis at MSAA først finner ut hvor kantene til firkanten og rektangelet er, og deretter tegner kun denne delen av bildet med høyere oppløsning. Fordelen med MSAA er at metoden unngår unødvendig prosessering ved å kun kjøre supersampling på steder hvor det sannsynligvis er nødvendig, men resultatet blir ikke like bra som SSAA. 2xMSAA bruker to stikkprøver per piksel for å bestemme fargen og 15-20 % redusert ytelse, mens 4xMSAA bruker fire stikkprøver og så videre.
Enhance Quality AA (EQAA) fra AMD og tilsvarende Coverage-Sample AA (CSAA) fra Nvidia er begge forbedringer av MSAA. Disse teknologiene utnytter muligheten skjermkort har for å sjekke om et objekt, som en firkant, dekker et stikkprøvepunkt. Da det krever mye mindre av skjermkortet å sjekke dette kontra å finne den spesifikke fargen til punktet, er det mulig å gjøre en bedre tilnærming av fargen til en piksel. Disse to teknologiene bruker vanlig MSAA i tillegg til stikkprøvepunkt som kun sjekker om et objekt dekker dekker det eller ikke.
Hvis du har muligheten til bruke EQAA eller CSAA, anbefaler vi dette over MSAA. Men her er benevningen litt rar:
- 8xCSAA og 16xCSAA krever omtrent like mye som 4xMSAA
- 8xQCSAA (Q for quality) 16xQCSAA krever omtrent like mye som 8xMSAA
Den grafiske forskjellen mellom 8xCSAA og 16xCSAA er mindre enn mellom 8xCSAA og 8xQCSAA. AMD sin betegning er lettere:
- 4xEQAA krever like mye som 4xMSAA, og så videre.
1c) Sampling over tid
Temporal AA (TXAA) fra Nvidia er en form for temporal sampling, eller sampling over tid, i motsetning til de tidligere nevnte teknologiene som tar stikkprøver fra et større bilde, alså sampling i rommet. Først bruker TXAA samme prinsipp som MSAA ved å finne kantene til objekter. Deretter blir fargen til en gitt piksel kalkulert ved hjelp av fargen til pikselen på det forrige bildet som ble tegnet.Dette gjør at bevegelse blir glattere, men TXAA gjør ofte bildet uskarpt. Kvaliteten og ytelseskostnaden til TXAA varierer stort fra spill til spill, ettersom teknikken krever informasjon om hvor fort objekter flytter seg på skjermen og selve spillutvikleren er derfor ansvarlig for et bra resultat. Det er delte meninger om TXAA, og om du har muligheten kan du prøve teknologien og se den i aksjon – kvaliteten synes bedre på video enn med bildesammenligninger.
2) Post-processing
Den andre kategorien med anti-aliasing-teknologier endrer bildet etter at det er tegnet, og kalles derfor post-AA eller post-processing. Mens teknologiene i den første kategorien supersampler og analyserer 3D-modellene som skal bli tegnet, gjør post-AA endringer på bildet etter at det har blitt tegnet. AMDs Morphological AA (MLAA) og Nvidias Fast Approximate AA (FXAA) faller under denne kategorien. Disse teknologiene analyserer bildet og finner skarpe kontraster, for å så smøre ut fargene og lage en glattere overgang.
Fordelen med å justere å grafikken etter at den er tegnet opp, slik som MLAA og FXAA gjør, er at det krever svært lite av skjermkortet. Ulempen er at hele bildet, og ikke bare skarpe kanter, blir mer uklart og får lavere kontrast. Spillkonsoller bruker ofte samme teknikk, da den er såpass lite ressurskrevende. Post-AA er en stor smakssak – noen synes det er greit mens andre heller vil være foruten noen form for kantutjevning i stedet. EQAA og CSAA kunne gi et penere resultat, men kostnaden er også mye høyere.
Enhanced Subpixel Morphological AA (SMAA) er en forbedring av MLAA og FXAA, men er ikke utviklet av de to store grafikkgigantene, og er derfor ikke like vanlig å finne i spill. SMAA bruker prinsippet til MSAA i kombinasjon med post-AA: ved å kun bruke post-AA på kantene til objekter, blir bildet som helhet klarere mens aliasing fortsatt blir redusert.
Har du valget mellom SMAA og en av de to overnevnte vil vi anbefale SMAA, og om det ikke er tilgjengelig kan du ta en titt på SweetFX som er et tredjepartsverktøy for å bruke SMAA.
Sammenligning og konklusjon
Så, hvilket alternativ bør du velge?
Effekten til noen av anti-aliasing teknikkene varierer stort fra spill til spill, og i tillegg spiller personlige preferanser inn. EQAA og CSAA er trygge alternativ: begge er utvidelser av MSAA, men de krever også relativt mye prosesseringskraft fra skjermkort.
Spiller du et eldre spill, eller et lett spill på en kraftig maskin – som for eksempel Dota 2 på en kraftig gamingrigg – kan du enkelt og greit prøve supersampling eller downsampling.
Post-prosesserings-teknikkene krever lite fra maskinen, men ikke alle er fornøyde med resultatet. SMAA er dog en av de beste post-AA-teknikkene, så prøv den om du du har muligheten. TXAA, som kun er tilgjengelig for Nvidia skjermkort, er også ganske spennende. Den gir et litt flatt bilde, i likhet med post-AA-teknikkene, men effekten til TXAA, i motsetning til de andre teknikkene vi har nevnt, synes bedre med video enn med bilder ettersom den opererer over tid.
Få også med deg denne guiden til downsampling:
Dette enkle trikset gir deg betydelig bedre spillgrafikk »
Hva er dine erfaringer? Del gjerne med oss i forumtråden under.