Grafik har længe været hightech og omgærdet med en form for mystik hvor kun de specielt indviede havde mulighed for at være med. Hvis du gerne vil blive klogere på de forskellige begreber og dermed have en bedre mulighed for at vælge den opsætning der matcher din rig så kig med her. Informationerne er samlet fra en vifte af forskellige kilder hvor forskellige producenter står for rigtigt meget.

Hvad laver et grafikkort?

Helt enkelt så danner et grafikkort (Graphic Processor Unit eller GPU) det billede du ser på skærmen ud fra en model som består af en række polygoner. Der er gennem årene blevet flere og flere polygoner så i dag er muligt at skabe fotorealistiske billeder. Sammen med polygonerne så findes der en række andre elementer som er med til at skabe den færdige oplevelse.

Grafikkortet kan danne tilstrækkeligt mange billeder efter hinanden så det virker levende. I et moderne 3D spil så dannes billederne mens du spiller. Når modellen af din figur og den verden du bevæger dig i, skal skabes fra en matematisk model så giver det en række udfordringer. Der skal laves beregninger for hver enkelt model som omsætter den fra 3D til 2D. Den skal dannes udfra hvor du betragter scenen og det hele skal vises med lys, skygger og farver.

Opløsning

Vi starter enkelt ud og tager først fat i opløsning eller resolution. Det angives som antallet af billedelementer eller pixels der kan vises. Det angives i bredde gange højde. Desuden findes typisk en kortere betegnelse som vist i parentes. De mest almindelige er 1280×720 (720p eller HD), 1920×1080 (1080p eller Full HD), 2560×1440 (1440p), 3840×2160 (4K eller Ultra HD). Alle disse er i det format der kaldes 16:9. Det betyder at der er 16 billedelementer i bredden hver gang der er 9 billedelementer i højden. Der findes også et format som kaldes 16:10 som så har 1920×1200, 2560×1600. Der sker hele tiden noget så du kan også finde ultrawide skærme med f.eks. 2560×1080, 3440×1440 og så videre. Langt det mest normale er de forskellige variationer af 16:9. De helt gamle skærme og fjernsyn have 4:3 format.

Når du kigger på skemaet ovenfor så kan du se at f.eks. 4K og UHD 4K er to forskellige ting. Den tekniske opløsning er nederst mens den opløsning som er dominerende i markedet er angivet i øverste venstre hjørne af de enkelte kasser. Simpel matematik viser også at hver gang du fordobler opløsningen så bliver området 4 gange så stort. Det betyder også at et fuldt billede kræver fire gange så meget memory som forgængeren.

Billeder pr. sekund

Der bliver talt meget om billeder pr. sekund, Frames per Second eller FPS som måles i Hertz forkortet Hz. Hertz angiver antal per sekund så 1 Hz er et billede i sekundet angivet som 1 FPS. Hvis du har 60 FPS så svarer dette til 60 Hz. Der skal være overensstemmelse mellem hvad dit grafikkort producerer af FPS og så den opdateringsfrekvens din monitor eller TV har. Så har du et 60 FPS spil skal din monitor kunne vise 60Hz. Sætter du dine grafik indstillinger i alt for højt så kan grafikkortet ikke producerer et tilstrækkeligt højt antal billeder pr. sekund og dermed bliver oplevelsen dårlig. Det opleves ved at billedet hakke og din figur bevæger sig i ryk. Hvis grafikkort og monitor er ude af synkronisering så opleves dette som screentearing. Herom senere.

Hvis du gerne vil teste hvad dit setup kan trække af FPS, så brug https://www.testufo.com/ Det er en lille ufo der suser overskærmen som på glimrende vis illustrere hvordan dit grafikkort og monitor spiller sammen. Der er også andre tests som viser hvilken ydelse du kan forvente.

Scaling

Mange gange finder du en indstilling for opløsning. Den kaldes ofte for Rendering Solution. Rendering er processen med at gengive eller danne billedet og dermed angiver indstillingen den opløsning som billedet skabes i. Det bedste er at sætte Rendering Solution til det samme som din monitor kan vise. Hvis du vælger en anden indstilling så bliver billedet enten Upscalet eller Downscalet.

I upscaling bliver billedet blæst op så det matcher din monitor. Det kommer til at se noget primitiv og uskarpt ud. Det er fordi det er nødvendig at gætte hvilken farve de ekstra billedelementer skal have. Så effekten er som en mosaik. Uanset om upscaling foretages af en algoritme i monitoren, i dit grafikkort eller på en konsol, så bliver det aldrig godt. Værst bliver det hvis upscaling ikke laves i et lige antal billedelementer så omsætningsfaktoren ikke er heltal.

