24.12.2012 Views

Datorgrafik i spel

Datorgrafik i spel

Datorgrafik i spel

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Datorgrafik</strong> i <strong>spel</strong><br />

1<br />

Robin Wahlstedt<br />

Datavetenskap / Spel<br />

Vetenskapsmetodik<br />

rwt07001@student.mdh.se


Sammanfattning<br />

Dator grafik kan delas in i fyra olika områden: information, design, simuleringar och<br />

fönsterhantering. Det finns många aspekter som man måste tänka på när man skapar grafiken<br />

till ett program. Om man t.ex. skapar ett <strong>spel</strong> måste man tänka på hur man hanterar skuggor,<br />

ljus och vinklar till de objekt som man skapar i grafiken. Spelare kan sedan ändra på dessa<br />

inställningar i <strong>spel</strong>et för att få en så bra <strong>spel</strong>upplevelse som möjligt utan att bilden hackar<br />

fram med alldeles för låg fps, antal bilder per sekund.<br />

Det första <strong>spel</strong>et som använde grafik var <strong>spel</strong>et Tick Tack Toe redan på 50 – talet och sedan<br />

dess har grafiken utvecklats oerhört. Alltså på bara ett par decennier utvecklades grafiken<br />

enormt, bland annat från två dimensioner till tre dimensioner. Dessutom har man även<br />

förbättrat tekniken ytterligare.<br />

Spelgrafik utvecklas hela tiden eftersom <strong>spel</strong>företagen vill att varje ny utgåva ska sälja bäst på<br />

marknaden. Detta är nog den största faktorn till att det går så fort att komma på nya tekniker<br />

inom datorgrafik. När man skapar ett <strong>spel</strong> använder man sig av olika sorters grafikbibliotek<br />

som innehåller funktioner för att hantera grafiken på olika sätt.<br />

2


Innehållsförteckning<br />

<strong>Datorgrafik</strong> i <strong>spel</strong> ........................................................................................................................ 1<br />

Sammanfattning ......................................................................................................................... 2<br />

Inledning ..................................................................................................................................... 4<br />

<strong>Datorgrafik</strong> ................................................................................................................................. 4<br />

Grafik och <strong>spel</strong> historia .............................................................................................................. 5<br />

Dimensioner................................................................................................................................ 8<br />

Grafik bibliotek .......................................................................................................................... 9<br />

Slutsatser .................................................................................................................................... 9<br />

Referenser ................................................................................................................................... 9


Inledning<br />

<strong>Datorgrafik</strong> är bilder som förmedlar vad som händer på skärmen. Användaren i ett <strong>spel</strong> ska<br />

kunna se bilden och förstå vad som händer och kunna agera därefter. Till att börja med så<br />

hade jag tänkt förklara vad datorgrafik är och sedan gå in på hur grafiken har utvecklats med<br />

åren. Spel har inte alltid sett ut som de gör idag. Därmed kommer jag också att gå in på <strong>spel</strong><br />

utvecklingens historia. Efter det kommer jag gå in och förklara vissa begrepp i ämnet<br />

<strong>spel</strong>grafik.<br />

<strong>Datorgrafik</strong><br />

<strong>Datorgrafik</strong> kan delas in i 4 olika områden.<br />

• För att visa information<br />

• Design<br />

• Simuleringar / Animeringar<br />

• Fönsterhantering<br />

<strong>Datorgrafik</strong> är med andra ord den information som visas på skärmen. Som användaren i sin<br />

tur ser och uppfattar för att sedan kunna integrera med systemet.<br />

Nästan all grafik består av raster grafik. Med det menas att bilden ritas upp av en mängd<br />

pixlar som ligger i en buffert som är specificerade till olika delar av skärmen för att skapa den<br />

bild som programmet ska visa. Ju mer pixlar man har i sin buffert desto skarpare och mer<br />

verklighets trognare ser bilden ut. Man brukar räkna på hur många bitar en sådan buffert<br />

innehåller. Desto mer bitar det är desto fler färger kan varje pixel innehålla och de ger mer<br />

precision och djup i själva bilden. Om en buffert innehåller 1 bit så innehåller den 2 färger,<br />

om den innehåller 8 bitar så blir de då 256 färger dvs 2^8=256.(2) Pixlarna i sig ritas ut på<br />

skärmen rad för rad. [Edward].<br />

