računarska geometrija i računarska grafika

32
profesor: dr Milorad Banjanin student: Ivan Milanovic

Upload: lilli

Post on 12-Jan-2016

115 views

Category:

Documents


2 download

DESCRIPTION

Računarska geometrija i računarska grafika. profesor : dr Milorad Banjanin. student: Ivan Milanovic. Sadržaj. Definicije Brasenhajmov algoritam za crtanje duži Brasenhajmov algoritam za crtanje kružnice Popunjavanje poligona bojom Aliasing i anti-aliasing. Računarska grafika : - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Računarska  geometrija i računarska  grafika

profesor:dr Milorad Banjanin

student:Ivan Milanovic

Page 2: Računarska  geometrija i računarska  grafika

Sadržaj

Definicije Brasenhajmov algoritam za crtanje duži Brasenhajmov algoritam za crtanje kružnice Popunjavanje poligona bojom Aliasing i anti-aliasing

Page 3: 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 vjernim prikazivanjem geometrijskih objekata na ekranu

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 4: Računarska  geometrija i računarska  grafika

Bresenhamov algoritam za crtanje duži

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

•Inkrementalni algoritam

–izračunava se piksel po piksel

Page 5: Računarska  geometrija i računarska  grafika

5of39

Ideja

U svakom koraku povećavamo x za jedan i biramo između dve različite y koordinate.

2 3 4 5

2

4

3

5Na primer, posle pozicije (2, 3) treba da izaberemo između (3, 3) i (3, 4)

Želimo odabrati tačku koja je bliža originalnoj liniji

(xk, yk)

(xk+1, yk)

(xk+1, yk+1)

Page 6: Računarska  geometrija i računarska  grafika

6of39

Koordinata y na matematičkoj pravoj u tački xk+1 je:

Brasenhajmov algoritam za crtanje duži

Za xk+1 obeležimo

vertikalna rastojanja

od matematičke prave do susednih piksela sa dgore i ddole

