Grafik. För enklare datorsystem

Relevanta dokument
Grafik. För enklare datorsystem

Datorkonstruktion - Grafik för datorspel

VGA-lab TSEA83 Datorkonstruktion

Föreläsning i webbdesign. Bilder och färger. Rune Körnefors. Medieteknik Rune Körnefors rune.kornefors@lnu.se

Digitala projekt rapport

HELA KEDJAN. Videoteknik. från kamera till bildskärm. Nils Wennerstrand P. KTH NADA Medieteknik. Gunnar Kihlander, Anders Nyberg

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

Digital bildhantering

Kravspecifikation TDP005 Projekt: Objektorienterat system

Optisk bänk En Virtuell Applet Laboration

LABORATION TSEA22 DIGITALTEKNIK D

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Att göra spel med Game Maker. Rum. Grundläggande delar. Gamemaker, dagens föreläsning. Programmeringsmodell

Datorkonstruktion. Datorkonstruktion 2018, 8hp

Kort introduktion till POV-Ray, del 1

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Mikael Bondestam Johan Isaksson. Spelprogrammering. med CDX och OpenGL

Tynker gratisapp på AppStore

Micro:bit och servomotorer

Högskolan i Halmstad Multimedia och visuell kommunikation Övning 1 Adobe Flash, grundfunktioner & interpolering. Efter övningen förväntas du kunna:

I rastergrafikens barndom...gjorde man grafik genom att skriva i ett videominne. Operationer på buffert och pixlar. Idag... Varför grafikkort?

Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall

Programmering. Scratch - grundövningar

Förberedelser. Svenska

Robin Wahlstedt Datavetenskap / Spel Vetenskapsmetodik rwt07001@student.mdh.se. Datorgrafik i spel

Cecilia Ingard. Boksidan

Mer datorarkitektur. En titt I datorn Minnen

DOME. storyteller DOME STORYTELLER

Industriella styrsystem, TSIU06. Föreläsning 2

Datatyper. Programmering. Att definiera datatyper i Java. Laddade partiklar. (x,y) (Rx,Ry) hh.se/db2004

Typ av LCD och dess användningsområde

Portabel dockningsstation för bärbara datorer - HDMI eller VGA - USB 3.0

Prioritet. Varför digitalisera? Apparater; i allmänhet. Datorn

Sphero SPRK+ Appen som används är Sphero Edu. När appen öppnas kommer man till denna bild.

2011 Studsvik AB PANORAMA-BILDTAGNING. Tony Björkman

ATT ARBETA MED VEKTORGRAFIK

3.0. Tips och Trix Sida 1 av 18

Grafisk Teknik. Rastrering. Övningar med lösningar/svar. Sasan Gooran (HT 2013)

LABORATION TSEA22 DIGITALTEKNIK D

HF0010. Introduktionskurs i datateknik 1,5 hp

Vi börjar med att titta på ELC-12 standard CPU, denna har 3st kommunikationsportar.

Kristina Grundström Erik Truedsson

Kravspecifikation. TDP005 Projekt: objektorienterade system. Version 4.0 Datum Anna Ahlberg Johan Almberg

Department of Information Technology Digitala projekt. SuperKull. Daniel Öhman Alexander Persson

Grafiska pipelinen. Edvin Fischer

Multimedia? Produktion för Webb och Multimedia

Bussar och I/O. samt. vad kan man göra med NEXYS3

Tentamen PC-teknik 5 p Lösningar och kommentarer

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Färglära. Ljus är en blandning av färger som tillsammans upplevs som vitt. Färg är reflektion av ljus. I ett mörkt rum inga färger.

Grafisk profil. företagsmärke profilfärger och typsnitt Grafiska element och bilder officemallar profilprodukter

1.1 Verktygslådan översikt

Det finns två sätt att generera ljus på. Ge exempel på dessa och förklara vad som skiljer dem åt.

Roboten. Sida 1 av 11

Space Shooter. Projektrapport i kursen Avancerad C/C++ (DVA303) vid Mälardalens Högskola av Lars Lindqvist och Niklas Nolte

Grunderna i. Digital kamerateknik. SM3GDT Hans Sodenkamp SK3BG

Rapport i Mobila systemarkitekturer. Symbian

Tentamen: Baskurs B i Fysik, del1, 4p kl

Dokumentet är ett tillägg och bifogas tillsammans med databladen för Sweeper och Tuner. Beskrivning - Sweeper Se databladet för Sweeper

In- och Utenheter. Fö 3: In/Ut matning och kopplingsstruktur. Några exempel. Egenskaper. In- och Utenheter. Styrning.

Uppgift 1: a) u= a c + a bc+ ab d +b cd

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

5:3 Datorn och datorns delar

SMULTRON. Fredrik Li, Ester, Anders, Jessica, Philip. Malmö Högskola Konst Kultur Kommunikation OOP5 - Mobile Applications IDK 05 - April/Maj 2007

