2010 ősz, Debreceni Egyetem
A grafikus szállítószalag 1 a geometriai (matematikai) modell megalkotása 2 modelltranszformáció (3D 3D) 3 vetítés (3D 3D) 4 képtranszformáció (2D 2D) 5... 6 raszterizáció
A grafikus szállítószalag 1 a geometriai (matematikai) modell megalkotása 2 modelltranszformáció (3D 3D) 3 vetítés (3D 3D) 4 képtranszformáció (2D 2D) 5... 6 raszterizáció
Homogén koordináták alkalmazása Közönséges pont homogén koordinátái 2D: P = (x, y) = [x 1, x 2, x 3 ], ahol x = x 1 /x 3, y = x 2 /x 3 3D: P = (x, y, z) = [x 1, x 2, x 3, x 4 ], ahol x = x 1 /x 4, y = x 2 /x 4, z = x 3 /x 4 Projektív sík/tér 2D: P 2 = Ṙ 3 / 3D: P 3 = Ṙ 4 / ahol az arányosság reláció. Példa (x, y) = [x, y, 1] közönséges pontok, [a, b, 0] végtelen távoli pontok
Projektív transzformáció Definíció P GL(n + 1), X R n+1 P n P n, [X ] [PX ]
Projektív transzformáció lineáris tört transzformáció = x 1 = p 11 x 1 + p 12 x 2 + p 13 x 3 x 2 = p 21 x 1 + p 22 x 2 + p 23 x 3 x 3 = p 31 x 1 + p 32 x 2 + p 33 x 3 x = p 11x + p 12 y + p 13 p 31 x + p 32 y + p 33 y = p 21x + p 22 y + p 23 p 31 x + p 32 y + p 33 Eltűnési egyenes p 31 x + p 32 y + p 33 = 0
Projektív transzformáció tulajdonságai Tétel egyenestartó kettősviszontartó
Projektív transzformációk meghatározása síkban Tétel Négyszög és képe a projektív transzformációt egyértelműen meghatározza. (Négyszög: négy olyan pont, hogy nincs köztük 3 egy egyenesre illeszkedő.) M : [x i, y i, w i ] [X i, Y i, W i ], i = 1, 2, 3, 4. M = QP 1, ahol P : E i [x i, y i, w i ], i = 1, 2, 3, 4. Q : E i [X i, Y i, W i ], i = 1, 2, 3, 4. és E 1 = [1, 0, 0], E 2 = [0, 1, 0], E 3 = [0, 0, 1], E 4 = [1, 1, 1].
Folytatás 1. lépés: 2. lépés k 1 k 2 k 3 x 1 x 2 x 3 = y 1 y 2 y 3 w 1 w 2 w 3 1 x 4 y 4 z 4 k 1 x 1 k 2 x 2 k 3 x 3 P = k 1 y 1 k 2 y 2 k 3 y 3 k 1 w 1 k 2 w 2 k 3 w 3 Feladat Írjunk olyan interaktív grafikai programot, mely egy ábrát (pl. szakaszokból álló ábrát, síkgörbét, bittérképes ábrát) projektív transzformációval átalakít. A transzformációt négyszöggel és képével adjuk meg.
Speciális esetek Affin transzformáció homogén reprezentációja Ha F (X ) = AX + b, (A GL(N), b R N ) akkor ( ) ( ( ) F (X ) A b X = 1 0 1) 1 Affin csoport: Aff(N) = {( ) } A b A GL(N), b R N 0 1
Speciális esetek Eltolás síkban x y = 1 0 a 0 1 b x y 1 0 0 1 1 Eltolás térben x 1 0 0 a x y z = 0 1 0 b y 0 0 1 c z 1 0 0 0 1 1
Speciális esetek Elforgatás origó körül, tengelyes tükrözés origón áthaladó egyenesre síkban x cos φ sin φ 0 x y = sin φ ± cos φ 0 y 1 0 0 1 1 Elforgatás (forgatva tükrözés) az x tengely körül térben... x ±1 0 0 0 x y z = 0 cos φ sin φ 0 y 0 sin φ cos φ 0 z 1 0 0 0 1 1
Speciális esetek Síkbeli hasonlóságok a c m c ±a n 0 0 1
Transzformációk szorzata első transzformáció: P 1 második transzformáció: P 2... n-edik transzformáció: P n az eredmény: P n P 2 P 1 (sorrend!) Feladat Az y = mx + b (m 0) egyenesre vonatkozó tükrözés mátrixa. Interaktív grafikai feladat: input: m, b. Kirajzolódik az y = mx + b egyenes. Az ablakban egérrel fölvett pont tükrözése az egyenesre.
Projekciók Lineáris ( 1 0 v 1 ) v parallel (speciálisan merőleges) projekció: 3 0 1 v2 v ( ) 3 a11 a ferde axonometria: 12 a 13, (2 rangú) a 21 a 22 a 23 axonometria: a 11 a 21 + a 12 a 22 + a 13 a 23 = 0 és a11 2 + a2 12 + a2 13 = a2 21 + a2 22 + a2 23. 1 0 0 0 centrális: 0 1 0 0 0 0 r 1
Hamis perspektíva
Hamis perspektíva: példa Vasarely stílusában
Hamis perspektíva: példa Vasarely stílusában
Hamis perspektíva Mi a hamis perspektíva? 2-dimenziós kép olyan transzformálása, mely a térbeliség érzetét kelti. Megvalósítás: analógia a centrális vetítéssel Centrális vetítés: hamis perspektíva: x = x = x 1 + (z/k), y y = 1 + (z/k), x 1 + f (x, y), y y = 1 + f (x, y). Például f (x, y) = 1 2 exp( ax 2 by 2 ). (Az origó környékét nagyítja.)
Hamis perspektíva Feladatok A prezentáció körös ábrájának megvalósítása körökkel, négyzetekkel, bittérképes mintával. Interaktív grafikai feladat: a nagyítás centruma az ábrán az egér által van kijelölve (pl. valamelyik egérgomb lenyomásával kapjuk a nagyítást, vagy az egér mozgásával real-time nagyítást kapunk). Útmutatás: f (x, y) = 1 2 exp( a(x u)2 b(y v) 2 ), ahol (u, v) a centrum. Alkalmazzunk más függvényt úgy, hogy a torzítás ne körszimmetrikus legyen (de a kép egyértelmű illúziót adjon)!
Halszem perspektíva
Halszem perspektíva A halszem perspektíva célja Halszem perspektíva alatt olyan módszert értünk, amellyel legalább π látószögű tartományt a képsík korlátos részére képezünk le. Az ábrán a sárga körlemez a teljes képsík képe halszem perspekívában. A kockák a képsíkkal párhuzamosan vannak eltolva, figyeljük meg a torzulást.
Halszem persektíva módszerek: szögfelezés 1. lépés: P P 1, centrális vetítés 2. lépés: (P, V, O) = 1 2 (P 1, V, O), szögfelezés
Halszem persektíva módszerek: szögfelezés Megvalósítás P = s(p 1 ) P 1 (P 1, P R 2, s(p 1 ) R, skála faktor) s(p 1 ) = P P 1 = k tg(α/2) k tg = P 1 ( 1 2 arctg P1 k P 1 )
Halszem persektíva módszerek: félgömb-módszer 1. lépés: P P 1, centrális vetítés félgömbre 2. lépés: P 1 P, merőleges vetítés a képsíkra
Halszem persektíva módszerek: félgömb-módszer Megvalósítás P 1 = V + r (P V ) 0 = V + r P V P V
Halszem persektíva módszerek: parabolikus tükör 1. lépés: P P 1, centrális vetítés forgás paraboloidra 2. lépés: P 1 P, merőleges vetítés a képsíkra
Feladat Feladat Készítsük el valamely térbeli jelenet halszem perspektívával készített képét (ld. pl. a prezentáció ábrája) Készítsünk ábrát a szögfelezéses és a félgömb módszer összehasonlításáról. (Egyszerű síkbeli alakzat, pl. négyzetrács transzformációja a két módszerrel.)