bxmy k )1(

y

yk

yk+1

xk+1

ddole

dgore

Page 7: Računarska  geometrija i računarska  grafika

7of39

Sledi da je:

i da je:

Ove veličine možemo upotrebiti pri odlučivanju koji je piksel bliži matematičkoj pravoj.

kdole yyd

kk ybxm )1(

yyd kgore )1(

bxmy kk )1(1

Brasenhajmov algoritam za crtanje duži

Page 8: Računarska  geometrija i računarska  grafika

8of39

Odluka će zavisiti od razlike između pozicije dva susedna piksela:

Zamenimo li m sa ∆y/∆x gdje su ∆x i ∆y rastojanja između krajnjih tačaka, dobija se:

122)1(2 byxmdd kkgoredole

)122)1(2()(

byxx

yxddx kkgoredole

)12(222 bxyyxxy kk

cyxxy kk 22

Brasenhajmov algoritam za crtanje duži

Page 9: Računarska  geometrija i računarska  grafika

9of39

Parametar odluke pk za k-ti korak

iscrtavanja duži dat je sa:

Znak parametra odluke pk jednak je znaku

od ddole – dgore

Pa ako je pk negativan broj, osvetliće se

piksel ispod matematičke prave, a ako je pozitivan osvetliće se piksel iznad prave

cyxxy

ddxp

kk

goredolek

22

)(

Brasenhajmov algoritam za crtanje duži

Page 10: Računarska  geometrija i računarska  grafika

10of39

U k+1 koraku parametar odluke je dat sa:

Oduzimanjem pk od ovoga dobijamo:

cyxxyp kkk 111 22

)(2)(2 111 kkkkkk yyxxxypp

Brasenhajmov algoritam za crtanje duži

Sva izračunavanja su celobrojna, što znatno ubrzava ovaj algoritam

Page 11: Računarska  geometrija i računarska  grafika

11of39

Pošto je, xk+1 isto kao i xk+1 sledi da je:

a yk+1 – yk je 0 ili 1 što zavisi od znaka uz pk

Prvi parametar odluke p0 izračunava se u tački (x0, y0) i dat je sa:

)(22 11 kkkk yyxypp

xyp 20

Brasenhajmov algoritam za crtanje duži

Page 12: Računarska  geometrija i računarska  grafika

12of39

(za |m| < 1.0)

1. Ulaz zahteva krajnje tačke linije, a potom učitava levu krajnju tačku na poziciju (x0, y0)

2. Osvetljava tačku (x0, y0)

3. Računa konstante Δx, Δy, 2Δy, i (2Δy - 2Δx) i početnu vrednost za parametar odluke:

4. Za svako xk duž linije, počevši od k = 0, se ispituje:

Ako je pk < 0, osvjetljuje se tačka (xk+1, yk) i:

xyp 20

ypp kk 21

Brasenhajmov algoritam za crtanje duži

Page 13: Računarska  geometrija i računarska  grafika

13of39

Upozorenje! Ovaj algoritam je tačan samo ako je izvod prave manji od jedan (|m| < 1.0). Za druge pravce neophodno je prilagođavanje algoritma.

U suprotnom, osvetljuje se tačka (xk+1, yk+1) i:

5. Ponavljanje koraka 4, (Δx – 1) puta

xypp kk 221

Brasenhajmov algoritam za crtanje duži

Page 14: Računarska  geometrija i računarska  grafika

14of39

Brasenhajmov algoritam srednje-tačke kružnice

Slično kao za linije, postoji i rekurzivni algoritam za crtanje kružnice – algoritam srednje-tačke kružnice

U ovom algoritmu se upotrebljava osmostrana simetrija,

tako da računamo samo tačke gornje desne osmine kruga, a zatim koristimo simetriju za dobijanje ostalih tačaka kružnice.

Jack Bresenham, izumitelj rekurzivnog algoritma srednje tačke kružnice i algoritma za crtanje duži

Page 15: Računarska  geometrija i računarska  grafika

15of39

(xk+1, yk)

(xk+1, yk-1)

(xk, yk)

Osvetljena je tačka (xk, yk)

Sledeća se osvetljuje

jedna od tačaka

(xk+1, yk) ;(xk+1, yk-1).

Želimo da izaberemo tačku koja je bliža stvarnoj kružnici.

Koja je ta tačka ?

Brasenhajmov algoritam srednje-tačke kružnice

Page 16: Računarska  geometrija i računarska  grafika

16of39

Predstavimo jednačinu kružnice na sledeći način:

Dobija se da je:

Izračunavši funkciju za “srednju tačku”, koja se nalazi između piksela koji su kandidati za osvijetljavanje, omogućuje nam da donesemo odluku

222),( ryxyxfkr

,0

,0

,0

),( yxfkr

kružniceunutar ),( je ako yx

kružnici na ),( je ako yx

kružniceizvan ),( je ako yx

Brasenhajmov algoritam srednje-tačke kružnice

Page 17: Računarska  geometrija i računarska  grafika

17of39

Uzmimo da je osvetljena tačka (xk,yk) pa trebamo odabrati između

(xk+1,yk) i (xk+1,yk-1)Parametar odluke je tada:

Ako je pk < 0, srednja tačka je unutar kružnice pa je piksel sa yk bliži kružnici

U suprotnom je bliža tačka sa yk-1

222 )21()1(

)21,1(

ryx

yxfp

kk

kkkrk

Brasenhajmov algoritam srednje-tačke kružnice

Page 18: Računarska  geometrija i računarska  grafika

18of39

Izvedimo rekurzivnu formuluImamo da je:

ili:

gdje yk+1 menjamo sa yk ili sa yk-1 u zavisnosti od znaka pk

22

12

111

21]1)1[(

21,1

ryx

yxfp

kk

kkkrk

1)()()1(2 122

11 kkkkkkk yyyyxpp

Brasenhajmov algoritam srednje-tačke kružnice

Page 19: Računarska  geometrija i računarska  grafika

19of39

Prvi parametar odluke je zadat sa:

Pa ako je pk < 0 onda je sledeći parametar

odluke:

A ako je pk > 0 onda je:

r

rr

rfp kr

45

)21(1

)21,1(

22

0

12 11 kkk xpp

1212 11 kkkk yxpp

Brasenhajmov algoritam srednje-tačke kružnice

Page 20: Računarska  geometrija i računarska  grafika

20of39

1. Uzima se radijus r i centar kružnice (xc, yc), i podešavaju

koordinate za prvu tačku kružnice:

2. Računa inicijalnu vrednost parametra odluke:

3. Počevši od k = 0, za svako xk, ispituje se:

Ako je pk < 0, sledeća tačka koja se osvetljuje je

(xk+1, yk) i:

),0(),( 00 ryx

rp 45

0

12 11 kkk xpp

Brasenhajmov algoritam srednje-tačke kružnice

Page 21: Računarska  geometrija i računarska  grafika

21of39

U suprotnom osvetljuje se tačka (xk+1, yk-1) i:

4. Određuju se tačke simetrije za ostatak kružnice

5. Pomeraju se izračunati pikseli (x, y) oko centra kružnice u tački (xc, yc) i osvetljuju se sledeći pikseli:

6. Ponavljaju se koraci od 3 do 5 sve dok je x >= y

111 212 kkkk yxpp

cxxx cyyy

Brasenhajmov algoritam srednje-tačke kružnice

Page 22: Računarska  geometrija i računarska  grafika

22of39

Popunjavanje poligona bojom

Kako se boje poligoni?

Upotrebom rekurzivnog algoritma poznatog kao scan-line algoritam

Page 23: Računarska  geometrija i računarska  grafika

23of39

2

4

6

8

10 Scan Line

02 4 6 8 10 12 14 16

Popunjavanje poligona bojom

Page 24: Računarska  geometrija i računarska  grafika

24of39

Osnovni koraci scan-line algoritma su:– Pronalazak presečnih tačaka scan linije sa

svim ivicama poligona– Sortiranje presečnih tačaka po x koordinati– Osvetljavanje svih piksela između parova

presečnih tačaka koje leže unutar poligona

Popunjavanje poligona bojom

Page 25: Računarska  geometrija i računarska  grafika

25of39

Popunjavanje poligona bojom

Page 26: Računarska  geometrija i računarska  grafika

26of39

Aliasing

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

Page 27: Računarska  geometrija i računarska  grafika

27of39

Aliasing

Gustina matrice piksela nije dovoljna za prikaz sitnih detalja

Teksture gube svoje vizuelne karakteristike

Page 28: Računarska  geometrija i računarska  grafika

28of39

Anti-aliasing

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 taj kvadrat prekriva

Page 29: Računarska  geometrija i računarska  grafika

29of39

Anti-aliasing

Prefiltering–prikaz slova–tehnika je nezavisna od izabranog fonta

Page 30: Računarska  geometrija i računarska  grafika

30of39

Anti-aliasing

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

Primjer•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

Page 31: Računarska  geometrija i računarska  grafika

HVALA NA PAŽNJI

Ivan Milanović

Page 32: Računarska  geometrija i računarska  grafika

32of39

Osmostrana simetrija

Osobina koja omogućuje efikasno crtanje kružnice

(x, y)

(y, x)

(y, -x)

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

(-y, -x)

(-y, x)

(-x, y)

2

R