340 likes | 502 Views
Computer Graphics. Presentatie titel. Technische Informatica www.hogeschool-rotterdam.nl/cmi. Rotterdam, 00 januari 2007. Les 1. De module vision bestaat uit een theoriedeel en een prakticum deel. Deze sheets gaan over het theoretische deel
E N D
Computer Graphics Presentatie titel Technische Informatica www.hogeschool-rotterdam.nl/cmi Rotterdam, 00 januari 2007
Les 1 • De module vision bestaat uit een theoriedeel en een prakticum deel. • Deze sheets gaan over het theoretische deel • De module computer graphics gebruikt het volgende boek • Boek: Computer Graphics (Second edition) , Auteur : Zhigang Xiang, Roy Plastock. • Uitgever: Schaum’s Outlines • ISBN: 0=07-135781-5
Inhoud • Computer graphics is een tak van de computerwetenschap , die handelt over het in de computer invoeren van beelden • Een computer gegenereerd beeld kan een scene afbeelden met op de achtergrond een driehoek of een dinosaurus • Wat is het verschil tussen een tekening maken op een computer of op een blad papier? • In dit hoofdstuk worden concepten behandeld
Inhoud • De hoofdstukken 1 t/m 12 van het boek worden behandeld • Inleiding • Beeldvoorstelling • Scan conversie • 2-dimensionale transformaties • 2 dimensionale beeldsystemen en clipping
Inhoud • 3-dimensionale transformaties • Wiskundige projectie • Geometrische voorstelling • Verborgen oppervlakten • Kleuren en schaduw modellen • Ray-tracing
Inhoud • Les 1 gaat over de hoofdstukken: • 1.1 Inleiding • 2. Beeldvoorstelling • 2.1 RGB kleuren model • 2.2 Directe codering • 2.3 Lookup table • 2.4 Weergave monitor • 2.5 Printer • 2.6 Beeld bestanden • 2.7 kleuren attributen van pixels
Inleiding • Hoe tekenen we een driehoek? (zie fig 1-1) • De driehoek is de object definitie • Die wordt in de ruimte getekend en heet object space (objectruimte)
Inleiding • De afbeelding op papierheet image space ( beeldruimte ) • De afbeeldingkanwordenbeinvloed door plaats en richting • Hetzelfdevindtplaatsbijeen computer • De driehoeknoemt men eenmeetkundigevoorstelling • We kunneneen 2-dimensionaal coordinatensysteem in de object ruimteplaatsen • De computer verbindt de lijnen • Tevensvindttransformatieplaats
Inleiding • Verschil computer en papier is dat de computer discrete puntentekent en niet continue • Hetgedeeltedatverantwoordelijk is voor de hetconverterennaarhetbeeld op hetschermheet scan conversie • De afwijkingnoemt men het aliasing effect (trapjeseffect) • In fig 1-2 is de architectuur van eengrafischsysteemgegeven
Inleiding • De afbeelding op papier heet image space ( beeldruimte ) • De afbeelding kan worden beinvloed door plaats en richting • Hetzelfde vindt plaats bij een computer • De driehoek noemt men een meetkundige voorstelling • We kunnen een 2-dimensionaal coordinaten systeem in de object ruimte plaatsen • De computer verbind de lijnen • Tevens vindt transformatie plaats
Beeld voorstelling • Een digitaal beeld bestaat uit discrete pixels • Georganiseerd als rij-kolom • Resolutie= aantal pixels per lengte-eenheid • 3*2 inch beeld met resolutie 300 pixels/per inch heeft totaal 900*600 pixels= 540.000 pixels • Aspect ratio= verhouding van de breedte tot de hoogte , gemeten in lengte-eenheid of pixels • 6*4½ inch of 1024* 768 pixels hebben een aspect ratio van 4/3
RGB kleurenmodel • Fig 2-1 geefthetkleurencoordinaatsysteemvoor rood R ,groen G en blauw (B) • Waarden 0-1 (zwart is 0)
RGB kleurenmodel • RGB is optellen van kleuren (beeldscherm) • CMY is aftrekken van kleuren (printer) • C = cyaan (hemelsblauw) M= magenta (roze) Y=yellow (geel) • Rood aftrekken van wit levertcombinatiegroen en blauw • Fig 2-2 geefthetkleurencoordinaatsysteemvoor CMY
Directe codering • Fig 2-3 geeft de codering van 3 kleurenbits • 3 bytes = 24 bit per pixel ( 8 bit per primaire kleur (true color)
Directe codering • Een pixel heeft een kleur van 256*256*256 mogelijkheden = 16,7 .106 kleurwaarden • Een grijs beeld = 8 bit per pixel • Het geheugen voor een 1024*1024 beeld: • Er zijn 103.103 = 106 pixels per beeld • 1 beeld bevat dan 16,7.106.106 bits ≈ 2.1012 bytes = 2GByte • Erzijnnooit 16,7 miljoenverschillendekleuren in 1 beeld • Daaromeen lookup-table omgeheugentebesparen
Lookup-table • Fig 2-4 geeft een lookup-table met 256 ingangen • Iedere ingang wijst naar 24 bit RGB kleur • Een pixel –waarde is nu 1 byte ( 8 bit)
Lookup-table • De kleur van die pixel-waarde i met 0 ≤ i ≤ 255 wordt bepaald door de kleurwaarde in de tabel op adres i • Er zijn nu maar 28=256 gelijktijdige kleuren mogelijk per beeld • Het geheugen voor een 1024*1024 beeld (met lookup-table): • Er zijn 103.103 = 106 pixels per beeld • 1 beeld bevat dan 8 pixels per beeld i.p.v 24 pixels per beeld • 1 byte per pixel geeft 1.106 byte geheugen = 1MB
Lookup-table • Nu nog grootte van lookup-table bepalen • 24 bit * 256 bit = 3. 23. 28 bit= 3. 28 bytes = 768 bytes=0,768 kB • Totale grootte 1MB + 0,768 kB = 1,000768 MB • Een beeld wordt niet alleen bepaald door de pixel waarde maar ook door de kleurwaarde in de overeenkomstige lookup-table • Deze kleurenwaarden vormen de kleuren-map (color map) voor het beeld
Weergave monitor • Meest gebruikt werd de CRT (CathodeRay Tube) ( zie fig 2-5)
Weergave monitor • De kleuren monitor bevat 3 electronenkanonnen en een schaduw masker(zie fig 2-6)
Printer • Een printer plaatsteenlaagjekleuren pigment op eenprintmedia. • Hetlichtdat van de oppervlaktewordtgereflecteerdwordt door de mensgezien • Erworden 3 pigmentengebruiktcyaan,magenta,geel) • Tevensnogeenzwart pigment omdathetlastig is met CMY echtzwartteproduceren • Men noemtdit CMYK model ( K=key voorzwart)
Half tone printer • Traditioneletechniek van de print industriebij met bilevel (zwart-wit) devices (printer , plotter) • Dezegebruikt pigment stippen met variable grootte. • Hiermeewordtwitteachtergrondgemengd • Ditgeeftverschillendeintensiteitniveau’s op afstandbekeken • De stippenwordenzogevormddatzeeenhoek van 450vormen met de horizon ( zie fig 2-7)
Half tone printer • De grootte van de stippen is omgekeerd evenredig met de beoogde intensiteit • De techniekomzulkebeeldentemakenheet half-tone techniek • Krantengebruikeneen half-tone van 60-80 dots ( stippen) per inch • Boekengebruikeneen half-tone van 120-200 dots ( stippen) per inch
Halftone benadering • In plaats van de grootte van de dots te wijzigen kunnen we de haftone techniek benaderen met patronen van pixel-rasters • Voor een 2*2 pixel raster construeren we 5 raster patronen om 5 verschillende intensiteiten te krijgen ( zie fig 2-8)
Halftone benadering • Het aantal intensiteiten kan verhoogd worden door een ander grootte van het raster • Ook kan nog meer intensiteiten verkregen worden als pixels ook nog zelf intensiteits -verschillen bevatten ( zie fig 2-9) • Deze halftone rasterpatronen heten ook wel dither patronen
Halftone benadering • Dither wordt gebruikt om het beeld een natuurlijker aanzien te geven • Een aantal ontwerp overwegingen: • Groeien van uit het pixel centrum • Een pixel moet altijd hetzelfde niveau houden • Symmetrie moet vermeden worden • Geisoleerde “aan” pixels moeten vermeden worden • We kunnen een dither matrix gebruiken om een serie dither patronen te geven
Halftone benadering • Bijvoorbeeld een 3*3 matrix • Deze geeft de volgorde aan van de intensiteit van de pixels in een 3*3 raster. • Op die manier zijn er 10 niveau’s • Niveau I wordt verkregen door alle pixels aan te zetten die corresponderen met de waardes in de dither matrix die kleiner zijn dan I • Zie onderstaande figuur
Beeldbestanden • Een digitaal beeld is gecodeerd in een binaire file • Formaat bmp,jpeg,tiff • Structuur is voor alle gelijk • Fig 2-10 geeft de organisatie van een beeld structuur • 2 delen: header en beelddata
Kleuren attributen • Kleuren attributen wijzigen van individuele pixels is een primitieve operatie waarbij systeembibliotheken gebruikt worden • Afhankelijk van het beeldtype (direct of lookup) zijn er 2 mogelijkheden: • setPixel(x,y,rgb) (direct) met rgb = 3-element-array rgb[0]=r , rgb[1]=g , rgb[2]=b setPixel(x,y,i) (lookup) met i = adres ingang die (r,g,b) bevat • setColor(rgb) (direct) zonder plaatsinformatie setColor(i) (lookup) zonder plaatsinformatie
Kleuren attributen • Plaatsinformatieschrijven: setPixel(x,y) • Plaatsinformatielezen (direct): getPixel(x,y,rgb) • Plaatsinformatielezen (Lookup): getPixel(x,y,i) • Lookup-table schrijven : setEntry(i,rgb) • Lookup-table lezen: getEntry(i,rgb) • Achtergrondbeeldschrijven: clear()