Det finns också någonting som kallas för vektor grafik. Den typen av grafik används nästan<br />

jämt då man ska göra 3d-modulering och är väldigt användbart i <strong>spel</strong>. Istället för att rita pixel<br />

för pixel som man gör med raster grafik så ritar man linjer, trianglar eller andra geometriska<br />

formler för att bilda objekt. [12]<br />

Det är ganska mycket man måste tänka på när man skapar bilder till olika program. Man vill<br />

att de ska vara så verkligt som möjligt. Tex om man vill skapa en 3d miljö i ett <strong>spel</strong> så måste<br />

man tänka på hur det ser ut i verkligheten. Hur vi ser att något objekt befinner sig längre bort<br />

eller inte? Man specificerar vart de specifika bild delarna ska ritas ut med geometriska<br />

formler och sedan ritar man ut bilder med linjer, prickar, polygoner eller helt enkelt laddar in<br />

en bild som man sedan placerar på den positionen med hjälp av x,y,z formeln. [Edward]<br />

Varje objekt ser också olika ut beroende på vilken vinkel man väljer att titta på bilden ifrån.<br />

Ser man ett objekt rakt framifrån så ser objektet helt platt ut och man kan egentligen inte anta<br />

att det finns någon baksida av själva objektet. Men ser man ett objekt snett framifrån så bildar<br />

man ofta en bild i huvudet att de finns en baksida av objektet även om det i vissa fall kanske<br />

inte finns det. [Edward]<br />

Men det är inte bara detta som bestämmer hur en bild uppfattas i ett <strong>spel</strong> eller i något annan<br />

form av program. Hur ljus speglar sig mot objekt <strong>spel</strong>ar väldigt stor roll. Skulle vi inte ha<br />

någon ljus källa i bilden så skulle objekten vara helt svarta och vi skulle inte ha någon bild<br />

alls. Ljuset kan också lägga skugga på vissa objekt om man skulle vilja ha detta för att göra en<br />

mer verklighets trolig bild. [Edward]


En metod som gör detta kallas raytracing då man beräknar hur ljus strålarna faller på olika<br />

objekt i bilden för att sedan räkna ut skuggan och reflektioner på objekten som ljuset faller på.<br />

Detta resulterar i att användaren ser det som den ska se. Med det menar jag om ett objekt<br />

befinner sig bakom ett annat objekt så kan vi inte se det objektet eftersom ljuset inte når den<br />

bilden. Men de finns ett aber med raytracing och det är att kanterna av skuggorna blir ofta för<br />

skarpa så i <strong>spel</strong> använder man ofta en metod som heter radiosity som fungerar som raytracing<br />

men de har inte dessa skarpa kanter på skuggan av objekten.[Edward] [1] [2]<br />

I <strong>spel</strong> idag så kan man ändra på sina grafik inställningar för varje <strong>spel</strong> eftersom alla datorer<br />

har olika sorts grafik kort. Vissa grafik kort klarar av att förbättra bilden bättre än andra. Det<br />

finns en mängd olika grafik inställningar man kan göra i respektive <strong>spel</strong>. Här är några<br />

exempel på inställningar som man kan ändra på.<br />

• Upplösning på skärmen<br />

• Hur många bitar av färger per pixel<br />

• Om man vill ha bättre kanthantering<br />

• Vad man ser<br />

• Om skuggor ska finnas eller inte<br />

• Hur detaljrik grafiken ska vara<br />

Anledningen till att man har möjligheten att ändra på dessa inställningar i grafik är att man<br />

vill att bilden ska flyta på så snabbt som möjligt. Alltså man vill ha så hög fram rate som<br />

möjligt, betecknas fps ( frame per second) och är antalet bilder som ritas om på skärmen per<br />

sekund. Man brukar säga att man vill ha ca 30 fps för att bilden inte ska hacka fram men<br />

högre frame rate är alltid bättre. När man <strong>spel</strong>ar <strong>spel</strong> online framförallt shoot em up (skjut<strong>spel</strong><br />

i första persons läge) <strong>spel</strong> så vill man helst ligga på 100 fps eftersom annars så hinner man<br />

missa saker som sker och de kan vara väldigt avgörande för <strong>spel</strong> resultatet. Då man läser detta<br />

kanske man tänker att 100 bilder per sekund låter mycket kan man verkligen uppfatta alla<br />

