|
|
|
| Hits: 907 |
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
Antialiasing for nybegyndere |
|
|
|
|
Anti-aliasing for begyndere
Et spørgsmål der tit bliver stillet er: Hvad er anti-aliasing? Hvis der skulle være en enkelt her som har læst at det skulle være: â€En stærk modvilje mod Jennifer Garner serien Aliasâ€, kan vi allerede nu sige at det er det ikke ;-) Anti-aliasing er en teknik som bliver brugt til at gøre den grafiske oplevelse bedre. Vi vil her forsøge at forklare hvordan det virker, på en ikke alt for teknisk måde.
Aliasing
For at forstå anti-aliasing skal man meget naturligt vide hvad aliasing er. Aliasing er de â€trapper†man ser på kanter, lad os give et eksempel:
Illustration 1 Det vi ser her er en streg som grafikkortet skal tegne, men for at sende denne streg til skærmen skal den tilpasses den valgte opløsning. Det er det nettet (også kaldet raster) bruges til. Hvis en opløsning på f.eks. 800x600 er valgt, ligger kortet et raster net på 800x600 over grafikken. Kun de tern (pixels) hvor midten er dækket bliver tegnet.
Lad os se hvordan vores streg kommer til at se ud:
Illustration 2 Nu ligner vores pæne streg noget der er blevet kørt over af en bus… Det er hvad man kalder aliasing, altså det kvalitets tab der kommer når grafik bliver pixeleret. Selvfølgelig er effekten her overdrevet da vi har valgt en meget lille opløsning, men jeg er sikker på langt de fleste kender til trappe lignende kanter i deres ynglings spil.
Hvad kan man så gøre for at fjerne disse kanter? Man kan jo lade opløsningen stige, man da det menneskelige øje kan opfatte aliasing helt op til en opløsning på 4000x4000 vil man hurtigt løbe tør for GPU power. Her er det så anti-aliasing kommer ind i billedet…
Oversampling
Vi smider lige 4x anti-aliasing på, men hvad sker der egentlig når vi gør det? Først bliver hver pixel/tern delt op i 4, hvilket kaldes oversampling. Med 2x anti-aliasing vil hver pixel blive delt i 2, 6x delt i 6 osv.. Sådan her ser stregen ud med 4x AA:
Illustration 3 Se nu begynder det at ligne noget! Stregen har meget mindre tendens til trappe effekt, men der er et lille problem… Kortet kan jo ikke bare sende et billede af sted som består af 4 gange flere pixels end den opløsning vi bad om, så vi bliver nødt til at få opløsningen ned til den oprindelige igen.
Men hvad så med kvaliteten? Bliver den ikke den samme som før?
Downfiltering
Kortet begynder nu at køre downfiltering vores på vores streg. Hvor kortet før lavede en pixel om til 4, skal det nu til at gøre det modsatte.
Men hvordan undgår vi så at billedet bliver magen til det i illustration 2? Hvor kortet i starten kun skelnede mellem om en pixel var dækket eller ikke dækket, tjekker filteret nu med hvor mange procent hver pixel er dækket. Dvs. når den skal lave de 4 pixels om til 1, tjekker den om 0, 1, 2, 3 eller 4 af disse pixels er dækket. Kortet ved så at den nye pixel egentlig skulle have en dækningsgrad på 0, 25, 50, 75 eller 100 procent.
Hvad bruger den så disse tal til? Jo, nu kan filteret fortælle kortet at jo lavere dækningsgrad en pixel har, jo lysere en farve skal den tegnes med. En dækningsgrad på 0 % siger sig selv (baggrundsfarven hvid, hvis nogen skulle være i tvivl ;-)), 25 % skal være lysegrå, 50 % grå, 75 % mørkegrå og den sidste er nem at gætte: 100 % skal være sort, som jo er stregens farve.
Resultat
Lad os se hvordan vores streg ser ud efter filtreringen:
Illustration 4 Nu har vi så fuldført anti-aliasing’s processen. Tæt på er den stadig ikke helt pæn, men det er jo også sjældent man ser ting i 29x20. I en mere normal opløsning vil de forskellige farver gøre overgangen mindre skarp og derfor gøre trappeeffekten langt mindre tydelig.
Lad os se hvad anti-aliasing betyder for et rigtigt billede, først et uden AA:
Illustration 5 Trappeeffekten er tydelig, specielt på vingerne…
Næste billede bliver med 4x AA:
Illustration 6 Forskellen er tydelig, selv på disse små billeder. Vingerne er langt mere glatte og flyene i baggrunden er også blevet tydeligere.
Det vi her har gennemgået er optimal anti-aliasing. Der findes to overordnede udgaver af sampling processen: 1. Multisampling, som kun tager kanter og kun kan køre med en farve (Z-værdi) pr. sampling. 2. Supersampling, som tager hele billedet og kan køre med en separat farve for hver sampled pixel. Udover det kan man køre med ordered eller rotated grid, hvilket også har meget betydning for kvaliteten. Supersampling giver klart det flotteste resultat, da hele billedet bliver berørt. Alligevel kører alle moderne kort med multisampling, da supersampling kræver ekstremt meget arbejde. Dog har 6800 kortene en 8x sampling som benytter en blanding af de to typer, men man taber meget ydelse ved at sætte det til.
Hver producent har selvfølgelig også deres egen mening om hvordan og hvor anti-aliasing skal udføres, og hvor det rette forhold mellem hastighed og kvalitet ligger. Så vi har kun lige snittet overfladen med denne hurtige gennemgang....
Daglig brug af anti-aliasing
Måske sidder du og tænker: Hvad kan jeg egentlig bruge det her til? Jo, de nye kort er efterhånden så hurtige at de kan blive begrænset af andre enheder. F.eks.kan udendørs baner i Far Cry nemt blive CPU begrænset ved de høje kvalitets niveauer. Man kan komme uden om denne begrænsning, og stadig udnytte dit grafikkort fuldt ud, ved at gå et tak ned i kvalitet og slå AA til. Det samme gælder hvis din monitor ikke har en god refresh rate i høje opløsninger, så kan du med fordel vælge en lavere opløsning med AA.
Hvad så hvis man sidder med high end hardware? Som vi var inde på i starten kan det menneskelige øje opfatte aliasing helt op til en opløsning på 4000x4000, så selvom du spiller alle dine spil i 1600x1200, eller højere, er anti-aliasing stadig en god ting at eksperimentere med.
Med et ældre kort kan en lavere opløsning med AA også give en bedre oplevelse, så jeg kan kun anbefale at I prøver jer frem og vælger lige præcis den indstilling I selv synes bedst om.
Til slut skal siges at det der fungerer allerbedst er en kombination af anisiotropic filtering og anti-aliasing. I en senere artikel vil vi komme ind på hvordan anisiotropic filtering fungerer.
Hvordan man slår anti-aliasing til
Før man kan lege med anti-aliasing skal man selvfølgelig vide hvor man slår det til. Vi starter med Catalyst Classic:
Først og fremmest skal man ind i grafikkortets avancerede indstillinger, dette gøres nemmest ved at klikke højre museknap på skrivebordet og trykke egenskaber/ indstillinger/ avanceret / 3D/ Use costum settings/ Custom. Efter denne klik fest sidder vi ved denne skærm:
Illustration 7 Som vi kan se skal fluebenet ved Application Preference fjernes, og derefter kan man frit vælge hvor mange gange anti-aliasing man vil have på. Derefter trykker man bare ok og går i gang med at spille.
Så snupper vi Forceware:
Ligesom ved Catalyst skal vi igennem en masse klik. Højre museknap på skrivebordet og trykke egenskaber/ indstillinger/ avanceret / GeForce. Derefter trykker man den lille sidemenu ud og vælger Indstillinger for ydeevne og kvalitet, smutter ned i Indstillinger for anti-aliasing. Så har du denne skærm:
Illustration 8 Her er der også et flueben der skal fjernes ved Programkontrolleret, og derefter vælger man bare løs. Igen er det bare at trykke ok og så starte ynglings spillet op.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|