Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Bevezetés a számítógépi grafikába

Hasonló előadás


Az előadások a következő témára: "Bevezetés a számítógépi grafikába"— Előadás másolata:

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: x30 Á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


Letölteni ppt "Bevezetés a számítógépi grafikába"

Hasonló előadás


Google Hirdetések