Det modsatte er tilfældet med downscaling (eller Downsampling) hvor billedet dannes i en højere opløsning og så reduceres i opløsning så til passer til monitoren. Det kan give et bedre billede som dog skabes på bekostning af de ekstra kræfter grafikkortet skal bruge.

Vælger du det som kaldes Native så matches størrelsen på billedet som gengives med opløsningen på skærmen. Native benyttes også som angivelse af at f.eks. en Ultra HD faktisk bliver dannet i 4K og ikke bare upscales til UHD.

Synkronisering

Som nævnt under billeder pr. sekund så kan der komme screentearing hvis grafikkort og monitor er ude af det som teknisk er den vertikale synkronisering. Det oplever du ved at over- og underdelen af billedet bliver forskudt i forhold til hinanden. Der findes forskellige teknikker som er lavet til at undgå dette. Den ene kaldes Vsync eller Adaptive Vertical Synchronization hvor monitoren tvinger grafikkortet til at følge den opdatereringsfrekvens som monitoren anvender. Det skaber så nogle andre problemer som input lag fordi genereringen af et billede bliver forsinket til næste cyklus. Det bliver specielt slemt hvis FPS dykker under 60Hz for så tvinger VSync billedfrekvensen ned til 30Hz. Dermed bliver det en kedeligt oplevelse hvis dit grafikkort kæmper for at holde de 60 FPS.

AMD har lavet teknologien FreeSync hvor skærm og grafikkort dynamisk tilpasser sig til hinanden. NVIDIA har også deres teknologi som kaldes G-Sync. Forskellen mellem de to er, at FreeSync anvender VESAs DisplayPort Adaptive-Sync protokol som er gratis mens G-Sync er en NVIDIA opfindelse. Du skal sikre at dit grafikkort og din monitor understøtter samme teknologi. Begge disse teknologier er bedre end VSync.

Anti-aliasing

Når du tegner en skrå streg og bygger den af billedelementer så kommer den let til at fremstå med en trappe effekt (Aliased). Hvis kontrasten er stor bliver det endnu mere tydeligt. Teknikken til at få en diagonallinje til at se meget pænere ud kaldes Anti-aliasing. Der findes bl.a. en metode som kaldes Super Sampling Anti Aliasing eller SSAA. Her skabes billedet i en større opløsning end der kan vises hvorefter det downscales. F.eks. skabes billedet i en opløsning 4 gange mere end din monitor kan vise for så at blive reduceret.

Tænk på en scene hvor du har et skib på et hav. Der er et brunt reb fra masten som har det blå hav som baggrund. Hvis rebet blev lavet uden AA, så ville det set takket ud på den blå baggrund. Genereres der et billede i 4 gange opløsningen så vil man nu have 4 billedelementer i stedet for ét. De fire elementer vil alle have en forskellige farve. Nogle vil være brune fordi de er en del af rebet, andre vil være blå fra havet. Når billedet downscales til den faktiske opløsning på skærmen, så bliver de fire billedelementer til ét hvor farven er et gennemsnit af de fire forskellige farver. Dermed bliver overgangen mellem reb og hav meget mere blød. Den eneste ulempe med SSAA er at den kræver temmelig meget regnekraft. Derfor findes der masser af teknologier som er skabt til at give det samme resultat uden at dræne dit grafikkort for kraft.

Multi Sampling (MSAA) er mindre krævende end SSAA da den kigger på de omkringliggende billedelementer i en kant og så gætter på den bedste farve. Dette sker i forbindelse med at billedet bliver dannet. Det har typisk været standarden i ældre spil. Coverage Sampling (CSAA) som er NVIDIAs mere effektive udgave af MMSA. Her er AMD ikke lagt bagefter med Custom Filter (CFAA) som er deres udgave af MMSA.

Fast Approximate (FXAA) eller Fast Sample (FSAA) er et efterbehandlingsfilter skabt af NVIDIA som kigger på det dannede billede i sin helhed. Den kigger ikke på 3D modellen men benytter i stedet billedets dybde til at udjævne skarpe kontraster. Benytter vi igen scenen med et skib på havet, så vil skibet været i et lag mens havet vil være i et andet lag. Filteret kigger på alle billedelementer som findes i overgangen og udjævner ved at vælge en farve som er en blanding af de omkringliggende. Den fanger også ujævnheder der opstår som kombinationer af forskellige elementer og fanger dermed mere end MSAA. FXAA kræver desuden meget lidt ekstra kraft af grafikkortet. Dermed er det blevet populært i mange nyere spil.

