1 / 27

Geometrické transformácie a premietanie

Geometrické transformácie a premietanie. 2D transformácie. 1. Posunutie. 2. Otočenie. 2D transformácie. 3. Škálovanie. 4. Osová súmernosť (preklopenie). 2D transformácie. 5. Skosenie Skosenie objektu si môžeme predstaviť tak, že jednu stranu objektu zafixujeme

Download Presentation

Geometrické transformácie a premietanie

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. Geometrické transformácie a premietanie

  2. 2D transformácie 1. Posunutie 2. Otočenie

  3. 2D transformácie 3. Škálovanie 4. Osová súmernosť (preklopenie)

  4. 2D transformácie 5. Skosenie Skosenie objektu si môžeme predstaviť tak, že jednu stranu objektu zafixujeme a objekt potom „ťaháme” v smere, ktorý je so zafixovanou stranou rovnobežný.

  5. 2D transformácie Teraz si ukážeme, ako matematicky zapíšeme transformáciu jedného bodu. Celý objekt transformujeme tak, že rovnako transformujeme každý jeho bod 1. Posunutie (x’,y’) (x,y) p=(px,py) Posunutie matematicky zapíšeme jednoducho pripočítaním súradníc vektora posunutia p k pôvodným súradniciam bodu: x’=x+px y’=y+py

  6. y’ (x,y) r y   x’ x  (x’,y’) S=(Sx,Sy) 2D transformácie 2. Otočenie x=r.cos y=r.sin x’=r.cos(+) =r.cos.cos-r.sin.sin y’=r.sin(+) =r.sin.cos+r.cos.sin Otočenie okolo bodu (0,0) o uhol  v proti smeru hodinových ručičiek: x’=x.cos - y.sin y’=x.sin + y.cos Otočenie okolo bodu (0,0) o uhol  v smere hodinových ručičiek: x’=x.cos + y.sin y’=-x.sin + y.cos Otočenie okolo ľubovoľného bodu S=(Sx,Sy) o uhol : x’=(x-Sx).cos ± (y-Sy).sin + Sx y’= (x-Sx).sin + (y-Sy).cos + Sy ±

  7. (x’,y’) (x,y) (x’,y’) (x,y) 2D transformácie 3. Škálovanie Pri škálovaní jednoducho vynásobíme súradnice x a y príslušnými koeficientami: x’=dx.x y’=dy.y Koeficienty dx a dy môžu byť aj záporné, vtedy bude výsledok navyše otočený alebo preklopený: (x,y) (x’,y’) dx<0

  8. (x,y) aX+bY+c=0 P=(Px,Py) n=(a,b) (x’,y’) d 2D transformácie 4. Osová súmernosť (preklopenie) (x’,y’)=(x,y)-2d.n (ak (x,y) leží v polrovine aX+bY+c0) P=(x,y)-d.n (priemet (x,y) na priamku) aPx+bPy+c=0 Px=x-da, Py=y-db a(x-da)+b(y-db)+c=0 Vzorec pre preklopenie dostaneme posunutím bodu o vhodnú dlžku (-2d) v smere normály na os:

  9. (x3’,y3’) (x3,y3) (x3’,y3’) (x2’,y2’) (x2,y2) (x2’,y2’) (x1,y1)=(x1’,y1’) (x3,y3) (x2,y2) (x1,y1)=(x1’,y1’) 2D transformácie 5. Skosenie Pri skosení sa bod posunie v smere súradnicovej osi. Dĺžka posunutia závisí od vzdialenosti bodu od tejto osi. Skosenie v smere osi x: x’=x+dy y’=y Skosenie v smere osi y: x’=x y’=y+dx

  10. 3D transformácie 1. Posunutie Posunutie v 3D je analogické posunutiu v 2D: x’=x+px y’=y+py z’=z+pz 2. Škálovanie Takisto škálovanie je jednoduchým rozšírením 2D škálovania: x’=dx.x y’=dy.y z’=dz.z 3. Súmernosť podľa roviny aX+bY+cZ+d=0

  11. 3D transformácie 4. Otočenie V 3D môžeme bod alebo objekt otáčať okolo troch súradnicových osí a to vždy v smere alebo proti smeru hodinových ručičiek. Celkové otočenie potom dostaneme zložením týchto jednoduchších otočení.

  12. 3D transformácie 5. Skosenie Skosenie v smere xy: x’=x+dxz y’=y+dyz z’=z Skosenie v smere xz: x’=x+dxy y’=y z’=z+dzy Skosenie v smere yz: x’=x y’=y+dyx z’=z+dzx

  13. priemetňa priemety premietacie lúče Premietanie Premietanie je transformácia z n-rozmerného priestoru do m-rozmerného, kde m<n. V počítačovej grafike sa väčšinou jedná o premietanie z 3D do 2D Na premietanie potrebujeme premietaciu plochu (priemetňu) a premietací lúč. Priemetňa je plocha, na ktorej chceme objekt zobraziť. Aj keď to býva najčastejšie rovina, vo všeobecnosti to môže byť plocha ľubovoľného tvaru. Premietací lúč je priamka, ktorá prechádza cez premietaný bod. Priemet bodu vznikne tým, že sa premietací lúč pretne s priemetňou.

  14. Premietanie

  15. Rovnobežné premietanie Rovnobežné premietanie sa vyznačuje tým, že všetky premietacie lúče sú rovnobežné. Podľa toho, aký uhol zvierajú premietacie lúče s priemetňou, rozlišujeme pravouhlé a kosouhlé premietanie. V počítačovej grafike sa takmer vždy používa pravouhlé premietanie. pravouhlé premietanie kosouhlé premietanie

  16. Rovnobežné premietanie Rovnobežné premietanie zachováva rovnobežnosť Veľkosť priemetu nezávisí od vzdialenosti premietaného objektu od priemetne Rovnobežné premietanie sa používa najmä v technických aplikáciách, kde je zachovanie rovnobežnosti výhodou Rovnobežné pravouhlé premietanie do roviny xy sa matematicky vyjadrí takto: x’=x y’=y z’=0 Rovnobežné pravouhlé premietanie do ľubovoľnej roviny:

  17. Perspektívne premietanie Pri perspektívnom (stredovom) premietaní vychádzajú všetky premietacie lúče z jedného bodu. Tento bod sa nazýva stred premietania. Pri tomto premietaní sa vo všeobecnosti nezachováva rovnobežnosť, pôvodne rovnobežné úšečky sa môžu zbiehať. Objekty, ktoré sú od stredu vzdialenejšie, budú po premietnutí menšie. Táto projekcia sa používa najmä v architektúre a všade, kde je potrebné realistické zobrazenie, pretože vytvára obrazy podobné tým, ktoré vidí ľudské oko.

  18. Perspektívne premietanie • Podľa polohy priemetne vzhľadom na súradnicové osi rozlišujeme tri typy perspektívneho premietania: • Jednobodová perspektíva vzniká, ak priemetňa pretína len jednu súradnicovú os • Pri dvojbodovej perspektíve priemetňa pretína dve súradnicové osi • Pri trojbodovej perspektíve pretína priemetňa všetky tri súradnicové osi Ak si predstavíme kváder, ktorý má steny rovnobežné so súradnicovými osami, tak v prípade jednobodovej perspektívy sa všetky zbiehajúce sa rovnobežky v ňom budú zbiehať do jedného bodu – úbežníka. Pri dvojbodovej perspektíve máme dva úbežníky a pri trojbodovej tri.

  19. L (x’,y’,z’) (x,y,z) (Sx,Sy,Sz) Perspektívne premietanie Teraz si odvodíme vzorec pre perspektívne premietanie na všeobecnú rovinu aX+bY+cZ+d=0. Nech stred premietania má súradnice (Sx,Sy,Sz) a premietaný bod je (x,y,z) Premietací lúč L má parametrické vyjadrenie: L=( x+(x-Sx)t, y+(y-Sy)t, z+(z-Sz)t ) Priemet má ležať v danej rovine a zároveňna priamke L, dosadením parametrickéhovyjadrenia do rovnice roviny dostaneme t:

  20. Perspektívne premietanie Dosadením vypočítaného parametra t do parametrického vyjadrenia L dostaneme vzorec pre perspektívnu projekciu: Špeciálny a v počítačovej grafike najčastejšie používaný prípad je projekcia do roviny xy (z=0), kde stred premietania má súradnice (0,0,Sz), resp. projekcia do roviny z=dz so stredom (0,0,0):

  21. Pohľadová transformácia • Ak chceme zobraziť nejakú scénu, musíme mať daných niekoľko údajov: • Súradnice všetkých objektov v scéne • Pozíciu pozorovateľa (v počítačovej grafike sa používa namiesto pozorovateľa pojem kamera). • Priemetňu, teda rovinu, do ktorej premietame • Orientáciu (natočenie) kamery • Pozíciu kamery zadáme jednoducho súradnicami bodu, kde sa kamera nachádza. • Priemetňu zadáme bodom, cez ktorý prechádza a ďalej máme dve možnosti: • Zadáme normálový vektor • Zadáme dvojicu uhlov pre rotáciu zo základnej polohy (0,0,nz) - tzv. zenit a azimut • zenit určuje otočenie v rovine yz vzhľadom na os z a má rozsah 0-180° • azimut určuje otočenie v rovine xy vzhľadom na os x a má rozsah 0-360° • Nakoniec zadáme otočenie kamery v rovine rovnobežnej s priemetňou z zenit x y azimut

  22. Pohľadová transformácia • Takéto nastavenie pohľadu si môžeme predstaviť ako fotografovanie: • najprv sa s fotoaparátom postavíme na určité miesto • môžeme sa poobzerať dookola a nájsť najlepší pohľad (azimut) • vyberieme si, či sa na scénu budeme pozerať rovno (zenit=90°), zhora (zenit=0°) alebo zdola (zenit=180°) • nakoniec môžeme s fotoaparátom ešte otáčať (na šírku, na výšku, šikmo)

  23. Pohľadová transformácia Objekty v scéne, pozícia kamery a priemetne sú vyjadrené v súradniciach, ktoré nazývame svetové. Svetové súradnice sú teda klasický súradnicový systém, ktorý si zvolí užívateľ a v ktorom prebieha modelovanie scény. Na premietanie je však vhodnejší iný súradnicový systém. Premietacia transformácia je najjednoduchšia, ak je priemetňou rovina xy, resp. rovina s ňou rovnobežná a stred má tvar (0,0,Sz) resp. (0,0,0). Zaveďme teda nový súradnicový systém, kde stred premietania bude počiatkom súradnicovej sústavy a osi budú dané normálovým vektorom priemetne a vektorom orientácie kamery. Takýto systém nazývame pohľadové súradnice. http://www.cs.nps.navy.mil/people/faculty/capps/iap/class2/viewing/viewing.html

  24. Pohľadová transformácia • Pohľadová transformácia je transformácia zo svetových do pohľadových súradníc. Pred premietnutím teda urobíme pohľadovú tranformáciu a až potom príde na rad samotné premietanie. • Postup pri pohľadovej transformácii je nasledujúci: • Posunutie, ktoré presunie pozíciu kamery do počiatku súradnicovej sústavy. • Rotácia, ktorá otočí súradnicový systém tak, aby normálový vektor priemetne mal súradnice (0,0,nz), resp. • Otočenie okolo osi z o azimut v zápornom smere • Otočenie okolo osi x o zenit v zápornom smere • Otočenie okolo osi z (v zápornom smere) o uhol, ktorý zodpovedá orientácii kamery. Pri rovnobežnom premietaní postupujeme rovnako, tiež máme danú pozíciu kamery, aj keď premietacie lúče nevychádzajú z nej.

  25. Pohľadový objem • Pri zobrazovaní scény nezobrazujeme všetky objekty, ktoré sa v scéne nachádzajú, ale len tie objekty alebo časti objektov, ktoré sú viditeľné a pre pozorovateľa zaujímavé. • Celú scénu teda orežeme tzv. pohľadovým objemom • Pri stredovom premietaní má pohľadový objem tvar zrezaného ihlana. Hranice ihlana tvorí: • 1. Zorný uhol – obyčajne 40°-60°. Bude to uhol pri vrchole ihlana. • 2. Rovina „far” – táto rovina odstraňuje objekty, ktoré sú od kamery príliš vzdialené. • 3. Rovina „near” – touto rovinou môžeme odstrániť objekty, ktoré sú príliš blízko a bránia vo výhľade. far stred near

  26. Pohľadový objem • Pri rovnobežnom premietaní má pohľadový objem tvar kvádra. Jeho hranice tvorí: • Zorné pole • Rovina far • Rovina near kamera far near

  27. Premietnutie scény • Celý proces zobrazenia scény pozostáva teda z týchto častí: • Pohľadová transformácia (transformácia do premietacej polohy) • Orezanie pohľadovým objemom • Premietnutie na priemetňu Uvedený postup , najmä čo sa týka definície azimutu a zenitu, sa môže v rôznej literatúre a v rôznych softvéroch líšiť. Princíp však zostáva zachovaný.

More Related