računarska grafika

27
Računarska geometrija i računarska grafika Računarska geometrija: deo matematike koji se bavi algoritamskim rešavanjem geometrijskih problema Računarska grafika: – granična oblast računarstva i geometrije koja se bavi vernim prikazivanjem geometrijskih objekata na ekranu

Upload: jakic-marko

Post on 30-Oct-2014

72 views

Category:

Documents


1 download

DESCRIPTION

opis

TRANSCRIPT

Page 1: računarska grafika

Računarska geometrija i računarska grafika• Računarska geometrija:

– deo matematike koji se bavi algoritamskim rešavanjem geometrijskih problema

• Računarska grafika:– granična oblast računarstva i geometrije koja se bavi vernim prikazivanjem

geometrijskih objekata na ekranu

Page 2: računarska grafika

Kontinualni i diskretni prostori• 2D prostor u kome se modeliraju matematički objekti je kontinualan

– duži, kružnice ili krive nemaju “debljinu”

• Ekran (ili drugi rasterski izlazni uređaj) je diskretan– sastavljen od konačnog skupa tačaka (piksela)– tačke mogu biti u dva stanja (monohromatski) ili većeg broja stanja iz

konačnog skupa (kolor)

• Kako verno predstaviti geometrijske objekte na ekranu?

Page 3: računarska grafika

Bresenhamov algoritam za crtanje duži 1/6

• Izračunava piksele koje treba “osvetliti” odnosno uključiti• Inkrementalni algoritam

– izračunava se piksel po piksel

Page 4: računarska grafika

Bresenhamov algoritam za crtanje duži 2/6

• Pretpostavimo da je osvetljena tačka P(x,y)• Koju sledeću tačku treba osvetliti: Q1 ili Q2?

Q2(x+1,y+1)

M

P(x,y) Q1(x+1,y)

Page 5: računarska grafika

Bresenhamov algoritam za crtanje duži 3/6

• Tačka M se nalazi na polovini duži Q1Q2

• Ako duž prolazi iznad M, osvetlićemo Q2

• U drugom slučaju osvetlićemo Q1

Q2(x+1,y+1)

M

P(x,y) Q1(x+1,y)

Page 6: računarska grafika

Bresenhamov algoritam za crtanje duži 4/6

• Prikazani algoritam radi ispravno samo ako duž ima nagib od 0° do 45°

• Preostali slučajevi:– 45° - 90°– -45° - 0°– -90° - -45°

0° - 45°

Zona 1

Zona 2

Zona 3

Zona 4

Page 7: računarska grafika

Bresenhamov algoritam za crtanje duži 5/6

• Za tekuću tačku P(x,y) naredna tačka se bira na sledeći način:– Zona 1:

• Q1(x+1,y) ili Q2(x+1,y+1)

– Zona 2:• Q1(x,y+1) ili Q2(x+1,y+1)

– Zona 3:• Q1(x-1,y) ili Q2(x-1, y-1)

– Zona 4:• Q1(x,y-1) ili Q2(x-1,y-1)

Page 8: računarska grafika

Bresenhamov algoritam za crtanje duži 6/6

• Primer

Page 9: računarska grafika

Linije različite debljine• Prekrivanje centara piksela paralelogramom• Širina paralelograma određena je debljinom linije• Oni pikseli čiji centri su unutar paralelograma su osvetljeni

Page 10: računarska grafika

Isecanje vidljivog dela duži (clipping)• u slučaju da se duž prostire izvan vidljivog dela ravni potrebno je pre

crtanja ukloniti delove koji se neće videti

(xmax, ymax)

(x’0, y’0)

(x’1, y’1)

(x1, y1)

(xmin, ymin)

(x0, y0)

Page 11: računarska grafika

Bresenhamov algoritam za crtanje kružnice 1/4

• Simetrija kružnice– Ako je osvetljen piksel P(x,y) tada su osvetljeni i sledeći pikseli:

• (-x,y)• (-x,-y)• (x,-y)• (y,x)• (y,-x)• (-y,x)• (-y,-x)

(x,y)

(y,x)

(-y,-x)

(-x,-y)

(-y,x)

(-x,y)

(y,-x)

(x,-y)

Page 12: računarska grafika

Bresenhamov algoritam za crtanje kružnice 2/4

• Izračunavanje piksela koji se osvetljavaju radi se samo za interval[45°, 90°] – osmina kruga

• Na osnovu izračunatog piksela osvetljava se i preostalih sedam simetričnih piksela

Page 13: računarska grafika

Bresenhamov algoritam za crtanje kružnice 3/4

• Pretpostavimo da je osvetljena tačka P(x,y)• Koju sledeću tačku treba osvetliti: Q1 ili Q2?

P(x,y) Q1(x+1,y)