Morphological (MLAA) er lavet af AMD efter et tilsvarende princip som FXAA. Det er et efterbehandlingsfilter i stedet for at være en del af processen hvor billedet dannes.

Enhanced Subpixel Morphological (SMAA) er endnu et efterbehandlingsfilter som anvender en kombination af teknikkerne fra MLAA, MSAA og SSAA. Dette kan aktiveres med SweetFX og mange nyere spil understøtter denne mulighed.

Temporal (TXAA eller blot TAA) sammenligner to på hinanden følgende billeder og analyserer kanterne for at udjævne hakker. Det er en serie af efterbehandlingsfiltre som har den egenskab at forhindre kanter i at se ud som om de kravler. De ses nogle gange at diagonale linjer virker som om de bevæger sig. TAA startede på NVIDIAs Kepler grafikkort.

Multi Frame (MFAA) er også et efterbehandlingsfilter som NVIDIA introducerede i deres Maxwell kort. MSAA leder efter et fast sæt af mønstre mens MFAA tillader at lede og korrigerer programmér bare mønstre.

Deep Learning Super Sampling (DLSS) er det seneste påfund fra NVIDIA og findes som mulighed i nogle spil som anvender Geforce RTX kort. Der findes en lang forklaring hvor essensen er at DLSS er en bedre og mere effektivt udgave af TAA.

Ja ja ikke så mange detaljer. Hvad skal jeg vælge?

Det afhænger af dit grafikkort og hvad du ønsker at opnå. Hvis det er FPS så må du gå på kompromis med nogle af AA opsætningerne. Hvis du søger bedste visuelle kvalitet så skal du bare gå amok. Det simple råd er at benytte FXAA. Det virker generelt rigtigt godt. Hvis du har betalt for et grafikkort med DLSS så kan du lige så godt aktiverer det når det nu er købt og betalt. Du kan også gå i gang med at eksperimenterer for at finde den opsætning du synes giver den bedste effekt. Du kan gå så vidt at du begynder at indstille direkte i grafikkortets opsætning. Det synes jeg kræver alt for meget så jeg nøjes for det meste med at skrue inde i selv spillet. Her kan du også opleve at nogle af de forskellige AA teknikker giver mulighed for at vælge 2x, 4x, 8x og så videre. Det referer til antallet af målepunkter når farven til et billedelement skal bestemmes. Jo flere målepunkter jo bedre bliver resultatet. Det kræver så også mere regnekraft.

Overflader

Det er ikke alt som bliver generet ud fra en 3D model. Der er rigtigt meget i et spil som er en 2D overflade eller tekstur (textur på engelsk). Teksturen kan være et 2D mønster som påføres en 3D model. Tænk på et hus som skal se ud som om det er bygget af sten. For ikke at skulle danne hver sten som et billede, påføres en 2D tekstur som har det ønskede udseende (f.eks. mursten) til husets overflade. Da du står et sted og betragter huset så udfordringen at huset ikke matcher teksturen billedelement for billedelement. Billedelement fra teksturen kaldes en Texel. Det er perspektivet i billedet eller formen af modellen som giver udfordringen. Kugler er en af de vanskelige former. Så hvordan afgør man hvilken farve fra teksturen der skal være på 3D modellen på?

For at finde ud af hvilken farve fra teksturen der skal vises kan teknikken Bilinear Filtering anvendes. Den er meget enkel. Når et billedelement i 3D modellen skal farvelægges, så er det let hvis det matcher en texel. Hvis der ikke findes en eksakt match så anvender Bilinear Filtering de fire omkringliggende texels fra teksturen. De fire farver blandes og den nye farve bliver brugt til at farvelægge billedelementet (pixel) på det billede som vises.

Hvis resultatet skal være godt så skal teksturen være i mindst samme opløsning som det der maksimalt kan vises. Vi har alle oplevet at gå tæt på et objekt for at se det blive til en mosaik. Det værste er når teksturen er en tekst der så bliver fuldstændig ulæselig. Hvis der er teksturer i en meget høj opløsning, så kræver det meget regnekraft hvis det bruges til at vise ting i det fjerne hvor der kun er ganske få billedelementer. Derfor har man typisk en tekstur i en række lavere opløsninger. Disse kaldes for Mipmaps. Det skaber så en ny udfordring. Vi ønsker jo ikke at se hvor et mipmap slutter og et anden begynder.

