Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Geometrické transformácie a premietanie

Podobné prezentace


Prezentace na téma: "Geometrické transformácie a premietanie"— Transkript prezentace:

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 2D transformácie 2. Otočenie x=r.cos (x,y) y=r.sin x’=r.cos(+)
=r.cos.cos-r.sin.sin y’=r.sin(+) =r.sin.cos+r.cos.sin (x,y) (x’,y’) S=(Sx,Sy) 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 2D transformácie 3. Škálovanie (x,y) (x’,y’) (x’,y’) (x,y)
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 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 aX+bY+c=0 (x,y) (x’,y’) n=(a,b) d P=(Px,Py) Vzorec pre preklopenie dostaneme posunutím bodu o vhodnú dlžku (-2d) v smere normály na os:

9 2D transformácie 5. Skosenie (x1,y1)=(x1’,y1’) (x2,y2) (x3,y3)
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í. Otáčanie proti smeru hodinových ručičiek v smere hodinových ručičiek okolo osi x x’=x y’=y.cos - z.sin z’=y.sin + z.cos y’=y.cos + z.sin z’=-y.sin + z.cos okolo osi y x’=x.cos - z.sin y’=y z’=x.sin + z.cos x’=x.cos + z.sin y’=y z’=-x.sin + z.cos okolo osi z x’=x.cos - y.sin y’=x.sin + y.cos z’=z x’=x.cos + y.sin y’=-x.sin + y.cos

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 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. premietacie lúče priemetňa priemety

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 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ého vyjadrenia do rovnice roviny dostaneme t: (Sx,Sy,Sz) (x,y,z) (x’,y’,z’) L

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.

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ý.


Stáhnout ppt "Geometrické transformácie a premietanie"

Podobné prezentace


Reklamy Google