Q2(x+1,y-1)

M

Page 14: računarska grafika

Bresenhamov algoritam za crtanje kružnice 4/4

• Tačka M se nalazi na polovini duži Q1Q2

• Ako je tačka M unutar kružnice, osvetlićemo Q1

• U drugom slučaju osvetlićemo Q2

P(x,y) Q1(x+1,y)

Q2(x+1,y-1)

M

Page 15: računarska grafika

Crtanje splajnova 1/3

• Hornerov metodZa splajn dat parametarskim polinomima:x(t) = axt3 + bxt2 +cxt +dx

y(t) = ayt3 + byt2 + cyt +dy

prethodne izraze zapišemo u drugačijem obliku:x(t) = [(axt + bx)t + cx]t + dx

y(t) = [(ayt + by)t + cy]t + dy

– Za izračunavanje jedne koordinate jedne tačke potrebna su tri množenja i tri sabiranja

Page 16: računarska grafika

Crtanje splajnova 2/3

• Bézierov metod– osvetlimo središnju tačku splajna– određivanje središnje tačke:

• tačka X je na sredini duži AB• tačka Y je na sredini duži BC• tačka Z je na sredini duži CD• tačka P je na sredini duži XY• tačka Q je na sredini duži YZ• tačka M – središnja tačka splajna – je na sredini duži PQ

B C

MX

Y

Z

P Q

A D

Page 17: računarska grafika

Crtanje splajnova 3/3

• Bézierov metod– sada podelimo splajn na dva segmenta oko središnje tačke– dobijemo splajnove određene tačkama AXPM i MQZD– za njih ponovimo postupak– postupak ponavljamo sve dok poligon koji obuhvata splajn ne bude dovoljno

“tanak”, odnosno blizak duži

B C

MX

Y

Z

P Q

A D

Page 18: računarska grafika

Popunjavanje figure bojom 1/3

• Za dati piksel popuniti površinu figure koja ga sadrži• Različiti algoritmi

– Algoritam poplave– Popunjavanje pomoću semenke (seed)

Page 19: računarska grafika

Popunjavanje figure bojom 2/3

• Flood fill– obojiti izabrani piksel– za izabrani piksel proveriti sva četiri suseda (sever, jug, istok, zapad)– ako neki od njih nije obojen ponoviti postupak za njega

Page 20: računarska grafika

Popunjavanje figure bojom 3/3

• Popunjavanje pomoću semenke– popuni se horizontalna linija koja sadrži izabrani piksel– traže se nove semenke u liniji iznad tekuće– traže se nove semenke u liniji ispod tekuće– za nove semenke se ponovi postupak

5 5 65

2 3 2 3 2 32 3

1

4

1 114 44

korak 1 korak 2 korak 3 korak 4

5 6 5 65 6 5 6

2 3 2 32 3 2 3

14

14

7 8

1 144

7 87 8

9 109 10

korak 5 korak 6 korak 7 korak 8

Page 21: računarska grafika

Aliasing 1/3

• Aliasing je potencijalni problem kad god se analogni signal konvertuje u digitalni

• U prikazu 2D grafike tipičan problem je pojava nazubljenih ivica kosih linija

Originalna kriva koja se projektuje na matricu piksela Oblik dobijen iscrtavanjem

Page 22: računarska grafika

Aliasing 2/3

• Gubitak detalja– gustina matrice piksela nije dovoljna za prikaz sitnih detalja

Page 23: računarska grafika

Aliasing 3/3

• Teksture koje gube svoje vizuelne karakteristike

Page 24: računarska grafika

Antialiasing 1/4

• Metode za korekciju efekta aliasinga• Dve klase metoda:

– prefiltering– postfiltering (supersampling)

Page 25: računarska grafika

Antialiasing 2/4

• Prefiltering– piksel se tretira kao 2D objekat koji ima dimenzije (kvadrat)– njegova boja se izračunava na osnovu boja koje su prisutne u crtežu na

površini koju on prekriva

Page 26: računarska grafika

Antialiasing 3/4

• Prefiltering– prikaz slova– tehnika je nezavisna od izabranog fonta

Page 27: računarska grafika

Antialiasing 4/4

• Postfiltering (supersampling)– slika se renderuje na n puta većoj rezoluciji nego što će biti prikazana– boja konačnog piksela se računa kao prosek boja pod-piksela od kojih se on

sastoji

– Primer• za sliku 512x512 iscrtava se slika sa 3 puta gušćom matricom 1536x1536• boja piksela se računa kao prosek boja devet pod-piksela od kojih se sastoji• nije svaki pod-piksel jednako značajan – u račun se uvode težinski koeficijenti

1/16 1/8 1/16

1/8 1/4 1/8

1/16 1/8 1/16