dessa bilder? Svaret på den frågan är ja människan kan uppfatta 200 fps. Snabbare än så kan<br />

inte människans öga uppfatta bilder. [3]<br />

Grafik och <strong>spel</strong>historia<br />

År 1948 så kom det första dator<strong>spel</strong>et "Cathode Ray Tube Amusement Device" av Thomas<br />

T.Goldsmith Jr. Han hade inspirerats av den radar som man använde sig utav under andra<br />

världskriget. Spelet gick ut på att skicka missiler på saker som kom in i synfältet. Spelets<br />

grafik var inte ens i närheten av hur de ser ut idag, och den ansågs inte ens som grafik utan<br />

mer som bilder som överlappade varandra.<br />

Det första <strong>spel</strong>et som ansågs använda grafik var <strong>spel</strong>et tick-tack-toe och som gjordes av<br />

Alexander S. Douglas 1952. Spelets grafik bestod av ett antal lysande pixlar som ändrades när<br />

användaren <strong>spel</strong>ade. Spelet gick ut på att få 3 av samma valör i rad för att kunna vinna <strong>spel</strong>et.<br />

Den ena <strong>spel</strong>aren var användaren och den andra var datorn. Spelen på den tiden fanns inte att<br />

köpa i någon butik då det var för avancerad teknologi och datorer var inte på tal om att ha<br />

hemma eftersom de var enormt stora på den tiden. Denna bild visar hur <strong>spel</strong>et då såg ut. [4]<br />

[5] [6] [7]


Figur: 1 tick-tack-toe<br />

Sedan gick de några år, men år 1961 så kom de ett <strong>spel</strong> som hette Spacewar utvecklat av<br />

Steve Russel som blev ganska revolutionerande eftersom <strong>spel</strong>et hade rörlig grafik och de var<br />

det första shoot em up <strong>spel</strong>et. Shoot em up är en genre av <strong>spel</strong> som går ut på i stora drag att<br />

skjuta ner sin motståndare innan den förstör dig. Spelet gick ut på att skuta ner rymdskepp.<br />

Samtidigt som man skulle undvika att bli träffad av sin motståndare. Spelet blev starten för<br />

utvecklingen av <strong>spel</strong> med rörliga bilder för att sedan utvecklas till den typ av <strong>spel</strong> som vi har<br />

idag. [5]<br />

Medans tiden gick på så växte det fram fler genre av <strong>spel</strong> fram. På 70- talet så kom det första<br />

video <strong>spel</strong>et och allmänheten kunde börja ha <strong>spel</strong> hemma. Och dator <strong>spel</strong>en och video<strong>spel</strong>en<br />

började utvecklas separat. Spel som Pong och Space invanders kom och folket ville ha mer<br />

och mer <strong>spel</strong>. Alla <strong>spel</strong> företag försökte överträffa varandra. I och med detta så utvecklades<br />

grafiken och det är därför grafik utvecklingen fortfarande går framåt idag. I dags läget handlar<br />

det mycket om hur snyggt <strong>spel</strong>et är, hur verklighets troget det är. De snyggaste och bästa<br />

<strong>spel</strong>en är de som säljer på marknaden likadant var det då. [5]<br />

Det dröjde inte länge innan man började tänka i andra dimensioner. År 1974 så kom det två<br />

<strong>spel</strong> som var i 3d. Spelen var maze och spasim. Men 3d <strong>spel</strong>en slog inte direkt igenom då man<br />

fortsatte att göra de flesta <strong>spel</strong> i 2d. [5]<br />

Senare på 1980 talet så började <strong>spel</strong> komma med 8 bitars färger och Nintendo släppte sin<br />

första konsol. Spel blev då ganska vanligt i hushållen och <strong>spel</strong>företagen tjänade mer pengar<br />

och de kunde fortsätta utveckla sina <strong>spel</strong>. Bilden nedan visar hur ett klassiskt <strong>spel</strong> från denna<br />

tidsepok. [5]<br />

Figur: 2 The Legend of Zelda<br />

I början av 90- talet så blev 3d grafiken större och man började också göra <strong>spel</strong> med 16 bitars<br />

färger. I mitten av 90-talet så släpptes den första konsolen som enbart hade 3d grafik.<br />

Nintendo 64 som också hade <strong>spel</strong> med 64 bitars färger och som blev väldigt populärt bland


