Upload
others
View
7
Download
0
Embed Size (px)
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