Upload
aurek
View
66
Download
0
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
Presentatie titel
Rotterdam, 00 januari 2007
Computer Graphics
Technische Informatica
www.hogeschool-rotterdam.nl/cmi
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 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 verbindt de lijnen• Tevens vindt transformatie plaats
Inleiding • Verschil computer en papier is dat de computer
discrete punten tekent en niet continue• Het gedeelte dat verantwoordelijk is voor de het
converteren naar het beeld op het scherm heet scan conversie
• De afwijking noemt men het aliasing effect (trapjeseffect)
• In fig 1-2 is de architectuur van een grafisch systeem gegeven
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 geeft het kleurencoordinaatsysteem
voor 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 levert combinatie
groen en blauw • Fig 2-2 geeft het kleurencoordinaatsysteem
voor CMY
RGB kleurenmodel
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• Er zijn nooit 16,7 miljoen verschillende kleuren
in 1 beeld • Daarom een lookup-table om geheugen te
besparen
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 (Cathode Ray Tube) ( zie fig 2-5)
Weergave monitor• De kleuren monitor bevat 3
electronenkanonnen en een schaduw masker(zie fig 2-6)
Printer• Een printer plaatst een laagje kleuren pigment
op een printmedia. • Het licht dat van de oppervlakte wordt
gereflecteerd wordt door de mens gezien• Er worden 3 pigmenten gebruikt
cyaan,magenta,geel)• Tevens nog een zwart pigment omdat het lastig
is met CMY echt zwart te produceren• Men noemt dit CMYK model ( K=key voor
zwart)
Half tone printer• Traditionele techniek van de print industrie bij
met bilevel (zwart-wit) devices (printer , plotter)• Deze gebruikt pigment stippen met variable
grootte.• Hiermee wordt witte achtergrond gemengd • Dit geeft verschillende intensiteitniveau’s op
afstand bekeken• De stippen worden zo gevormd dat ze een
hoek van 450 vormen met de horizon ( zie fig 2-7)
Half tone printer
• De grootte van de stippen is omgekeerd evenredig met de beoogde intensiteit
• De techniek om zulke beelden te maken heet half-tone techniek
• Kranten gebruiken een half-tone van 60-80 dots ( stippen) per inch
• Boeken gebruiken een 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:1. Groeien van uit het pixel centrum2. Een pixel moet altijd hetzelfde niveau houden 3. Symmetrie moet vermeden worden4. 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
Halftone benadering
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
Beeldbestanden
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:
1. 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
2. setColor(rgb) (direct) zonder plaatsinformatiesetColor(i) (lookup) zonder plaatsinformatie
Kleuren attributen
• Plaatsinformatie schrijven: setPixel(x,y)• Plaatsinformatie lezen (direct): getPixel(x,y,rgb)• Plaatsinformatie lezen (Lookup): getPixel(x,y,i)
• Lookup-table schrijven : setEntry(i,rgb) • Lookup-table lezen: getEntry(i,rgb)
• Achtergrond beeld schrijven: clear()