Sophia Prosell DREAM WEAVER SKAPA OCH PUBLICERA EFFEKTIVA WEBBSIDOR

Repetition och sammanfattning av syntes och analys av sekvensnät

Design av inbyggda system

Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola,

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

4-ports Dual DisplayPort KVM-switch - 4K 60 Hz

Vi kan RFID.

TDP005 Projekt: Objektorienterat system

USB 3.0 till 4K HDMI-videoadapter för flera externa skärmar - DisplayLink-certifierad - Ultra HD 4K

Bussar och I/O. samt. vad kan man göra med NEXYS3. Nexys3. Prog + spänningsmatning. Expansionskort

Digitala bilder. Matris, pixel, pixeldjup, signal, brus, kontrast

Geometrisk optik. Laboration

HELA KEDJAN. Videoteknik. från kamera till bildskärm. Nils Wennerstrand P. KTH NADA Medieteknik. Gunnar Kihlander, Anders Nyberg

Dokumenteringar av mätningar med TLC (Thermocrome liquid crystals)

RADIOMOTTAGARE RGBW SOM STYR EN GEMENSAM ANOD FÖR LED-strip

Håkan Tillander - Telenor, Networks/Radio

EV3 Roboten. Sida 1 av 13

Grafik i DrRacket AV TOMMY KARLSSON

TDDD78, TDDE30, 729A Grafik: Att "rita" egna komponenter

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK.

3.5 Visuell programmering

12 VDC LED (RGB) Färgpalett (FP) 8 färger. Färgsekvensmotor (FSM) 11 färgscheman 2 justerbara tider

Övervakningssystem. -skillnader i bilder. Uppsala Universitet Signaler och System ht Lärare: Mathias Johansson

Programmering i Scratch 2.0

Bygga kurser för mobila enheter

Design av inbyggda system

Startsidan. Panorama / Dubbel panorama. 400x80. Panorama / Dubbel panorama

Macromedia Flash MX 2004

Datorsystemteknik DAV A14 Föreläsning 1

Användarmanual Looky 10 Handhållen läskamera

Rullningslisten. Klicka på rullningslistpilar (pil upp eller pil ner) 1 för att förflytta dig i önskad riktning, en liten bit i taget.

Histogram över kanter i bilder

Labyrintspelet EDI021 Grupp 5

IDEA-CX V.I.C

Ett nytt klassrum skulle skapas men hur ska det göras? Vi började

Kom igång med Autocad 2008

Transkript:

Grafik För enklare datorsystem Grafik förr VGA-signalen Direktdriven grafik eller bildminne Bitmap-grafik Tile/teckenbaserad grafik Spritebaserad grafik Kollisionskontroll Rörelse : Hastighet / riktning Scrollande bakgrund / förgrund Grafik förr, typ tjock-tv En elektronkanon skjuter elektroner genom spolarnas magnetfält. Elektronerna viker av olika mycket åt nåt håll beroende på magnetfältets styrka och träffar bildrutan i en punkt och lyser upp. Olika färg fås genom att träffa på olika delar (röd, grön eller blå del) inom punkten.

VGA-signalen Hsync VGA-interfacet: Tre analoga signaler (Röd, Grön, Blå) Två synkpulser (vertikal och horisontal) (DDC2: EN I2C-buss för indentifiering av bildskärm) Synlig bild R G B Hsync Vsync Blank (bildsläck) Vsync Blank släcker R,G,B och ger svart färg Blank (linjesläck) VGA-signalen X (pixelräknare) Alla signaler : Video (synlig bild, RGB), Hsync, Vsync, Blank kan skapas vid lämpliga värden på X och Y. En viss upplösning uppnås via rätt timing, dvs rätt avstånd och längd på synkpulserna Hsync och Vsync. Synktiming kan inte vara godtycklig, utan måste följa VGA-standard. Y (radräknare) Datablad för Nexys3 640 x 480 (synlig yta) i 60Hz bildfrekvens Kräver 25 MHz pixelklocka

Direktdriven vs sdriven grafik Direktdriven CPU:n måste leverera pixlar i exakt rätt takt Fördel : billigare hårdvara Nackdel : programmet blir extremt tidskritiskt CPU sdriven CPU:n behöver endast fixa förändringar av bilden Fördel : mycket enklare programmering Nackdel : dyrare hårdvara CPU VGAm otor Bitmap-grafik (svart-vit) $000 $001 $002 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 svart / vit Värdet för varje pixel sparas bitvis i minnet 1 bit motsvarar om pixeln är svart eller vit 640x480 kräver 300 kbit block-ram, Nexys3 har 576 kbit

Bitmap-grafik (8-bitars färg) $000 $70 (röd) $001 $1C (grön) $002 $02 (blå) $8C (gul) $FF (vit) Värdet för varje pixel sparas per adress i minnet Varje pixel kan anta 1 av 256 färger 640x480 kräver 2400 kbit block-ram, Nexys3 har 576 kbit Bitmap-grafik (4-bitars färg med 8-bitars palett) $000 $001 $002 0 0 1 0 Palett1 $8C $70 Använd 4 bitar till att indexera ett palettminne om 8 bitar 640x480 kräver 1200 kbit > 576 kbit (Nexys3) Genom att ändra paletten kan man göra vissa animationer, t ex rinnande vattenfall Palett2 $35 $46