allmänheten. De flesta var fascinerade över grafiken eftersom de flesta inte hade <strong>spel</strong>at <strong>spel</strong> i<br />

3d innan. Man trodde som <strong>spel</strong>are av dessa <strong>spel</strong> att de inte gick att utveckla grafiken<br />

ytterligare. Bilden nedan visar hur grafiken såg ut i dessa <strong>spel</strong>. [5]<br />

Figur: 3 Zelda: Ocarina of Time<br />

Men jag som så många andra hade naturligtvis fel. Kring år 2000 så släpptes de dator <strong>spel</strong> och<br />

konsol <strong>spel</strong> med grafik som inte var så kantig. Man hade utjämnat alla hörn man hade<br />

förbättrat all kanthantering. Man kunde lägga in dimma i <strong>spel</strong>en. Dessutom hade man<br />

förbättrat det mesta tex ljus, skuggor och färger. Bilden nedan visar uppföljaren till <strong>spel</strong>et<br />

ovan med den nya sortens grafik. [5]<br />

Figur: 4 Zelda: The Wind Walker<br />

Fem år senare släpptes den nya generationen <strong>spel</strong>konsoler och <strong>spel</strong>. Det är den typen av <strong>spel</strong><br />

som vi använder just nu. Förbättringen av grafiken är verkligen stor i vissa <strong>spel</strong> känns de som<br />

man sitter och tittar på 1 film. Directx 10 är ett grafik bibliotek som har varit väldigt givande.<br />

De har fått <strong>spel</strong>en att bli mer dynamiska. Tex om man springer in i en buskar i ett <strong>spel</strong> som<br />

använder detta bibliotek så rör sig busken olika beroende på hur du har sprungit in i den med<br />

din karaktär. Ljus och skuggor har förbättras ytterligare för att få en så när som verklighets<br />

bild. Bilden nedan visar 1 <strong>spel</strong> som använder detta. [5]<br />

Figur: 5 Modern warfare 2


Dimensioner<br />

Ibland när man läser om <strong>spel</strong> så stöter man på att <strong>spel</strong>et är ett 2d <strong>spel</strong> 2½d <strong>spel</strong> eller ett 3d<br />

<strong>spel</strong>. Jag tänkte nu ta och förklara vad som menas med dessa olika begrepp.<br />

Med 2D <strong>spel</strong> menas <strong>spel</strong> som är gjorde på två dimensioner. Man skulle kunna säga att man<br />

beräknar bildernas position i <strong>spel</strong>et med hjälp av x och y axlarna. Med det menar jag att<br />

bilden bara har höjd och bredd. Man ser bilderna rakt framifrån och dom är helt platta det<br />

finns inget djup i bilden. Se figur 2. [8]<br />

Med 2.5D <strong>spel</strong> menas att de är en 2d bild dvs att den bara kan placera den på höjd och bredd<br />

axlarna. Men bilderna är inte lika platta som 2d bilderna. Bilderna är ritade som om man<br />

skulle se ett objekt snett framifrån. De är ofta vanligt att man använder denna teknik när man<br />

gör strategi <strong>spel</strong>. Många <strong>spel</strong> till gameboy konsolerna använder också denna teknik tex<br />

pokemon <strong>spel</strong>en. Se bild nedan. [9]<br />

Figur: 6 Heroes of Might and Magic<br />

Med 3D <strong>spel</strong> menas att de är ett <strong>spel</strong> med 3 dimensioner. Det har de före gångarna från 2dn<br />

höjden och bredden men de nya är att de finns djup i bilden också. Spel figurerna och grafik<br />

objekten kan ritas längs med z axeln. Detta gör att man får en bättre bild av <strong>spel</strong>et och man<br />

kan få känslan att denna plats finns på riktigt. Denna teknik används i dagens shoot em up<br />

<strong>spel</strong>, roll<strong>spel</strong>, flygsimuleringar mm. Se figur 3 och 4. [10]<br />

Grafikbibliotek<br />

När man bygger <strong>spel</strong> så använder man sig av olika grafik bibliotek. I dessa bibliotek finns de<br />

funktioner som man kan använda sig av. Som en medlare mellan hårdvaran och mjukvaran<br />

som skapar grafik. Grafikens anrop skickas till grafik kortet med hjälp av biblioteket för att<br />

sedan utföra de transformationer, texturer och ljus inställningar. Exempel på kända grafik<br />