Bilinear Filtering kigger alene på ét mipmap. Så for at komme ud over dette så benyttes Triliniar Filtering som bruger samme teknik og desuden kigger på de tilstødende mipmaps. Kombinationen af mipmaps sammen med Trilinear Filtering løser også udfordringen med aliasing. Desværre er resultatet af både Bilinear og Trilinear Filtering at billedet virker uldent eller uskarpt.

Anisotropic Filtering (AF) giver et mere tydeligt billede. I både Bilinear og Trilinear så holdes teksturen vinkelret på 3D model der skal vises. Anisotropic Filtering vinkler i stedet teksturen så den matcher betragtningsperspektivet. Så kigger du på et tag på huset som er i en vinkel 45 grader så bliver teksturen også anvendt i en vinkel på 45 grader. Det er ikke ret mange spil der giver mulighed for at ændre på hvordan 2D overflader overføres til 3D modeller.

Det er normalt bare sat til hele tiden fordi det ikke kræver nær så meget kraft som anti-aliasing. Du kan finde et tal som giver dig mulighed for at justere effekten af anisotropic filtering. Tallet angiver hvor mange detaljer der beregnes når mipmappet overføres til modellen.Dermed angiver det hvor tydeligt overfladen kommer til at se ud. Det har den største effekt på ting som er langt væk. Du kan se at flisemønsteret på billedet ovenfor i 2x er lidt mere uldent end i 16x når du kigger i toppen af billedet. Det er mere almindeligt at se muligheden for at vælge kvaliteten af teksturerne. Det er typiske en stor effekt i spillet og jo bedre kvalitet jo mere kraft kræver det også. Det er normalt en direkte effekt på FPS at vælge noget som grafikkortet har svært ved at trække.

Motion blur

Her taler vi for første gang om en indstilling der stort set er selvforklarende. Det er specielt populært i bilspil hvor det giver indtrykket af fart når det du passere opleveles uskarpt. Det findes også som indstilling i rigtigt mange andre spil. Her vil jeg altid vælge at slå den fra. Den trækker kraft ud og der giver ikke nogen umiddelbart bedre oplevelse. Det eneste sted jeg synes Motion Blur er relevant er i racer spil.

Bloom

Bloom er en af de mest misbrugte effekter nogen sinde. Det er en metode til at få lysende objekter til at se ud som om de lyser kraftigere ved at lade lys brede sig ud over kanterne til andre dele af billedet. Billedet ovenfor er en klassiker fra spillet Syndicate (2012) som har latterligt meget bloom. Mange gange er det ikke muligt at ændre bloom fordi det er en del af “det kunstneriske udtryk”.

Depth of Field

Depth of Field (DoF) er lidt i samme kategori som Motion Blur. I alt sin enkelhed så bliver ting som ikke er i fokus vist sløret eller uldne. Det skal give effekten af at du har fokus på et bestemt sted om man bl.a. oplever fra film. Det er meget afhængig af spillets implementering af DoF hvor meget det koster på ydelsen, altså FPS. I nogle spil er der ingen mærkbar forskel i andre reduceres FPS med 20-25%.

Draw Distance

Draw Distance er hvor langt væk at forskellige elementer bliver dannet. Jo flere detaljer der findes i billedet jo mere skal der bearbejdes. Spillet du GTA V og napper jetflyet så bliver det pludseligt en krævende opgave at danne alle bygninger, veje, køretøjer og træer i Los Santos. Hvis spilmotoren har store problemer med at holde trit med så får man det som kaldes pop-in. Det betyder at der pludseligt dukker et objekt op hvor der hidtil har været tomt. Det er typisk en kombination af spilmotoren og hvor hurtigt teksturer kan læses fra disken.

Ambient Occlusion

Ambient Occlusion er effekten af lys på en scene. I den helt simple form så bliver alle overflader udsat for den samme mænge lys fra omgivelserne. Sådan vil lys ikke opføre sig i den virkelige verden. Så for at få et mere naturtro billede så vil Ambient Occlusion give mindre lys til områder som ligger i skygge eller som er fordybninger i billedet. Der skabes dermed en større kontrast og billedet ser mere naturligt ud.

