3. Vetületi ábrázolások számítási eljárásai
3. Vetületi ábrázolások számítási eljárásai 3.0. Bevezetés A középpontos és a párhuzamos vetítés 3.1. Párhuzamos vetítés 3.2. Középpontos vetítés A műszaki dokumentáció vetületi ábrázolásai 3.3. Axonometria 3.4. Perspektív ábrázolások
3.3. Középpontos vetítés Bevezetés Középpontos vetítés egyszerű helyzetben Középpontos vetítés a KKR-ben Transzformációk a vetítés előtt, 1 Középpontos vetítés általános helyzetben Példa: egy sínpár perspektívája Középpontos vetítés az OpenGL-ben
Bevezetés Számítási módszerek: P’= M P ; 3D 3D láthatóság-takarás z’ szerint 3D 2D: az XY síkra (z elhagyása) A középpontos vetítés: projektív transzformációval M : szemléletes transzformációk sorozata vagy a határozatlan együtthatók módszerével
Bevezetés „Nézet”, a vetítés paraméterei: a vetületi sík, a vetítő egyenesek, stb. helyzete Rossz nézet: rossz kép; kilóg a keretből, nehezen ismerhető föl. A paraméterek megválasztása a tárgyakhoz viszonyítva, szemlélet alapján Műszaki hagyomány: a rajzolás szabályai, jól „olvasható”, meghatározott nézet.
Középpontos vetítés egyszerű helyzetben (a) a Z tengely egy pontjából az XY síkra (b) a kamera koordináta-rendszerében A bonyolultabb helyzeteket ezekre vezetjük vissza
(i) A Z-tengely egy pontjából az XY síkra Térbeli tárgyak a VKR-ben, az XY síkon „ülnek”, a Z tengely környékén, Vetületi sík: XY (z = 0), vetítési középpont: C = (0, 0, c), A P pont X vetülete: x’ = px · c / (c - pz); c > pz y’ = py · c / (c - pz) z’ = 0
(ii) A kamera koordináta-rendszerében C az origóban A vetületi sík: z = d (|| XY) A tárgyon X = (x, y, z, 1) X’ vetülete: x’ = x d / z; z > 0, y’ = y d / z [ z’ = (z-d) / z ] X’ = M X = ( d 0 0 0 ) (x) = ( dx ) ~ ( d x / z) | 0 d 0 0 | |y| | dy | | d y / z | | 0 0 1 –d | |z| | z-d | | (z-d)/ z | ( 0 0 1 0 ) (1) ( z ) ( 1 )
Transzformációk a vetítés előtt, 1 „modell-transzformáció”, „elhelyező transzformáció”: hasonlósági tr. „SKR”-ben adott minta, „elhelyezése” a TKR-ben: méretezés, forgatás, elhelyezés
Transzformációk a vetítés előtt, 2 Feladat: a VKR-ben adott test vetítése egyik fő sikjára A tárgy jellemző KR-e: TKR; megadása VKR-ben: R, u, v, w áttérés: VKR TKR –be: P’ = ( T B ) P Ezután vetítés a TKR-ben
Középpontos vetítés általános helyzetben Rossz paraméterek: rossz kép (kilóg a keretből) Jó paraméterek: a tárgyhoz viszonyítva (TKR), szemléletesen TKR: R (ref.pont), X,Y,Z SzKR: C, u, v, w : = n C: vetítési középpont n és d : vet. sík: R-ből w : = n v : „fölfele”, de merre? f : kb. fölfele; n és v síkjában ebből: u = f w, és v = w u a vetületi síkon: O
Áttérés TKR-ről SzKR-re TKR SzKR báziscsere: X’ = (T2 · B2) · X B2 := B2 (u, v, w,) | u | = | v | = | w | = 1 T2 := T2(- RC)
Ha a vetületi sík nem merőleges az „optikai tengelyre” Vetítés „ferde síkra” Ha a vetületi sík nem merőleges az „optikai tengelyre” Nyírás az XY síkkal párhuzamosan
Bevezetés Számítási módszerek: P’= M P ; 3D 3D láthatóság-takarás z’ szerint 3D 2D: az XY síkra (z elhagyása) A középpontos vetítés: projektív transzformációval M : szemléletes transzformációk sorozata vagy a határozatlan együtthatók módszerével
A kamera koordináta-rendszerében
A leképezés 5-5 pontja (például) X = [ 1, 0, 0, 0 ]; X’ = X X,Y tengely Y = [ 0, 1, 0, 0 ]; Y’ = Y C = [ 0, 0, -1, 1 ]; C’ = [ 0, 0, 1, 0 ] kamera T = [ 0, 0, t*, 1 ] ; T’ = [ 0, 0, 1, 1] távolsík E = [ k*, k*,k, 1 ]; E’ = [ 1, 1, 0, 1] a kép sarka
Az előírásoknak megfelelő mátrix (l. jegyzet): M = ( s/k Az előírásoknak megfelelő mátrix (l. jegyzet): M = ( s/k* 0 0 0 ); s = -1/k+t* | 0 s/k* 0 0 |; k* = k·tg a | 0 0 -1/k 1 | ( 0 0 s 0 ) Egy P = [x, y, z, h] pontot ezzel transzformálva: P' = M · P = [ s · x / k*, s · y / k*, - z / k + h, s · z ] és ha z 0, akkor (s · z -vel osztva): P' = ( x / (z·k*), y / (z·k*), -1 / (s·k) + h / (s·z) )
Más például: egy sínpár perspektívája X = [ 1, 0, 0, 0 ]; X’ = X X,Y tengely Y = [ 0, 1, 0, 0 ]; Y’ = Y Z = [ 0, 0, 1, 0 ] ; Z’ = [ 0, 0, 1, 1 ] Z tengely C = [ 0, 1, 0, 1 ]; C’ = [ 0, 0, 1, 0 ] kamera F = [ 1, 2, 1, 1 ]; F’ = [ -1, 1, 0, 1] a kép sarka
A sínpár perspektívája M44 · [ X Y Z C F ] = [ pX’ rY’ z Z’ sC’ eF’ ] (m11 m12 m13 m14) · ( 1 0 0 0 1 ) = ( p 0 0 0 - e ) | m21 m22 m23 m24| | 0 1 0 0 2 | | 0 r 0 0 e | | m31 m32 m33 m34| | 0 0 1 0 1 | | 0 0 z s 0 | (m41 m42 m43 m44) ( 0 0 0 1 1 ) ( 0 0 z 0 e ) 20 egyenlet, 21 ismeretlen: p, r, z, s, e, és 16 mik de egy választható, pl. p := 1 (nem lehet 0)
Vetítés az OpenGL-ben Modell-transzformációk és áttérés a PKR (SzKR)-re Vetítés (projektív vagy affin) transzformáció Vágás (a projektív transzformált szűrése) A keret leképezése a képmezőre
Középpontos vetítés - összefoglalás (Az átalakítások egy lehetséges módja) Az elhelyező-transzformációk után a tárgyak: VKR-ben Áttérés VKR-ről TKR-re: X’ = (T1B1)X A vetítés megadása a tárgyhoz viszonyítva Áttérés TKR-ről PKR-re X’ = (T2B2)X Vetítés a PKR-ben: X’ = (PNxyTM)X Leképezés PKR-ből a KKR-be: X’ = (T5S)X X’ = [ (T5S)P(NxyTM)(T2B2)(T1B1) ] X
Összefoglalás Vetítés: 3D 2D A párhuzamos vetítés: affin transzformáció A középpontos vetítés: projektív transzformáció Mindkettőnek vannak egyszerű esetei Általános esetben: P’= M P 3D 3D leképezés, utána: láthatóság (z), végül: a z koordináta elhagyása Az M mátrix geometriai szemlélettel fölépíthető