1 / 64

4. A grafikus szerelőszalag - áttekintés 4.0. Bevezetés

4. A grafikus szerelőszalag - áttekintés 4.0. Bevezetés. A g rafikus szerelőszalag: a képet előállító műveletek sorozata, grafikus szerel ő szalag = viewing pipeline „cs ő vezeték”. 2. Az elemző-építő program – modellt épít. ·  APRO - al kalmazási program,

zack
Download Presentation

4. A grafikus szerelőszalag - áttekintés 4.0. Bevezetés

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 4. A grafikus szerelőszalag -áttekintés4.0. Bevezetés

  2. A grafikus szerelőszalag: a képet előállító műveletek sorozata, grafikus szerelőszalag = viewing pipeline „csővezeték” 2

  3. Az elemző-építő program – modellt épít · APRO - alkalmazási program, GM - geometriai modell GRASZ - grafikus alapszoftver: - feladata: rajzolás - működése: műveletek sorozata: a „szerelőszalag” 3

  4. A modell adatszerkezete - bejárható • Színtér l | __ tárgy1 __ . . . __ tárgyn __ { nil } // tárgyak l  . . . l l__ lap1 __ . . . __ lapm __ { nil } // lapok l  . . . l l__ P1 __ P2 __ P3 __ { nil } // pontok l  . . .  . . . (vertices) l l __ { x y z [ w ] }

  5. Térbeli „képelemek” • 3 koordináta • háromszög-sáv • legyező • Négyszög-sáv • négyszögháló

  6. A grafikus alapszoftver - rajzol • BGI (és mások): KKR-ben, 2D • Windows GDI, DirectDraw KKR-ben, 2D • OpenGL – SKR VKRKKR, 3D alapszoftver • Grafikus munkaállomások: egyes műveletek hardverben (förmver-ben pl. a láthatóság • NéhaaGM rendszerekbe is beépítve.

  7. Az elemző-építő program – „néha” rajzol · APRO - alkalmazási program, GM - geometriai modell GRASZ - grafikus alapszoftver: - feladata: rajzolás („bármit”) - működése: műveletek sorozata: a „szerelőszalag” 7

  8. Grafikus szerelőszalag: a kép előállításánakműveletei; műveletek sorozata „grafikus szerelőszalag” (viewing pipeline, „csővezeték”)

  9. A 2D szerelőszalag műveletei • Geometriai modell – építés, elemzés, módosítás • 0. Képelemek kiválogatása (amit APRO rajzolni akar)1. Képelemek előkészítése:helyettesítés és elhelyezés 2. Leképezés: VKR  KKR (3D  2D)3. Képkivágás: a kereten kívüliek elhagyása4. Láthatóság-takarás: a takart elemek elhagyása 5. Raszter-konverzió „a képpontok színezése” - a képpont a KPPufferba (frame buffer)-be„ P’ = View ·P = ( Utó · Raszko · Láthat · Vág · Lekép · Előkész ) ·P

  10. procedure GdrawLine( P,Q : Gpoint );{ Egyenes szakasz kirajzolása }begin map_To_WCS(P,P1); // előkészítés map_To_WCS(Q,Q1); map_To_SCS(P1,U); // Leképezés map_To_SCS(Q1,V); c_Flag := clip_Line( U,V ); // Vágásif ( clipFlag ) then G_draw_Line(U1,V1); // Raszter-konv.end;

  11. 12

  12. 4.1. Előkészítés • Képelemek előkészítése: - helyettesítése: geometriai elem  képelem - elhelyezése: a közös Világ KR-be

  13. 14

  14. A képelemek előkészítése • Rajzoláskor: APRO bejárja a geometriai modellt, kiválogatja a kívánt elemeket, és átadja a GRASZ-nak. • GRASZ egyenként átveszi és „ráteszi” a szerelőszalagra • Az első művelet: A képelemek előkészítése ( i. és ii.)

  15. Előkészítés: (1) helyettesítés, . . . A modell geometriai elemeithelyettesítjük képelemekkel Görbült felület  sokszögek (háromszögek)Görbe vonal  szakaszos közelítés OpenGL képelemek:TRIANGLE_STRIP TRIANGLE_FAN QUAD_STRIP 16

  16. Előkészítés: (2) elhelyezés: SKR  VKR P’ = M · P; M = T  S  R

  17. Az ablak

  18. A nagy fal • Nagyfal =nagypanel +M00 · ablak + M01 · ablak + M02 · ablak Moi = T·R·S

  19. Egy ház • Ház = M05· Nagyfal +M06· kisfal +M07· Nagyfal +M08· kisfal

  20. • Ház = M05· Nagyfal +M06· kisfal +M07· Nagyfal +M08· kisfal =M05· ( nagypanel +M00 · ablak + M01 · ablak + M02 · ablak ) +M06· ( kispanel +M03 · ablak + M04 · ablak) +. . .

  21. Házsor

  22. Elhelyező transzformáció: hasonlóságSKR  VKR; M = T  S  R

  23. A modell-fa bejárása Lakótelep = házsor + házsor + házsor == ( ház + ház + ház ) + ( ház + ház + ház ) + ( ház + ház + ház ) = ( (nagyfal + kisfal + nagyfal + kisfal + tető) + (nagyfal + kisfal + nagyfal + kisfal + tető) + (nagyfal + kisfal + nagyfal + kisfal + tető) ) + . . .= ( ( ( nagypanel + ablak + ablak + ablak ) + … illetve:M12·M09·M05·( nagypanel + M00· ablak + M01· ablak + M02· ablak )amikor sorra kerül:M12·M09·M05·M02· ablak

  24. Egy másik példa

  25. Egy (másik) Elhelyező transzformáció H: Saját KR-jébenK: az ő Saját KR-jében K’ = K + Si (Ni٠H) // lukas kereszt S = V + Sj [ Mj٠ K’ ] = // a sáv = V + Sj [ Mj٠ ( K + Si Ni٠H ) ] Mj , Ni: elhelyező transzformációk 26 26

  26. Egy dőlt kereszt rajzolása T := Mj; drawT K; pushT;for i:= 1 to 4 doT := stacktop; T := T  Ni; drawT H;end // for i;popT; 27 27

  27. 4.2. Leképezés(a tárgytérből a képtérbe) • Világ KR  Kép KR (+Z) 2D-Szesza: képkeret  képmező 3D-Szesza: Kamera KR  Kép KR-3D

  28. 29

  29. Szesza-2. Leképezés a tárgytérből a képtérbe • A tárgyak adottak a VKR-ben; „tárgytér” • leképezés a „képtérbe”; 3D (2D) • alakzatok pontjainak transzformációja • a pontok helyvektorának szorzása a leképezés mátrixával:P’ = M · P= ( m11 m12 m13 m14 ) · ( x ) | m21 m22 m23 m24 | | y | | m31 m32 m33 m34 | | z | ( m41 m42 m43 m44 ) ( h )

  30. 2D Leképezés: VKR  KKR Nézetmező (keret), tárgytér: { Kba, Kjf } Képmező, képtér: { Mba, Mjf } Leképezés: u = a ·x + b, v = c ·y + d

  31. 2D Leképezés: minden új leképezésnél beállítás :GsetWorldFrame ( Kba, Kjf : Gpoint2 );GsetScreenViewPort( Mba, Mjf : Gpixel ); minden képelemnél a leképezés :GmapWorldToScreen(Pv:Gpoint2; Pk:Gpixel); 32

  32. 2D Leképezés: VKR  KKR Matematikai modell: u = a ·x + b, v = c ·y + d; a = du / dx; c = dv / dy; ( < 0 ) dx = kj- kb, dy = kf - kl, du = mj- mb, dv = mf- ml; b és d: Kba Mba –ból „finomságok”: c < 0 a := min( |a|,|c| ), c := - a ; valós  egész; levágás-kerekítés kinn ? benn ? határon 33

  33. 3D Leképezés: Párhuzamos, vagyközéppontos vetítés (1) VKR-3D  KKR-3D: nézetmező: csonkagúla  „képmező”: téglatest (2) Láthatóság-takarások Z szerint, a téglatestben (3) Végül: kép: síkvetület a téglatest alapjára(4) a téglatest alapja  képmező (a képernyőn)

  34. 3D Leképezések • Párhuzamos vetítés koordináta-síkra merőlegesen • Párhuzamos vetítés koordináta-síkra ferde irányban • Párhuzamos vetítés általános helyzetben • Középpontos vetítés az XY síkra • Középpontos vetítés általános helyzetben

  35. 3D Leképezések -1 Párhuzamos vetítés koordináta-síkra merőlegesen • Párhuzamos és merőleges vetítésM = E • A tárgy az XY síkon áll, erre merőlegesen vetítünk: a z -t elhagyjuk • Más helyzetű tárgy esetén: eltolás-forgatással . . .

  36. 3D Leképezések -2 Ferde vetítés koordinátasíkra párhuzamoan • A vetítés iránya: v= (vx, vy, vz); vz 0 • A vetítő egyenesek egyenlete:X (x, y, z) = P + t ·v x = px + t · vx y = py + t · vy z = pz + t · vz( = 0 ) • Döféspont a vetületi síkon z’ = 0 : t = -pz/ vz(vz 0) x’ = px+ t · vx= px- pz· (vx / vz)y’ = py+ t · vy = py - pz · (vy / vz)

  37. Ferde vetítés mátrixal: • Nyírással merőleges vetítéssé:P’ = N xy·P ; (3D3D)= ( 1 0 -vx/vz 0)·(px)| 0 1 –vy/vz0| |py|| 0 0 1 0| |pz|( 0 00 1|(1)= [ px - (pz / vz) · vx , py - ( pz / vz) · vy , pz , 1] ( px - (pz / vz) · vx, py - ( pz / vz) · vy); vz :=0 • Nyírás: a 3D alak torzul, de ettől jó a 2D vetület

  38. 3D Leképezések – 3általános helyzetben:transzformációk a vetítés előtt • „elhelyező transzformáció • forgatás, elhelyezés;hasonlósági transzformációk • Feladat: a VKR-ben adott testvetítése egyik fő sikjára • A tárgy jellemző KR-e: TKR; • megadása VKR-ben: R, u, v, w • VKRTKR : P’ = ( T · B) ·P; ezután:

  39. 3D-3D leképezések 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) M : olyan 3D  3D leképezés, hogy a végén az XY síkra merőleges vetület a kívánt sík-vetület legyen 40

  40. Középpontos vetíté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) M : projektív transzformáció M : a határozatlan együtthatók módszerével : meghatározza 5-5 „független” pont 41

  41. 3D Leképezések - 4 Középpontos vetítés az XY síkra(A kamera koordináta-rendszerében)

  42. Például: egy sínpár perspektívája X = [ 1, 0, 0, 0 ]; X’ = XY = [ 0, 1, 0, 0 ]; Y’ = YC = [ 0, 1, 0, 1 ]; C’ = [ 0, 0, 1, 0 ]T = [ 0, 0, t*, 1 ] ; T’ = [ 0, 0, 1, 1 ]E = [ k*,k*,k, 1 ]; E’ = [ -1, 1, 0, 1] 43

  43. Az előírásoknak  megfelelő mátrix: 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 ) Az X = [x, y, z, h] pontot ezzel transzformálva: X' = M · X =  [ s · x / k*, s · y / k*, - z / k + h, s · z ]  és ha z nem nulla, akkor X' = ( x / (z·k*), y / (z·k*), -1 / (s·k) + h / (s·z) ) 44

  44. Leképezés a tárgytérből a képtérbe • 2D grafika: VKR (-2D)  KKR (-2D) VKR keret  képmező • 3D grafika: elhelyezés: SKR(-3D)  VKR(-3D) leképezés: (1) VKR(-3D)  NKKR(-3D ) (2) NKKR-ben: láthatóság-takarás (3) vetítés az alapsíkra (z=0) (4)  képmező 45

  45. 3D Leképezések – 5általános helyzetben:transzformációk a vetítés előtt • „elhelyező transzformáció • forgatás, elhelyezés;hasonlósági transzformációk • Feladat: a VKR-ben adott testvetítése a „Z tengely irányában • A tárgy jellemző KR-e: TKR; • megadása VKR-ben: R, u, v, w • VKRTKR : P’ = ( T · B) ·P; ezután:

  46. Vetítés az OpenGL-ben Modell-transzformációk és  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

  47. 48

  48. 4.3. Vágás A képkereten kívüli részek elhagyása (vagy csak megjelölése) 49

  49. 50

More Related