Grafik. För enklare datorsystem

Relevanta dokument
Grafik. För enklare datorsystem

Datorkonstruktion - Grafik för datorspel

VGA-lab TSEA83 Datorkonstruktion

Digitala projekt rapport

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

Digital bildhantering

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

Kort introduktion till POV-Ray, del 1

Kravspecifikation TDP005 Projekt: Objektorienterat system

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

ATT ARBETA MED VEKTORGRAFIK

Tynker gratisapp på AppStore

LABORATION TSEA22 DIGITALTEKNIK D

Talsystem Teori. Vad är talsystem? Av Johan Johansson

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

Optisk bänk En Virtuell Applet Laboration

Datorkonstruktion. Datorkonstruktion 2018, 8hp

Mikael Bondestam Johan Isaksson. Spelprogrammering. med CDX och OpenGL

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

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

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

Grafiska pipelinen. Edvin Fischer

Cecilia Ingard. Boksidan

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

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

2011 Studsvik AB PANORAMA-BILDTAGNING. Tony Björkman

Kristina Grundström Erik Truedsson

Micro:bit och servomotorer

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

Typ av LCD och dess användningsområde

DOME. storyteller DOME STORYTELLER

Industriella styrsystem, TSIU06. Föreläsning 2

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

Mer datorarkitektur. En titt I datorn Minnen

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

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

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

IDEA-CX V.I.C

Programmering. Scratch - grundövningar

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

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

Multimedia? Produktion för Webb och Multimedia

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)

1.1 Verktygslådan översikt

Tentamen PC-teknik 5 p Lösningar och kommentarer

Spelutveckling 3d-grafik och modellering. Grunder för 3d-grafik Blender Animering

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

LABORATION TSEA22 DIGITALTEKNIK D

Grunderna i. Digital kamerateknik. SM3GDT Hans Sodenkamp SK3BG

Elements 5.0. Innehållsförteckning

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

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

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

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

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

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

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

3.0. Tips och Trix Sida 1 av 18

TDP005 Projekt: Objektorienterat system

Information inför köp

Histogram över kanter i bilder

Geometrisk optik. Laboration

Borttagning av skymda ytor Painter s Algorithm och Z-buffering. MICHAEL HJORTHOLT och ANDREAS PAULSSON

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

Laboration 4: Digitala bilder

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

3.5 Visuell programmering

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

Digitala Projekt(EITF40) - Larm

Rapport i Mobila systemarkitekturer. Symbian

Bygga kurser för mobila enheter

Tv:ns utveckling. Jonathan T och Jonatan B 9b

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.

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

Labyrintspelet EDI021 Grupp 5

Macromedia Flash MX 2004

Datorsystemteknik DAV A14 Föreläsning 1

Optimala bildinställningar för leverans TEORIHÄFTE TILL KURSEN

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

Förberedelser. Svenska

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

Roboten. Sida 1 av 11

HF0010. Introduktionskurs i datateknik 1,5 hp

Sophia Prosell DREAM WEAVER SKAPA OCH PUBLICERA EFFEKTIVA WEBBSIDOR

Kapitel 2 o 3 Information och bitar Att skicka signaler på en länk. Att sända information mellan datorer. Information och binärdata

Användarmanual. Freedom Scientific BLV Group, LLC Juli, Art Nr

När man trycker på knappen får man upp ett fönster med alla tillgängliga bilder, och väljer en av dem genom att trycka på bilden:

Användarmanual. Freedom Scientific BLV Group, LLC April Art Nr

Grafiska pipelinens funktion

ppi = 72 ppi = 18 ppi = 36 DIGITALA BILDER (pixelbaserad) DIGITAL RASTRERING ppi (pixels per inch) Sasan Gooran (HT 2003)

Syfte. Praktisk datorkunskap. Personal. Kursinfo. Examination- Krav för godkänt. Agenda idag DVG A06

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

Lösningarna inlämnas renskrivna vid laborationens början till handledaren

Vi kan RFID.

Förord. Innehåll. Logotyp 3 Typsnitt 4 Färger 5 Profilelement 6 Profilmallar 7-9

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

Geometrisk optik. Laboration FAFF25/FAFA60 Fotonik 2017

Procedurell renderingsmotor i Javascript och HTML5

Repetition och sammanfattning av syntes och analys av sekvensnät

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

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 (bildslä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 Bildminnesdriven grafik Direktdriven CPU:n måste leverera pixlar i exakt rätt takt Fördel : billigare hårdvara Nackdel : programmet blir extremt tidskritiskt CPU Bildminnesdriven CPU:n behöver endast fixa förändringar av bilden Fördel : mycket enklare programmering Nackdel : dyrare hårdvara CPU Bildm inne VGAm otor

Bitmap-grafik (svart-vit) [X,Y] $000 $001 $002 Bildminne 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) [X,Y] Bildminne $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) [X,Y] $000 $001 $002 Bildminne 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 [X,Y] $000 $001 $002 Bildminne 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 Bildminnet 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äpar 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

[X,Y] Spritebaserad grafik $000 $001 $002 Bildminne 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 Pixelfärg K 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.