Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Bevezetés a számítógépi grafikába
2
Történelem 1963: Ivan Sutherland – Sketchpad első GUI (Graphical User Interface) 1964: IBM és GM – első CAD (Computer Aided Design) rendszer grafikus konzol, grafikus parancsok, fényceruza 1965: első egér (fából és műanyagból) 1974: Sharp kifejleszti az LCD megjelenítőt 1980: PC-k elterjedése raszter grafikával
3
A grafika hardvere Input eszközök Output eszközök billentyűzet
egér fényceruza emberi ujj (touch-screen) scanner jellemzők: lapméret, felbontás (DPI – Dot Per Inch), színmélység Output eszközök nyomtató monitor projektor stb.
4
Output eszközök - Hardcopy perifériák
Rajzgépek: mérnöki munkáknál Nyomtatók mátrix nyomtatók tintasugaras nyomtatók lézernyomtatók jellemzőik: nyomtatható méret rajzolási sebesség felbontás (DPI) színes vagy fekete-fehér
5
Output eszközök - Megjelenítők
Emissziós: saját fényűek Nem emissziós: más fényforrást használók
6
Output eszközök - Megjelenítők
Emissziós CRT (Cathode Ray Tube) katódsugár elektronsugara foszfort gerjeszt folyamatos frissítés Nem emissziós LCD (Liquid Crystal Display) folyadékkristályok állapotváltozása TFT-LCD (Thin-film Transistor) rácspontokban tranzisztorok Plazma képernyő üveglapok közötti rács nemesgázzal töltve
7
Output eszközök - Megjelenítők
Monitorok és vezérlőkártyák jellemzői: Képátmérő (17’’, 21’’ stb.) Felbontás (640x480, 1024x768, 1600x1200 stb.) Színmélység: hány biten tárolunk egy pixelt 1 bit = 2 szín (monokróm) 2 bit = 4 szín 4 bit = 24 = 16 szín 8 bit = 28 = 256 szín 24 bit = 224 ≈ 16 millió szín (True Color – RGB)
8
Output eszközök - Megjelenítők
Monitorok és vezérlőkártyák jellemzői: Képernyő lapok száma Képfrissítési frekvencia > 60 Hz Sebesség GPU: grafikus processzor Grafikus memória Felbontás 16 szín (4 bit) 256 szín (8 bit) 16 M szín (24 bit) 320x200 64000*0.5 = byte 64000 byte byte 640x480 byte byte ≈ 1 Mbyte 1024x780 byte ≈ 2.5 Mbyte 1600x1200 ≈ 6 Mbyte
9
Output eszközök - Megjelenítők
Monitorok és vezérlőkártyák típusok: 1980 – CGA: 320x200 – 4 szín, 640x200 – 2 szín 1984 – MDA/Hercules: 720x348 – 2 szín 1984 – EGA: 640x350 – 16 szín 1987 – VGA: 640x480 – 16 szín, 320x200 – 256 szín 1990 – SVGA, VESA szabvány: 800x600 – 32K szín 1280x1024 – 16M szín XGA …
10
A grafika szoftvere – 4 fő terület
Generatív grafikus adatfeldolgozás képek és grafikus adatok bevitele síkbeli és térbeli objektumok modellezése Grafikus adatok (képek) tárolása Képmanipuláció Mintafelismerés képekből meghatározott információk kinyerése Modell Számítógépen megjelenő kép Képfeldolgozás Képtárolás Generatív adatfeldolgozás Mintafelismerés
11
Generatív adatfeldolgozás
Számítógéppel segített tervezés CAD (Computer Aided Design) CAM (Computer Aided Manufactoring) Bemutató és üzleti grafika diagramok, hisztogramok prezentációkészítők Tudományos és műszaki szimuláció költséges vagy lehetetlen vizsgálatok szemléltetése
12
Generatív adatfeldolgozás
Művészet és animáció Virtuális valóság Számítógépes játékok
13
Mintafelismerés Ujjlenyomat felismerés Arcfelismerés
Orvosi képfeldolgozás: CT (Computed Tomography) MRI (Magnetic Resonance Imaging) ultrahang digitális radiológia OCR (Optical Character Recognition)
14
Képtárolás, képkódolás
Tárolás valamilyen kódolt formában. Kódolási eljárások: Huffman kód RLE kód LZW kód stb.
15
Huffman kódolás Színértékek cseréje rövidebb kódokra
Előfordulási valószínűségek alapján Egy fát konstruálunk a kódolás során: csúcsai a kódolandó elemek élei 0 és 1 címkéjűek Hatékony tömörítés szövegek esetén akár 50%-os
16
RLE kódolás Ismétlődésen alapul
Az egymást követő jelek sorozatát kódoljuk, pl: input: (13 byte) output: (10 byte)
17
Képformátumok BMP JPEG GIF, TIFF alapvető Windows-os képformátum
RLE kódolás – kis képek tárolására JPEG fotórealisztikus képek tárolására legelterjedtebb a weben 8x8-as blokkok kódolása veszteséges tömörítésként is GIF, TIFF
18
Mozgókép formátumok MPEG AVI, MOV, WMV GIF JPEG képeket tartalmaz
egymás utáni képek közötti különbségeket kódolja AVI, MOV, WMV GIF animált GIF
19
Raszteres grafika Alapeleme a képpont (pixel)
A kép egy pixelekből álló rács Előnye: általánosan és könnyen használható Hátránya: nagy képméret nem skálázható mintafelismerésre nem nagyon alkalmas
20
Vektorgrafika A képet primitív alakzatokkal írjuk le Előnye: Hátránya:
vonalak, görbék, síkidomok színnel/mintával kitöltött területek 3D-ben: testek Előnye: skálázható mintafelismerésre alkalmasabb Hátránya: nem általános
21
Alapvető raszteres algoritmusok
Folytonos geometriai alakzatok képpontokkal való közelítése szakasz kör ellipszis görbék stb.
22
Szakasz rajzolása – DDA
y=mx+b alakú egyenletből indulunk ki m=dy/dx dx: mennyit lépünk az x tengelyen dy: mennyit lépünk az y tengelyen Optimalizálás: legyen Max(dx,dy)=1
23
Szakasz rajzolása – DDA
procedure DDA(x1,y1,x2,y2,color:integer); hossz:=abs(x2-x1); if (abs(y2-y1)>hossz) then hossz:=abs(y2-y1); dx:=(x2-x1)/hossz; dy:=(y2-y1)/hossz; x:=x1; y=:y1; putpixel(trunc(x),trunc(y),color); for i:=1 to hossz do begin x:=x+dx; y:=y+dy; end;
24
Szakasz rajzolása – Midpoint
Javítja a DDA kerekítési hibáit Feltesszük, hogy 0≤m≤1: dx=1, 0≤dy≤1
25
Szakasz rajzolása – Midpoint
P után az NE vagy az E pontot gyújtsuk ki? Legyen: dp=F(xp+1,yp+0.5) Ha dp≥0 E Ha dp<0 NE
26
Szakasz rajzolása – Midpoint
Az F(x,y)=Ax+By+C egyenletet használjuk: d1 = F(x1+1,y1+0.5) = F(x1,y1)+ A+B/2 Mivel F(x1,y1)=0, így d1=A+B/2
27
Szakasz rajzolása – Midpoint
Ha E-t gyújtottuk ki az (xp+1,yp+1) pontban: dp+1=F(xp+2, yp+0.5) =A·(xp+2) + B·(yp+0.5) + C =F(xp+1, yp+0.5) + A = dp+A ΔE = A Ha NE-t gyújtottuk ki az (xp+1,yp+1) pontban: dp+1 =F(xp+2, yp+1.5) =A·(xp+2) + B·(yp+1.5) + C =F(xp+1, yp+0.5) + A+B = dp+A+B ΔNE = A+B
28
Szakasz rajzolása – Midpoint
d1=A+B/2 ΔE = A ΔNE = A+B Legyen: F(x,y) = 2(Ax+By+C) d1=2A+B ΔE = 2A ΔNE = 2(A+B)
29
Szakasz rajzolása – Midpoint
procedure MPL(x1,y1,x2,y2,color:integer); A:=y1-y2; B:=x2-x1; d:=2*A+B; dE:=2*A; dNE:=2*(A+B); x:=x1; y=:y1; putpixel(x,y,color); while x<x2 do begin if (d<0) then begin d:=d+dNE; y:=y+1; end; else d:=d+dE; x:=x+1;
30
Szakasz rajzolása – Midpoint
Az algoritmus teljessé tehető: 8 eset: x/y növelése/csökkentése dx/dy szerepe
31
Kör rajzolása – Midpoint
8-as szimmetria Origó középpont Legyen: dp=F(xp+1,yp-0.5) Ha dp<0 E Ha dp≥0 SE
32
Kör rajzolása – Midpoint
Az F(x,y)=x2+y2-r2 egyenletet használjuk: d1 = F(1,r-0.5) =1+r2-r+0.25-r2 = 1.25-r ≈ 1-r
33
Kör rajzolása – Midpoint
Ha E-t gyújtottuk ki az xp+1 pontban: dp+1=F(xp+2, yp-0.5) =F(xp+1, yp-0.5) + 2xp+3 = dp+2xp+3 ΔE = 2xp+3 Ha SE-t gyújtottuk ki az xp+1 pontban: dp+1=F(xp+2, yp-1.5) =F(xp+1, yp-0.5) + 2xp+3 - 2yp+2 =dp+ 2(xp-yp )+5 ΔSE = 2(xp-yp )+5
34
Kör rajzolása – Midpoint
procedure MPC(u,v,r,color:integer); d:=1-r; x:=0; y=:r; putpixel(u+x,v+y,color); while y>x do begin if (d<0) then d:=d+2*x+3; else begin d:=d+2*(x-y)+5; y:=y-1; end; x:=x+1; procedure CirclePoints(u,v,x,y,color); begin putpixel(u+x,v+y,color); putpixel(u+x,v-y,color); putpixel(u+y,v+x,color); putpixel(u+y,v-x,color); putpixel(u-x,v+y,color); putpixel(u-x,v-y,color); putpixel(u-y,v+x,color); putpixel(u-y,v-x,color); end;
35
Kör rajzolása – Midpoint
36
Window-Viewport transzformáció
Világkoordináta-rendszer a felhasználó ebben adja, illetve kapja a geometriai információkat Eszközkoordináta-rendszer hardvernek megfelelő, specifikus
37
Window-Viewport transzformáció
Követelmények: A window határpontjait a viewport határpontjaiba transzformáljuk. Egyenestartó leképezés. A leképezés lineáris wx=wxmin+a·(wxmax-wxmin) vx=vxmin+a·(vxmax-vxmin) ahol 0 ≤ a ≤ 1
38
Window-Viewport transzformáció
39
Window-Viewport transzformáció
40
Cohen-Sutherland algoritmus
szakasz vágása téglalapra (képernyőre) sík 9 részre osztása minden ponthoz 4 bites kód 1. bit: balra a baloldali képernyőéltől 2. bit: jobbra a jobboldali képernyőéltől 3. bit: az alsó képernyőél alatt 4. bit: a felső képernyőél felett
41
Cohen-Sutherland algoritmus
Ha a két kód csupa 0, akkor a szakasz a képernyőn van. Ha van olyan helyiértékű bit, mely mind a két kódban 1, akkor a szakasz nincs a képernyőn. csak az egyik kódban 1, akkor: a helyiértének megfelelő képernyőéllel el kell metszeni a szakaszt, és a metszéspontra módosítani a szakasz végpontját (és a kódját kiszámolni).
42
Ponttranszformációk Eltolás Skálázás Tükrözés x-tengelyre
43
Ponttranszformációk Tükrözés y-tengelyre Forgatás origó körül
44
Homogén koordináták 2D-s pontok számhármasokként
Egymással arányos hármasok ugyanazt a pontot reprezentálják [x1, x2, x3] ~ [ωx1, ωx2, ωx3] , ahol ω0 valós szám pl. [1,2,-2] ~ [-2,-4,4] kikötés: x30 Áttérés homogén koordinátákra: [x,y] [x,y,1] Visszatérés Descartes koordinátákra: [x1, x2, x3] [x1/ x3, x2/x3]
45
Homogén koordináták Homogén koordináták felhasználásával:
p’=M·p , ahol M 3x3-as mátrix Skálázás
46
Homogén koordináták Forgatás origó körül Eltolás
47
Homogén koordináták Window-Viewport transzformáció eltolás az origóba
skálázás eltolás a viewport alsó sarkába
48
Homogén koordináták Eltolás az origóba Skálázás
49
Homogén koordináták Eltolás az origóba + skálázás
Eltolás a viewport alsó sarkába
50
Homogén koordináták Window-Viewport transzformáció
51
Homogén koordináták 3D-ben
3D-s pontok számnégyesekként Skálázás
52
Homogén koordináták 3D-ben
Eltolás Forgatás x tengely körül
53
Homogén koordináták 3D-ben
Forgatás y tengely körül Forgatás z tengely körül
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.