Redigerer
Skjermkort
(avsnitt)
Hopp til navigering
Hopp til søk
Advarsel:
Du er ikke innlogget. IP-adressen din vil bli vist offentlig om du redigerer. Hvis du
logger inn
eller
oppretter en konto
vil redigeringene dine tilskrives brukernavnet ditt, og du vil få flere andre fordeler.
Antispamsjekk.
Ikke
fyll inn dette feltet!
==Hvordan et skjermkort virker== En [[Personlig datamaskin|PC]]-[[Skjerm (monitor)|skjerm]] er bygd opp av flere millioner små lyspunkter. Hvert lyspunkt består av én av tre [[primærfarge]]r: [[rød]], [[grønn]] eller [[blå]] (RGB). Til sammen utgjør en slik gruppe av de tre grunnfargene en [[piksel]] ([[additiv fargesyntese]]). Lyser alle tre like sterkt vil fargen (summen av alle tre) fremstå som hvit. Slukker alle, er punktet (naturligvis) svart. Lyser prikkene med ulik intensitet vil summen av dem gjengi en hvilken som helst farge. Instruksjoner til skjermen forteller altså skjermen hvilke punkter som skal tennes og slukkes, og hvilken intensitet hvert enkelt tent punkt skal ha. Tar man et bilde med et digitalkamera, vil sensorbrikken lagre lysinformasjon. Sensorbrikken består av millioner av lysfølsomme punkter som kan registrere farge og lysintensitet. Når denne informasjonen gjengis på en skjerm i full oppløsning, vil skjermen benytte tre lyspunkter (RGB) for hvert sensorpunkt på kamerasensoren. Bildet vises da i full størrelse. Hvis du zoomer inn enda mer enn 1:1 visning, vil hver originale piksel (lyssensor fra kameraet) dekke mer enn én RGB-gruppe på skjermen. Zoomer du inn til tidobbel størrelse, vil altså informasjonen fra én av lyssensorene i kamerabrikken dekke 10x10 piksler på skjermen. Hver av disse skjermpikslene består altså av tre lysdioder, så i dette eksempelet er 300 lysdioder tent for hver originalpiksel fra kameraet. Dette bildet vil fremstå som en serie av synlige firkanter på skjermen, og ikke som et detaljert bilde. Når bilde vises i 1:1 skala (det vil si at én piksel fra kameraet tilsvarer én piksel (RGB) på skjermen), ser bildet detaljrikt og fint ut. Poenget er altså at en skjerm med høy oppløsning som skal vise et bilde tatt med et kamera med lav oppløsning, bare vil vise bildet fint i en 1:1-oppløsning. I eksempelet vil et slikt bilde vises som et lite bilde midt på skjermen. Zoomer du inn slik at bildet fyller hele skjermen, vil du få et «pikselert» bilde, altså at hver enkel piksel fra kamerasensoren blir synlig i stedet for å gli sammen til et pent bilde. Et 3D-spill operer på en annen måte. Bildene her er ikke et resultat av lagret informasjon fra en bildesensor, men konstrueres fortløpende av grafikkmotoren (programvare) i spillet. Har du en skjerm med høy oppløsning (2560×1600) og spiller et spill der du setter oppløsningen til 800x600, vil bildet fremstå som pikselert som i eksempelet med kameraet over. For å få en godt bilde på denne skjermen må altså spillet levere et like bilde med like høy oppløsning som skjermen (2560×1600). På en skjerm med lav oppløsning (1680x1059) vil bildet bli best når spillet leverer bildet i tilsvarende oppløsning. Et grafikkort trenger bare å oversette de binære tallkjedene til lysdiodeinsstruksjoner for at bildet skal vises (altså hvilke dioder som skal tennes, og med hvilken styrke). Dette krever svært lite datakraft når billedinformasjonen kommer som en strøm med instrukser fra hovedprosessoren (typisk et vanlig bilde/fotografi som skal vises på skjermen). Arbeidsbelastningen oppstår når bildet ikke eksisterer, men må konstrueres "on the fly" av grafikkortet, slik det må i spill. Et todimensjonalt spill (slik som "space invaders" og de fleste Nintendo DS spillene), krever lite datakraft. Det er når spillet blir tredimensjonalt (3D) at beregningsmodellene og datamengden øker eksponensielt. Med 3D her menes ikke 3D som man opplever med 3d briller på kino (altså at man fysisk ''kan se'' i 3 dimensjoner/dybde), men at spillet må kunne presentere et tredimensjonalt miljø i 2D. Det betyr at du i et typisk "first shooter" spill kan bevege deg i alle tre dimensjoner i et kunstig miljø (du kan gå til høyre/venstre, opp/ned, inn/ut i bildet). Hvis du går forbi en bil i bildet, må altså grafikkmotoren beregne/tegne bildet av hele bilen, ikke bare den delen du ser. Nærmer du deg bilen forfra, ser du bare fronten og kanskje litt av den ene siden og taket på bilen. Bakparten, den andre siden og undersiden er skjult. Grafikkortet trenger ikke å beregne tekstur og overflate for disse skjulte sidene, men den må forholde seg til at de er der, ettersom hele bilen eksisterer i beregningsmodellene den jobber med. Grafikkortet kan imidlertid ikke beregne avanserte buede kurver og flater. Den bryter hele den kompliserte grafiske modellen ned i mangekanter (polygoner). Hadde den brukt ett polygon til å tegne hele bilen, hadde bilen sett ut som en pyramidevariant. Bruker den titalls millioner polygoner, kan summen av dem få bilen til å fremstå som et objekt med myke buede former. For alle som har hatt projeksjonstegning som et ledd i sin utdannelse, vet man at man kan rotere geometriske figurer rundt en akse, og så beregne hvordan en gitt figur ser ut fra et annet perspektiv. Det er dette grafikkortet gjør. Den beregner hvordan hvert polygon roterer i forhold til hvordan spilleren beveger seg innover i det virtuelle landsskapet. Disse beregningene er rent matematiske og ikke særlig komplekse. Det som gjør det vanskelig er det svimlende nummeret av polygoner som skal beregnes fortløpende (hundretalls millioner eller milliarder). I tillegg skal prosessoren bruke polygonenes posisjon til å bergene vektorgrafikk og farge/tekstur på synlige flater. I tillegg kommer beregnings av lys. Akkurat som i den virkelige verden, vil lys komme fra en lyskilde, Denne kilden kan være en taklampe, sola eller en rekke lyskilder som lyser samtidig fra flere steder. Grafikkprosessoren må altså beregne hvilke visuelle elementer den allerede har beregnet som skal ligge badet i lys, ligge i skygge, ligge delvis i skygge, osv. I tillegg må den kunstige overflatens refleksjonsevne gjengis. Er det en glatt/blank overflate, er den matt eller lysabsorberende, er det andre lyskilder til stede som også belyser objektet, eller blir objektet indirekte belyst av refleksen fra et annet objekt i nærheten som er opplyst av primærlyskilden? I tillegg finnes det en rekke tilleggsalgoritmer som skal gjøre det visuelle bildet enda mer overbevisende ved hjelp av en rekke subrutiner som bergener lysbryting og fraksjonering fra ulike overflater og objekter. Summen av alle disse beregningene er nok til å få det til å svimle. Det er ufattelige mengder data som skal beregnes med det samme et objekt blir beveget eller beveger seg i forhold til andre objekter i bildet. Med det samme grafikkortet har fullført en komplett beregning av alle elementene i bildet inkludert lys/skygger og annaet, blir det ferdige produktet levert skjermen som et stillbilde. Deretter gyver grafikortet løs på beregning av neste bilde som så i sin tur leveres skjermen. Som de fleste vet fra film og video, består disse av en serie bilder som vises raskt etterhverandre. Man fant rakst ut at billedfrekvensen måtte være 24-25 bilder i sekundet for at bevegelsene skulle fremstå som myke og overbevisende. Dersom hastigheten ar lavere enn dette, beveget figurene i bildet seg rykkete og unaturlig. Et grafikkort må altså levere ferdigberegede bilder i samme hastighet (altså 25 bilder per sekund eller mer) for at det skal se mykt og naturlig ut. Dette kalles billedhastighet eller "framerate" på engelsk. Lavere hastighet fører til rykkete og unaturlig billedstrøm. Et grafikkort må også levere en oppløsning som matcher skjermoppløsningen, ellers ser bildet pikselert ut. Jo høyere oppløst skjerm, jo mer detaljert blir bildet, og antallet polygoner skjermkortet må beregne øker eksponensielt. Blir grafikken for krevende (moderne ultrarealistiske spill) og skjermen for høyoppløst, vil ikke grafikkortet klare å regne raskt nok, og bildet rykker, fryser og hopper. Grunnen til at bildet ikke blir som gamle stumfilmer (jevnt hakkende) er at belastningen på grafikkprosessoren og grafikkminnet konstant varierer med hva som skal vises av bevegelser og detaljer i bildet. Et grafikkort som blir overbelastet kan altså vise alt fra relativt myke bevegelser til hakking og fullstendig frys, i en kontinuerlig variasjon. Grafikkort med tilstrekkelig kapasitet for spillet og skjermoppløsningen, vil kontinuerlig vise en sømløs strøm av bilder. Kobler man et grafikktestprogram opp, kan man direkte lese av hvor mange bilder grafikkortet lager per sekund (Frames Per Second eller FPS for kort). Da vil man se at kortet leverer opptil hundrevis av bilder i sekundet i "rolige" scener, mens det i mer krevende partier med mye bevegelse og mange individuelt bevegelige objekter i billedflaten, kanskje synker til 24-30 bilder i sekundet.
Redigeringsforklaring:
Merk at alle bidrag til Wikisida.no anses som frigitt under Creative Commons Navngivelse-DelPåSammeVilkår (se
Wikisida.no:Opphavsrett
for detaljer). Om du ikke vil at ditt materiale skal kunne redigeres og distribueres fritt må du ikke lagre det her.
Du lover oss også at du har skrevet teksten selv, eller kopiert den fra en kilde i offentlig eie eller en annen fri ressurs.
Ikke lagre opphavsrettsbeskyttet materiale uten tillatelse!
Avbryt
Redigeringshjelp
(åpnes i et nytt vindu)
Denne siden er medlem av 2 skjulte kategorier:
Kategori:Opprydning-statistikk
Kategori:Opprydning 2025-02
Navigasjonsmeny
Personlige verktøy
Ikke logget inn
Brukerdiskusjon
Bidrag
Opprett konto
Logg inn
Navnerom
Side
Diskusjon
norsk bokmål
Visninger
Les
Rediger
Rediger kilde
Vis historikk
Mer
Navigasjon
Forside
Siste endringer
Tilfeldig side
Hjelp til MediaWiki
Verktøy
Lenker hit
Relaterte endringer
Spesialsider
Sideinformasjon