bibliotek är OpenGL, Directx 9 som har varit en standard under lång tid i moderna <strong>spel</strong>. Som<br />

nu directx 10 håller på att efterträda. Men man har inte helt gått över till directx 10 än<br />

eftersom att de flesta hemanvändarnas grafik kort inte kan klara av de biblioteket eftersom det<br />

fungerar på lite annorlunda sett än de föregångna systemet. En skillnad är att grafik<br />

beräkningarna sker på grafik kortet med directx 10, innan så var det processorn som fick lov<br />

att sköta den delen. En annan sak som är väldigt bra med directx 10 är att med dess teknik så<br />

vet den vad <strong>spel</strong>aren ser och ritar då inte ut de saker som <strong>spel</strong>aren inte ser. Detta medför att<br />

kortet inte behöver jobba lika hårt. [11]<br />

Slutsatser<br />

Man kan se att förändringen sker snabbt inom <strong>spel</strong> grafikens underbara värld. Jag antar att<br />

den grafik vi har idag kommer säkerligen kännas gammalt och fult bara om några år.<br />

Datavetenskap är ganska nytt om man genomför med hur man tillverkar saker för hand. Man


har tillverkat hus i flera tusen år och det har inte alltid sett ut på samma sätt och utvecklats<br />

successivt med tiden, men man har bara hållit på med grafik i ca 60 år. Om man ser på detta<br />

sätt så kan man anta att grafiken kommer att förbättras i framtiden. Som nämnts tidigare så<br />

vill man utveckla nya saker hela tiden, för nya saker säljer och man tjänar pengar och kan<br />

leva. Man kanske kommer på nått nytt sett att hantera färger och ljus. Det finns de som<br />

spekulerar i att man kan bygga <strong>spel</strong> i flera dimensioner än tre, där den 4e dimensionen skulle<br />

vara tid. Vad tid i detta sammanhang skulle representera de går att fundera på.<br />

Referenser<br />

[Edward] Edward Angel, ”Interactive Computer Graphics”, A Top-Down Approach Using<br />

OpenGL, Fifth Edition pages 2-15, 1979.<br />

[1] http://sv.wikipedia.org/wiki/Str%C3%A5lf%C3%B6ljning Hämtad: 02 03 2010<br />

[2] http://en.wikipedia.org/wiki/Radiosity_%283D_computer_graphics%29<br />

Hämtad: 02 03 2010<br />

[3] http://sv.wikipedia.org/wiki/Frames_per_second Hämtad: 04 03 2010<br />

[4] http://en.wikipedia.org/wiki/Thomas_T._Goldsmith_Jr Hämtad: 23 02 2010<br />

[5] http://en.wikipedia.org/wiki/History_of_video_games Hämtad: 23 02 2010<br />

[6] http://www.mauriciogiraldo.com/vgline/beta/#/191 Hämtad: 23 02 2010<br />

[7] http://en.wikipedia.org/wiki/First_video_game#cite_note-Pong_Story:_Main_Page-0<br />

Hämtad: 02 03 2010<br />

[8] http://sv.wikipedia.org/wiki/2D Hämtad: 04 03 2010<br />

[9] http://en.wikipedia.org/wiki/2.5D Hämtad: 04 03 2010<br />

[10] http://sv.wikipedia.org/wiki/3D Hämtad: 04 03 2010<br />

[11] http://level7.nu/pages/Directx10AlltDuBehoverVeta Hämtad: 03 03 2010<br />

[12] http://sv.wikipedia.org/wiki/Vektorgrafik Hämtad: 03 03 2010<br />

Figur 1: Tick Tack Toe [6] Bilden finns där Hämtad: 04 03 2010<br />

Figur 2: The Legend of Zelda<br />

http://en.wikipedia.org/wiki/The_Legend_of_Zelda_%28video_game%29 Hämtad: 04 03<br />

2010<br />

Figur 3: Zelda ocarina of time<br />

http://en.wikipedia.org/wiki/The_Legend_of_Zelda:_Ocarina_of_Time Hämtad: 04 03 2010<br />

Figur 4: Zelda: The Wind Walker http://en.wikipedia.org/wiki/Zelda: WindWaker 04 03 2010<br />

Figur 5: Modern warefare 2: Hämtad: Print screen 04 03 2010<br />

Figur 6: Heroes of Might and Magic: Print screen Hämtad: 04 03 2010

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!