Bitmap-grafik Ska man göra riktig 3D-grafik krävs bitmap-grafik, och en snabb CPU förstås Bitmap-grafik kräver mycket minne Dubbelbuffring är vanligt vid bitmap-grafik, kräver dock dubbla mängden minne Alla moderna datorer och spelkonsoller använder bitmap-grafik idag Problem 1: FPGA:n på Nexys3 har för lite minne för vettig bitmap-grafik Lösning 1: Använd extern RAM (problem för låg bandbredd) Problem 2 : Det krävs en mycket snabb CPU för att uppdatera hela bitmap-minnet Lösning 2 : Använd lägre upplösning, t ex 320x200 pixlar Lösning 3 : Använd inte bitmap-grafik Tile/tecken-baserad grafik $000 $001 $002 Tile 7 Tile 1 Tileminne Tile 1, 0:0 Tile 1, 0:1 Tile 1, 0:2 Tile 7, 0:0 Skärmen består av t ex 8x8 pixlar stora tiles vars utseende bestäms av ett tileminne t bestämmer vilka tiles som ska synas på skärmen Fördel : Kräver ganska lite minne

Tile/tecken-baserad grafik Räkneexempel 8x8 tiles i 256 färger En tile är 8x8 pixel och vi vill ha t ex 32 olika tiles Med upplösningen 640x480 får vi plats med 80x60 tiles (kräver 4800 bytes bildminnesutrymme) Minnesutrymme för tile-utseende : 8x8x32 byte = 2048 bytes Jämför med bitmap-baserat minne : 640x480 byte = 307200 bytes Spel som lämpar sig för tile-grafik : Snake, Tetris, Sokoban Trick: Genom att snabbt växla tiles i bildminnet så kan du få till en del roliga effekter varje gång skärmen ritas upp, typ animering. Nackdel med tiles : objekt måste röra sig i steg om 8x8 pixlar, lösning använd sprites Spritebaserad grafik $000 $001 $002 Tile 7 Tile 1 En sprite är ett objekt som ligger ovanpå spelplanen och kan flyttas i steg om en pixel Utseendet för en sprites lagras (lämpligtvis) i ett separat minne Lämpliga spel för tiles+sprites: -Space invaders (shoot-em-ups) -Bilspel -Breakout Xpos (dx) Ypos (dy) Xpos (dx) Ypos (dy) Tileminne Tile 1, 0:0 (vit) Tile 1, 0:1 (vit) Tile 1, 0:2 (grön) Tile 7, 0:0 Spriteminnen Sprite 1, 0:0 Sprite 1, 0:1 Sprite 1, 0:2 Sprite 2, 0:0 P3 P2 P1 Pixelväljare K Offra en färg --> "transparent pixlar" if P1= transparent then if P2= transparent then color <= P3 else color <= P2 else color <= P1

Kollisionskontroll Alt 1 : Mjukvarukontroll Kan kräva mycket beräkningar. Passa bäst för tiles. Svårt för sprites. Alt 2 : Hårdvarukontroll När två objekt ska ritas ut samtidigt så har dom kolliderat. Tileminne Spriteminne1 Spriteminne2 Pixelväljare/ kollisionsdetektor K Pixelfärg Kollision CPU Vi vet att kollision har skett, men mellan vilka, och hur? För att svara på det krävs än mer hårdvara. Rörelse : Hastighet och riktning Att flytta ett objekt en pixel per bilduppdatering (60 Hz) tar > 10 s för 640 pixlars bredd. Hur kul är det? Men vad händer om man ökar hastigheten, dvs flyttar flera pixlar per bilduppdatering? För godtyckliga riktningar, dela upp positionen i en heltalsdel och en decimaldel. (subpixelupplösning) Låt endast heltalsdelen användas vid utritning. Xpos 0 1 0 1 1 0 1 0 Ypos 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 X Y Lösning? : Gör alla objekt väldigt tjocka En generell lösning är svår. Får lösas från fall till fall.

Scrollande bakgrund/förgrund Kan läggas till utan att påverka övrig funktionalitet Ett relativt enkelt sätt att få visuellt imponerande effekter Genom att scrolla flera bakgrunder i olika hastighet kan perspektiv åstadkommas Tileminne Spriteminne1 Spriteminne2 Pixelväljare/ kollisionsdetektor P1 P2 P3 K Pixelfärg Kollision CPU Genom att flytta start- och slut-pekarna vid varje bilduppdatering så kommer bakgrundsminnets innehåll att få en visuell scrolleffekt. startadr. slutadr. startadr. Bakgr.minne1 Bakgr.minne2 P4 P5 slutadr.