Det findes i en udgave som kaldes Screen Space Ambient Occlusion (SSAO) som kan udføres mens billedet dannes. Selvom det er en tilnærmelse eller approksimation så er metoden blevet populær også selvom den nogle gange given en effekt af at modellen har en sort aura omkring sig. SSAO er siden blevet udviklet til Horizon Based Ambient Occlusion (HBAO) med eller uden et plus efter og High Definition Ambient Occlusion (HDAO). De to sidste afhænger af hvem der har produceret dit grafikkort selvom de virker på samme måde.

High Dynamic Range Rendering

High Dynamic Range Rendering (HDRR) hænger uløseligt sammen med din skærm fordi det angiver hvor mange forskellige farver der kan vises. Tegningen ovenfor viser forskellige modeller til repræsentation af farver. De kaldes Gamut. Det er vigtigt at alle anvender den samme model for ellers vil billedet blive vist i helt andre farver end tiltænkt. Den mest fremherskende model er den som på billedet ovenfor kaldes sRGB som stammer fra 1996. Det er repræsenteret med den sorte stiplede linje. Den yderste blå streg repræsenterer hvad det menneskelige øje kan opfatte, så der er et stykke vej. Hvis man gerne vil give et mere naturtro billede så skal der mere lys til. En normal skærm som kan vise det som kaldes Standard Dynamic Range (SDR) har en lys intensitet op til 100 cd/m2 eller nits. Læg også mærke til at det også kræver at skærmen kan blive mere sort.

Hvis vi gerne vil have et billede mere flere farver og mere kontrast så skal farvemodellen også skiftes. Standarden kaldes for High Dynamic Range (HDR) og er angivet som Rec.2020. Den giver et meget bredere farvespekter. Det kræver så også mere lys. For at vise HDR så skal der benyttes 10.000 Nits. Der er vi slet ikke endnu. Så medmindre du har vundet den store Eurojackpot så er et TV eller en monitor med HDR10 det som ligger inden for rækkevidde. HDR10 kræver 1.000 nits og en farvedybde på 10 bits.

Set i forhold til SDR som har 16,7 millioner farver (2^24 for hver grundfarve Rød, Grøn, Blå er repræsenteret med hver 8 bit ) så har HDR10 1 milliard farver (2^30 for hver grundfarve er repræsenteret med 10bits) og dobbelt så meget lys. Hvis du lige vil gå de ekstra skridt så kan du nu også får HDR10+ som har 4.000 nits. Eizo har lavet en glimrende forklaring på de forskellige faktorer der driver billedekvalitet hvor jeg har fundet nedenstående illustration. Hvis du vil læse mere så findes hele beskrivelsen her: https://www.eizoglobal.com/library/management/ins-and-outs-of-hdr/index1.html

Som unyttig paratviden så kaldes den farvemodel som anvendes på skærme for den additive farvemodel. Der lyset der i sig selv skaber farven. Den kaldes også RGB for de tre grundfarver rød, grøn og blå som kan blandes til alle farver. Når du blander maling så anvendes den subtraktive farvemodel. Her er det reflektionen af lyset som skaber farven. I den subtraktive farvemodel anvendes grundfarverne Cyan, Magenta og Gul. Hvis du ser på en farveprinter har den typisk også en sort da det er svært at blande de tra andre og så få sort. På engelsk bliver det CMYK for Cyan, Magenta, Yellow og Key (som er sort). Der bruges rigtigt meget energi på at få de to forskellige modeller til at visuelt at udtrykke den samme farve så en tryksag har samme farve udtryk som på det computersystem den er lavet.

Som du kan se ud af illustrationen så er det sidste der mangler for at skabe det perfekte naturtro billede at vi får lysstyrken op i niveau. Alle andre tekniske elementer er på plads. Så check din monitor og juster High Dynamic Range Rendering til det som din monitor kan vise.

Er der snart mere?

Som konsol ejer så kan du alene skrue på de grafiske indstillinger som findes i spillet. Rigtigt mange ting er låst helt fast bl.a. fordi der anvendes HDMI. Benyttes op til HDMI 1.4b så 60hz og Full HD det maksimale mens du har HDMI 2.1 får UHD og op til 120hz sammen med HDR. På PC siden så er det op til grafikkortet og den monitor du hare valgt. På PC siden anvendes DisplayPort (DP) som er bagudkompatibel med HDMI og DVI. Her er vi aktuelt på DP 1.4a med 2.0 lige rundt om hjørnet. DP kan det samme som HDMI 2.1.

Nå men nu er jeg ved at være til vejs ende med hvad jeg kan finde på om grafikkort og en forklaring på de forskellige mærkelige indstillinger. God fornøjelse med at eksperimenterer med grafikopsætninger.