Ra cunarska gra ka Geometrijske osnove {...

Preview:

Citation preview

Racunarska grafikaGeometrijske osnove – nastavak

Vesna Marinkovic

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 1 / 36

Obnavljanje

Cyrus-Backov algoritam za seckanje duzi – obnavljanje

1 Na kakve kliping regione se moze primeniti Cyrus-Backov algoritam?

2 Da bi se tacka preseka klasifikovala kao potencijalno ulazna/izlaznarazmatra se odnos koja dva vektora?

3 Kako se određuje koja od dobijenih vrednosti za t predstavljapocetak, a koja kraj preseka duzi sa kliping regionom?

4 Koje je vremenske slozenosti Cyrus-Backov algoritam?

5 Na kakve kliping regione se moze primeniti Liang-Barsky algoritam?

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 2 / 36

Obnavljanje

Geometrijske osnove – obnavljanje

6 Kako se moze jednostavno utvrditi da li duz P0P1 sece ravan datujednacinom Ax + By + Cz + D = 0?

7 Kako bi se mogla izvesti matrica refleksije u ravni u odnosu na y osunjenim delovanjem na vektore standardne baze?

8 Iz kog razloga se prelazi na rad sa homogenim koordinatama? Navestibar dve razlicite reprezentacije Dekartovske tacke (−3, 2) homogenimkoordinatama.

9 Koja je transformacija inverzna smicanju za faktor a po x osi?

10 Odrediti matricu skaliranja za faktor 5 po obe ose u odnosu na tackusa koordinatama (1,−2). Odrediti matricu njoj inverznetransformacije.

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 3 / 36

Geometrijske osnove 2D transformacije

Efikasnost izracunavanja

Umesto da za svaku tacku primenjujemo mnozenje nizom matrica,racunamo matricu kompozicije

Pokusavamo da iskoristimo specificnu formu matrice kompozicije

Cesto su matrice transformacije u ravni oblika: a b txc d ty0 0 1

pa je umesto mnozenja matrica i rada sa homogenim koordinatamadovoljno koristiti jednakosti:

x ′ = x · a + y · b + tx

y ′ = x · c + y · d + ty

Za transformacije slozenih objekata u realnom vremenu potrebno jevoditi racuna o svakom mnozenju!

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 4 / 36

Geometrijske osnove 2D transformacije

Efikasnost izracunavanja – primer

Formule rotacije u ravni oko koordinatnog pocetka:

x ′ = x · cosϕ− y · sinϕ

y ′ = x · sinϕ+ y · cosϕ

cosϕ se moze aproksimirati vrednoscu 1 ako je ugao ϕ mali:

x ′ = x − y · sinϕ

y ′ = x sinϕ+ y

Da bi se smanjilo nagomilavanje greske, bolje je u drugoj jednakostikoristiti x ′ umesto x :

y ′ = x ′ sinϕ+ y = (x − y · sinϕ) sinϕ+ y = x sinϕ+ y(1− sin2 ϕ)

jer je determinanta ove 2× 2 matrice jednaka 1.

Isplati se uloziti dodatni trud i analizirati dobijenu matricutransformacije; slicno bi vazilo i u 3D prostoru

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 5 / 36

Geometrijske osnove Izometrijske i afine transformacije

Izometrijske transformacije

Matrica je ortogonalna ako vektori koji cine njene kolone predstavljajuortonormiranu bazu:

intenzitet svake kolone jednak je 1skalarni proizvod svake dve kolone jednak je 0

Analogno vazi i za vrste ortogonalne matrice

Izometrijskoj transformaciji odgovara matrica oblika: a b txc d ty0 0 1

gde je njena gornja leva podmatrica 2× 2 ortogonalna, tj. vazi:

a2 + c2 = 1b2 + d2 = 1ab + cd = 0

I obratno, ovakvim matricama odgovaraju izometrijske transformacije

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 6 / 36

Geometrijske osnove Izometrijske i afine transformacije

Izometrijske transformacije – svojstva

Izometrijske transformacije cuvaju uglove i duzine (ponekad se zovu irigid-body transformacije)

U izometrijske transformacije spadaju rotacija, translacija, simetrije(centralna, osna)

Kompozicija dve izometrijske transformacije je izometrijskatransformacija

Proizvoljni niz rotacija/translacija predstavlja izometrijskutransformaciju

Inverzna transformacija izometrijske transformacije je izometrijskatransformacija

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 7 / 36

Geometrijske osnove Izometrijske i afine transformacije

Direktne i indirektne izometrijske transformacije

Izometrijska transformacija ravni je direktna ako cuva orijentacijuravni, tj. svaki trougao te ravni preslikava u trougao iste orijentacije

Izometrijska transformacija ravni je indirektna ako svaki trougao teravni preslikava u trougao suprotne orijentacije

Za utvrđivanje da li je izometrijska transformacija direktna iliindirektna dovoljno je izvrsiti proveru za jedan trougao

Rotacija i translacija spadaju u direktne izometrijske transformacije, aosna refleksija u indirektne

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 8 / 36

Geometrijske osnove Izometrijske i afine transformacije

Afine transformacije

Afine transformacije cuvaju kolinearnost, odnose rastojanja izmeđukolinearnih tacaka i paralelnost, ali ne cuvaju nuzno uglove i duzine

U afine transformacije spadaju translacija, rotacija, skaliranje,smicanje

Translacija i rotacija su i izometrijske, a skaliranje i smicanje nisu

Proizvoljni niz rotacija/translacija/skaliranja/smicanja je afinatransformacija

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 9 / 36

Geometrijske osnove Izometrijske i afine transformacije

Predstavljanje afine transformacije

Rotacija, skaliranje i smicanje su linearne transformacije (i mogu seopisati 2× 2 matricama)

S obzirom na to da se matrica afinih transformacija moze zapisati kao: a b txc d ty0 0 1

=

[T ∗ t∗

0 1

]vazi da se svaka afina transformacija u ravni moze predstaviti kaokompozicija jedne linearne transformacije i jedne translacije:[

x ′

y ′

]= T ∗

[xy

]+ t∗

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 10 / 36

Geometrijske osnove Preslikavanje slike u prozor

Problem preslikavanja slike u prozor

Jedan od standardnih zadataka u racunarskoj grafici je preslikati figuru izjednog koordinatnog sistema u drugi

Primer: preslikati sliku iz nekog koordinatnog sistema u prozor ekrana

Preslikavamo sadrzaj pravougaonika sa levim donjim temenom (xmin, ymin) igornjim desnim temenom (xmax , ymax) u koordinatnom sistemu (x , y) upravougaonik sa levim donjim temenom (umin, vmin) i gornjim desnimtemenom (umax , vmax) u koordinatnom sistemu (u, v)

x

y

x

y

u

v

u

v

translacija Tx skaliranje Sxy translacija Tu

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 11 / 36

Geometrijske osnove Preslikavanje slike u prozor

Reenje problema preslikavanja slike u prozor

Primenjujemo translaciju koja tacku (xmin, ymin) preslikava u (0, 0):

Tx =

1 0 −xmin

0 1 −ymin

0 0 1

Primenjujemo skaliranje u odnosu na (0, 0) koje tacku (xmax , ymax) preslikava utacku (umax , vmax):

Sxu =

umax−uminxmax−xmin

0 0

0 vmax−vminymax−ymin

0

0 0 1

Primenjujemo translaciju koja (0, 0) preslikava u tacku (umin, vmin):

Tu =

1 0 umin

0 1 vmin

0 0 1

Mxu = TuSxuTx

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 12 / 36

Geometrijske osnove 3D transformacije

Homogene koordinate za 3D prostor

Tacka 3D prostora predstavlja se cetvorkom (x , y , z ,W )

Dve cetvorke predstavljaju istu tacku ako i samo ako je jedna cetvorkaumnozak druge

Cetvorka (0, 0, 0, 0) nije dozvoljena

Standardna reprezentacija za tacku (x , y , z ,W ), W 6= 0, je(x/W , y/W , z/W , 1), a postupak svođenja na standardnureprezentaciju zovemo homogenizacija

Skupu svih trojki kojima odgovara jedna homogena tacka odgovaraprava u 4-dimenzionom prostoru jer sve tacke oblika (tx , ty , tz , tW )(t 6= 0) pripadaju jednoj pravoj 4D prostora

Transformacije su predstavljene matricama dimenzije 4x4

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 13 / 36

Geometrijske osnove 3D transformacije

Translacija u 3D prostoru

Matrica translacije:x ′

y ′

z ′

1

=

1 0 0 tx0 1 0 ty0 0 1 tz0 0 0 1

·

xyz1

Kompozicija dve translacije je translacija

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 14 / 36

Geometrijske osnove 3D transformacije

Rotacija u 3D prostoru

U 2D prostoru (ravni) postoji samo rotacija oko tacke

U 3D prostoru se objekat moze rotirati oko proizvoljne prave

Svaka rotacija u 3D moze se predstaviti kao kompozicija tri rotacije:

oko x ose u yz ravni za ugao ϕ1

oko y ose u xz ravni za ugao ϕ2

oko z ose u xy ravni za ugao ϕ3

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 15 / 36

Geometrijske osnove 3D transformacije

Rotacije oko koordinatnih osa

Rotacija oko z ose:

x ′

y ′

z ′

1

=

cosϕ − sinϕ 0 0sinϕ cosϕ 0 0

0 0 1 00 0 0 1

·

xyz1

Rotacija oko x ose:

x ′

y ′

z ′

1

=

1 0 0 00 cosϕ − sinϕ 00 sinϕ cosϕ 00 0 0 1

·

xyz1

Rotacija oko y ose:

x ′

y ′

z ′

1

=

cosϕ 0 sinϕ 0

0 1 0 0− sinϕ 0 cosϕ 0

0 0 0 1

·

xyz1

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 16 / 36

Geometrijske osnove 3D transformacije

Rotacije oko proizvoljne ose

Da bismo dobili matricu rotacije oko proizvoljne ose, mozemoiskombinovati matrice transformacije oko koordinatnih osa

Za datu osu u i zadati ugao Ψ, racunanje ova tri ugla za koja trebavrsiti rotaciju nije jednostavno

Problem pojednostavljujemo preslikavanjem ose u na jednu odkoordinatnih osa

1 određujemo ugao Θ za koji treba rotirati osu u oko y ose da bi dosla uravan xy ,

2 određujemo ugao Φ za koji treba rotirati oko z ose da bi se onaporavnala sa x osom,

3 vektor u je poravnat sa x osom te treba izvrsiti rotaciju objekta zaugao Ψ oko x ose,

4 izvodimo inverzne transformacije transformacijama poravnanja(rotacijama)

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 17 / 36

Geometrijske osnove 3D transformacije

Skaliranje u 3D prostoru

Matrica skaliranja u odnosu na koordinatni pocetak:x ′

y ′

z ′

1

=

sx 0 0 00 sy 0 00 0 sz 00 0 0 1

·

xyz1

Kompozicija dva skaliranja u odnosu na koordinatni pocetak jeskaliranje

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 18 / 36

Geometrijske osnove 3D transformacije

Smicanje u 3D prostoru

U 3D prostoru smicanje podrazumeva iskosenje objekta u smeruparalelnom nekoj koordinatnoj ravni

Matrica smicanja:

1 shxy shxz 0

shyx 1 shyz 0shzx shzy 1 0

0 0 0 1

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 19 / 36

Geometrijske osnove 3D transformacije

Smicanje u 3D prostoru

Razmotrimo smicanje kocke u smeru koordinatne ravni Oxy : stranakocke koja lezi u Oxy ravni se ne menja, dok se strana koja lezi uravni z = 1 translira za vektor (a, b)

Koordinatni pocetak i jedinicni vektori u smeru x i y koordinatne osese ne menjaju

Matrica smicanja u smeru Oxy ravni:1 0 a 00 1 b 00 0 1 00 0 0 1

Korisne su za generisanje perspektivnih projekcija (na primer, kakonacrtati 3D kocku na 2D ekranu)

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 20 / 36

Geometrijske osnove 3D transformacije

Kompozicije transformacija u 3D

Svakoj kompoziciji rotacija, skaliranja, translacija i smicanja u 3Dodgovara matrica oblika:

r11 r12 r13 txr21 r22 r23 tyr31 r32 r33 tz0 0 0 1

=

[R∗ t∗

0 1

]=

gde matrica R∗ opisuje kombinovani efekat rotacija, skaliranja ismicanja, a t∗ vektor koji opisuje kombinovani efekat svih translacija

Umesto koriscenja mnozenja matricom 4× 4, moze se koristitiefikasnije izracunavanje: x ′

y ′

z ′

= R∗

xyz

+ t∗

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 21 / 36

Geometrijske osnove 3D transformacije

Preslikavanje trojke tacaka u njoj podudarnu trojku

Zadatak: odrediti transformaciju koja preslikava trojku tacaka(P1,P2,P3) u podudarnu trojku tacaka (P ′1,P

′2,P

′3), tako da vazi:

P ′1 je koordinatni pocetak,

duz P ′1P

′2 pripada pozitivnom delu z ose,

duz P ′1P

′3 lezi u delu Oyz ravni u kome je pozitivna vrednost y

koordinate

Ukoliko su tri zadate tacke nekolinearne postoji tacno jedna takvadirektna izometrija

zx

y

P1

P3

P2

zx

y

P1′P3′

P2′

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 22 / 36

Geometrijske osnove 3D transformacije

Preslikavanje trojke tacaka u njoj podudarnu trojku

Dva pristupa resavanju ovog problema:

kombinovanjem primitivnih rotacija i translacijaneposrednim određivanjem koeficijenata matrice transformacije (koristese svojstva ortogonalnih matrica)

Prvi pristup prati ideju da tezak problem izdelimo na jednostavnijepotprobleme

Zeljena transformacija se moze izvesti u cetiri koraka:

1 translirati P1 u koordinatni pocetak;2 rotirati oko y ose tako da P1P2 pripada (y , z) ravni,3 rotirati oko x ose tako da P1P2 pripada z osi,4 rotirati oko z ose tako da P1P3 pripada (y , z) ravni

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 23 / 36

Geometrijske osnove 3D transformacije

Preslikavanje trojke tacaka u njoj podudarnu trojku, prvarotacija

Rotacija oko y ose: projekcija duzi P ′1P′2 koja je duzine D1 se obara u

ravan yz

Ugao za koji se vrsi rotacije jednak je −(90o −Θ) = Θ− 90o

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 24 / 36

Geometrijske osnove 3D transformacije

Preslikavanje trojke tacaka u njoj podudarnu trojku, drugarotacija

Rotacija oko x ose: P ′′1P′′2 se rotira u z osu za pozitivan ugao Φ; D2

je duzina duzi

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 25 / 36

Geometrijske osnove 3D transformacije

Preslikavanje trojke tacaka u njoj podudarnu trojku, trecarotacija

Rotacija oko z ose: projekcija duzi P ′′′1 P ′′′3 cija je duzina D3 se rotiraza pozitivni ugao α u y osu, dovodeci time samu duz u ravan Oyz

Rezultujuca matrica je oblika:T = Rz(α) · Rx(Φ) · Ry (Θ− 90) · T (−x1,−y1,−z1)

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 26 / 36

Geometrijske osnove 3D transformacije

Preslikavanje tacaka, pravih i ravni

Matrice transformacija određuju slike pojedinacnih tacaka

Slika prave:

prava određena slikama dve tacke originalne prave

Slika ravni:

ravan određena slikama tri nekolinearne tacke originalne ravnimoze se odrediti i koristeci vektor normale

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 27 / 36

Geometrijske osnove Promena koordinatnog sistema

Transformacije kao promena koordinatnog sistema

Do sada su transformacije koriscene za preslikavanje skupa tacakajednog koordinatnog sistema u isti taj koordinatni sistem – objekat jetransformisan, a koordinatni sistem je ostao isti

Istu transformaciju mozemo opisati kao promenu koordinatnogsistema – objekat se ne transformise, vec se racunaju njegovekoordinate u novom koordinatnom sistemu

Prvi pristup je pogodniji kada se objekat krece; drugi kada viseobjekata u svojim pojedinacnim koordinatnim sistemima trebaobjediniti u jedinstven koordinatni sistem

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 28 / 36

Geometrijske osnove Promena koordinatnog sistema

Primer promene koordinatnog sistema

Tricikl je opisan u jednom koordinatnom sistemu i zelimo da odredimokoordinate jedne tacke na prednjem tocku dok se okrece

Menjamo koordinatni sistem tocka (biramo onaj u kojem je centartocka koordinatni pocetak i u kojem je osa tocka jednaka z osi) i unjemu racunamo nove koordinate tacke

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 29 / 36

Geometrijske osnove Promena koordinatnog sistema

Transformacije kao promena koordinatnog sistema

Za promenu koordinatnog sistema mogu se koristiti iste tehnike kao iza transformacije

Mi←j – matrica transformacije koja prevodi koordinatni sistem j ukoordinatni sistem i

P(i) – reprezentacija tacke P u koordinatnom sistemu i , P(j) usistemu j i P(k) u sistemu k

Vazi:P(i) = Mi←jP

(j) = Mi←jMj←kP(k) = Mi←kP

(k)

iMi←jMj←k = Mi←k

Iz poslednje jednakosti sledi vazno svojstvo: za proizvoljnu promenukoordinatnog sistema dovoljno je imati opis svođenja iz razlicitihsistema na jedan sistem

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 30 / 36

Geometrijske osnove Promena koordinatnog sistema

Transformacije kao promena koordinatnog sistema

M1←2 = T (4, 2)

M2←3 = T (2, 3) · S(0.5, 0.5)

M3←4 = T (6.7, 1.8) · R(45o)

Iz prethodnog vazi: M1←3 = T (4, 2) · T (2, 3) · S(0.5, 0.5)

Matrice Mi←j imaju isti oblik kao i matrice transformacija

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 31 / 36

Geometrijske osnove Graf scene

Graf scene

Objekti su najcesce sacinjeni od komponenti

Graf scene se sastoji iz:

cvorova objekata (kocke, valjci, lopte, . . .) koji su podrazumevanojedinicne velicine i pozicionirani u koordinatnom pocetku,cvorova atributa (boja, tekstura, . . .),cvorova transformacija

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 32 / 36

Geometrijske osnove Graf scene

Format grafa scene

Da bismo pojednostavili format grafa scene pretpostavljamo:

atributi se cuvaju kao komponente cvorova,cvor transformacije deluje na svoje podstablo,graficki elementi se nalaze iskljucivo u listovima,cvor koji nije list niti cvor transformacije je cvor grupisanja

Transformacije se mogu primeniti:

na listove (glava, osnova,. . .)na grupe objekata (gornji i donji deo tela)

Umesto da za svaki novi objekat koji je potreban pravimo novuprimitivu, mozemo primeniti transformaciju na manji skup primitiva

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 33 / 36

Geometrijske osnove Graf scene

Primer grafa scene

Kumulativna matrica transformacije se gradi kako se penjemo uzstablo – transformacije na visem nivou se dodaju na pocetak niza

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 34 / 36

Geometrijske osnove Graf scene

Definisanje grupa u grafu scene

Moguce je ponovo iskoristiti vec definisane grupe objekata (akoimamo vise slicnih komponenti u sceni)

Transformacije definisane u okviru grupe g3 se ne menjaju

Razlicite su kumulativne matrice transformacije za svako koriscenjegrupe g3 kao celine

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 35 / 36

Geometrijske osnove Graf scene

Graf scene

Postoje dve vrste transformacija pri modelovanju:

transformacije instance – koriste se za pozicioniranje, izmenu velicine,orijentacije da bi se ta instanca dobro uklopila u scenuzglobne transformacije – koriste se za simulaciju pokreta u zglobutokom animacije

Ponovno koriscenje je jedan od osnova hijerarhijskog modelovanja

Postoje dva nacina ponovnog koriscenja:

ponovno koriscenje komponenti – ukoliko imamo cvrstu komponentukoja nema unutrasnjih zglobova ona se moze ponovo iskoristiti kaokomponentaponovno koriscenje dizajna – ovde nema ponovnog koriscenjakomponenti jer zelimo da postignemo nezavisnost komponenti

Vesna Marinkovic Racunarska grafika Geometrijske osnove – nastavak 36 / 36

Recommended