Transformace (2) Petr Felkel Katedra počítačové grafiky a interakce, ČVUT FEL místnost KN:E-413 (Karlovo náměstí, budova E)

Podobné dokumenty
Struktura scény Transformace (2)

Správnost vztahu plyne z věty o rovnosti úhlů s rameny na sebe kolmými (obr. 13).

1. Číselné obory, dělitelnost, výrazy

Hardware pro počítačovou grafiku NPGR019

Úvod Typy promítání Matematický popis promítání Implementace promítání Literatura. Promítání. Pavel Strachota. FJFI ČVUT v Praze

Připravil: David Procházka. Projekce

Plochy počítačové grafiky

GRADIENTNÍ OPTICKÉ PRVKY Gradient Index Optical Components

7. Analytická geometrie

Obsah. skentest. 1. Úvod. 2. Metoda výpočtu Základní pojmy

12. N á h o d n ý v ý b ě r

Komplexní čísla. Definice komplexních čísel

množina všech reálných čísel

O Jensenově nerovnosti

Ústav fyzikálního inženýrství Fakulta strojního inženýrství VUT v Brně GEOMETRICKÁ OPTIKA. Přednáška 10

1. ZÁKLADY VEKTOROVÉ ALGEBRY 1.1. VEKTOROVÝ PROSTOR A JEHO BÁZE

1.7.4 Těžiště, rovnovážná poloha

Pravděpodobnostní modely

Matematika 1. Katedra matematiky, Fakulta stavební ČVUT v Praze. středa 10-11:40 posluchárna D / 13. Posloupnosti

4.5.9 Vznik střídavého proudu

( + ) ( ) ( ) ( ) ( ) Derivace elementárních funkcí II. Předpoklady: Př. 1: Urči derivaci funkce y = x ; n N.

Laboratorní práce č. 10 Úloha č. 9. Polarizace světla a Brownův pohyb:

Matematika NÁRODNÍ SROVNÁVACÍ ZKOUŠKY BŘEZNA 2018

Matematika NÁRODNÍ SROVNÁVACÍ ZKOUŠKY BŘEZNA 2018

n=1 ( Re an ) 2 + ( Im a n ) 2 = 0 Im a n = Im a a n definujeme předpisem: n=1 N a n = a 1 + a a N. n=1

základním prvkem teorie křivek v počítačové grafice křivky polynomiální n

23. Mechanické vlnění

Transformace (v OpenGL) příklady a knihovna GLM

Matematika NÁRODNÍ SROVNÁVACÍ ZKOUŠKY ÚNORA 2019

Téma 2 Přímková a rovinná soustava sil

Pracovní listy PRAVOÚHLÁ AXONOMETRIE

Popisná statistika - zavedení pojmů. 1 Jednorozměrný statistický soubor s kvantitativním znakem

Přijímací řízení akademický rok 2013/2014 Bc. studium Kompletní znění testových otázek matematika

Přijímací řízení akademický rok 2012/2013 Kompletní znění testových otázek matematické myšlení

Matematika přehled vzorců pro maturanty (zpracoval T. Jánský) Úpravy výrazů. Binomická věta

Souřadnicové prostory

OKRUŽNÍ A ROZVOZNÍ ÚLOHY: OBCHODNÍ CESTUJÍCÍ. FORMULACE PŘI RESPEKTOVÁNÍ ČASOVÝCH OKEN

Téma 11 Prostorová soustava sil

Matematika I. Název studijního programu. RNDr. Jaroslav Krieg České Budějovice

3. Lineární diferenciální rovnice úvod do teorie

Vytápění BT01 TZB II - cvičení

1.2. NORMA A SKALÁRNÍ SOUČIN

Předmět: SM 01 ROVINNÉ PŘÍHRADOVÉ KONSTRUKCE

6 Intervalové odhady. spočteme aritmetický průměr, pak tyto průměry se budou chovat jako by pocházely z normálního. nekonečna.

DIFERENCIÁLNÍ POČET FUNKCE JEDNÉ PROMĚNNÉ. 1) Pojem funkce, graf funkce

Geometrická optika. Zákon odrazu a lomu světla

Matematika NÁRODNÍ SROVNÁVACÍ ZKOUŠKY ÚNORA 2018

Analýza a zpracování signálů. 4. Diskrétní systémy,výpočet impulsní odezvy, konvoluce, korelace

7.2.4 Násobení vektoru číslem

P R O M Í T Á N Í. rovina π - průmětna vektor s r - směr promítání. a // s r, b// s r,

A[a 1 ; a 2 ; a 3 ] souřadnice bodu A v kartézské soustavě souřadnic O xyz

TĚŽIŠTĚ A STABILITA. Těžiště tělesa = bod, kterým stále prochází výslednice tíhových sil všech jeho hmotných bodů, ať těleso natáčíme jakkoli

Transformace (v OpenGL)

Pružnost a pevnost. 9. přednáška, 11. prosince 2018

Lineární programování

Matematika pro real-time grafiku

p = 6. k k se nazývá inverze v permutaci [ ] MATA P7 Determinanty Motivační příklad: Řešte soustavu rovnic o dvou neznámých: Permutace z n prvků:

11. přednáška 16. prosince Úvod do komplexní analýzy.

1.1 Napište středovou rovnici kružnice, která má střed v počátku soustavy souřadnic a prochází bodem

Funkce. RNDr. Yvetta Bartáková. Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou

Eukleidovský prostor a KSS Eukleidovský prostor je bodový prostor, ve kterém je definována vzdálenost dvou bodů (metrika)

Matematika 1 MA1. 1 Analytická geometrie v prostoru - základní pojmy. 4 Vzdálenosti. 12. přednáška ( ) Matematika 1 1 / 32

BSI. Trámové botky s vnitřními křidélky Trojrozměrná spojovací deska z uhlíkové oceli s galvanickým zinkováním BSI - 01 ÚČINNÉ ODKLONĚNÝ OHYB

Číslicové filtry. Použití : Analogové x číslicové filtry : Analogové. Číslicové: Separace signálů Restaurace signálů

2. Vyplňování. Transformace.

IAJCE Přednáška č. 12

1.1. Definice Reálným vektorovým prostorem nazýváme množinu V, pro jejíž prvky jsou definovány operace sčítání + :V V V a násobení skalárem : R V V

Matematika I, část II

Předmět BROB - Robotika. 4 Kvaternionová matematika

Kruhový diagram. 1. Z odečtených hodnot pro jmenovité primární napětí nakreslete kruhový diagram. Asynchronní motor. P n =2kW n =905ot/min

stručná osnova jarní semestr podzimní semestr

Závislost slovních znaků

ARITMETICKÉ POSLOUPNOSTI VYŠŠÍCH ŘÁDŮ

Důkazy Ackermannova vzorce

Geometrické transformace pomocí matic

Abstrakt. Co jsou to komplexní čísla? K čemu se používají? Dá se s nimi dělat

ZÁKLADNÍ POJMY OPTIKY

Prorážka DOC. ING. PAVEL HÁNEK, CSC. Uvedené materiály jsou doplňkem přednášek předmětu 154GP10

= + nazýváme tečnou ke grafu funkce f

Momenty setrvačnosti a deviační momenty

Rovinné přetvoření. Posunutí (translace) TEORIE K M2A+ULA

Obecná soustava sil a momentů v prostoru

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Iterační metody řešení soustav lineárních rovnic

6. Posloupnosti a jejich limity, řady

obecná rovnice kružnice a x 2 b y 2 c x d y e=0 1. Napište rovnici kružnice, která má střed v počátku soustavy souřadnic a prochází bodem A[-3;2].

1.3. POLYNOMY. V této kapitole se dozvíte:

stručná osnova jarní semestr podzimní semestr

Matice. Je dána matice A R m,n, pak máme zobrazení A : R n R m.

Ing. Vladimíra Michalcová, Ph.D. Katedra stavební mechaniky (228)

Hierarchický model Josef Pelikán CGG MFF UK Praha. 1 / 16

Těžiště a moment setrvačnosti Nalezení práce polohy těžiště a momentu setrvačnosti vůči zadané ose u homogenních těles v třírozměrném prostoru.

Mgr. Tomáš Kotler. I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17

pro bakalářský studijní program Ekonomika a management

Matematika 1. Ivana Pultarová Katedra matematiky, Fakulta stavební ČVUT v Praze. středa 10-11:40 posluchárna D Posloupnosti

Napěťový vektor 3d. Díky Wikipedia za obrázek. n n n

ROTAČNÍ PLOCHY. 1) Základní pojmy

jsou reálná a m, n jsou čísla přirozená.

1 Základy Z-transformace. pro aplikace v oblasti

UNIVERZITA PALACKÉHO V OLOMOUCI PŘÍRODOVĚDECKÁ FAKULTA

Transkript:

Trasormace (2) Petr Felkel Katedra počítačové graiky a iterakce, ČVUT FEL místost KN:E-43 (Karlovo áměstí, budova E) E-mail: elkel@el.cvut.cz S použitím materiálů Bohuslava Hudce, Jaroslava Sloupa a Vlastimila Havraa Posledí změa: 3.5.26

Osova Opakováí trasormací z miula Trasormace (2) Projekce a viewport Homogeí souřadice Rotace podle Eulerových úhlů a Gimbal lock PGR 2

Logické kroky při trasormaci vrcholů 3D 2D = vrchol Modelovací a pohledová trasormace Modelovací Trasormace, Pohledová trasormace, Projekčí trasormace + Ořezáí (clippig) Perspektiví děleí Trasormace záběru (Viewport) modelovací souřadice = světové souřadice = souřadice kamery (oka) PGR ořezávácí souřadice Normalizovaé souřadice zařízeí = = = maticově Souřadice oka 3

Opakováí: Souřadicové soustavy v PG - daá, pozice objektů i kamery se deiuje vůči í = objekt ěkam umístěý do světa = druhý objekt umístěý jiam do světa, modelové matice matice přechodu z souřadicové soustavy světa do lokálí soustavy objektu (lokálí = globálí * ) Převádí lokálí souřadice modelu do globálích. = soustava kamery =pohledová matice = = = = PGR 4

Souřadice bodu objektu v růzých soustavách souřadic Souřadice bodu objektu v růzých souř. soustavách: y Rovost bází: = = = = x = = = Dvě souřadé soustavy, lišící se počátky a směry os Průměty bázových vektorů do bází PGR 5

Trasormace vzhledem k bázi. Trasormace maticí M vzhledem k bázi = = Trasormace vzhledem: k lokálí soustavě objektu ke světovým souřadicím k soustavě souřadic kamery PGR 6

Trasormace vzhledem k bázi / soustavě souřadic V soustavě : V soustavě : Zpět vůči :, = = = PGR 7

Aalogie s otoaparátem B. Beeš PGR 8

Vizualizace trasormací - zopakováí clip space ormalized space PGR 9

Projekčí trasormace 3D 2D vrchol x y z w modelovací souřadice Modelovací a pohledová trasormace modelovací Trasormace světové souřadice Pohledová trasormace souřadice kamery (oka) Projekčí trasormace + Ořezáí (clippig) M V P ořezávací souřadice Perspektiví děleí Normalizovaé souřadice zařízeí Trasormace záběru (Viewport) Souřadice oka PGR

Projekčí trasormace - P deiuje tvar pohledového objemu (viewig volume, rustrum) pohledový objem komolý jehla určuje, jak se objekt pomítá a průmětu (perspektiví či paralelí projekce) VS deiuje polohu ořezávacích rovi, tj., které objekty či jejich části budou ořízuty (clippig plaes) ixí část zadává se v souřadé soustavě kamery OpeGL umožňuje jakoukoliv projekci deiovaou uživatelem projekce obecě NENÍ aií trasormací (projekčí matice emá posledí řádek ve tvaru ) uté jsou ukce vytvářející matice pro ortograickou projekci (paralelí) perspektiví projekci PGR

Základ paralelího zobrazeí (ortho) viewer Projectio plae (, ) (y, ) = ear plae PGR 2

Základ perspektivího zobrazeí Projectio plae (, ) (y, ) viewer Similar triagles: PGR 3

Paralelí projekce mat4 glm::ortho( loat let, loat right, loat bottom, loat top, loat ear, loat ar); vytvoří matici pro paralelí promítáí pohledový objem je kvádr [let, bottom, *] a [right, top, *] = body a blízké a vzdáleé ořezávací roviě (* = ear a ar), jsou mapováy do dolího levého a pravého horího rohu ormátu (viewport) průměta PGR 4

Perspektiví projekce mat4 glm::rustum( loat let, loat right, loat bottom, loat top, loat ear, loat ar); vytvoří matici pro perspektiví promítáí pohledový objem je komolý jehla průměta podstavy rovoběžé, kolmé a vektor pohledu meší podstava = průměta objekty blíže zvětšeé (zaberou relativě větší část pohledového objemu) PGR 5

Perspektiví projekce mat4 glm::perspective ( loat ovy, loat aspect, loat ear, loat ar ); jiý způsob deiice parametrů pro perspektiví matici vytvoří matici pro symetrické perspektiví promítáí ovy = úhel záběru ve směru y, rozsah., spolu s ear určí h aspect je poměr šířky ku výšce pohledového objemu (w / h) w = aspect * h; hodoty ear a ar musí být kladé (ear >!!!) průměta PGR 6

Homogeí souřadice bod je reprezetová svými souřadicemi P = [x, y, z] t v poč. graice používáme homogeí souřadice P = [x, y, z, w] t Kartézské souřadice homogeí souřadice P = [x, y, z] t zvolit w P = [w.x, w.y, w.z, w] t příklad: bod v kartézských souřadicích [2, 3, 5] t. Jaké jsou jeho homogeí souřadice? [w.2, w.3, w.5, w] t aw apř. [2, 3, 5, ] t, [4, 6,, 2] t, atd. homogeí souřadice Kartézské souřadice P = [x, y, z, w] t P = [x/w, y/w, z/w] t w, wr příklad : bod v homogeích souřadicích [9, 3, 2, 3] t. Jaké jsou jeho kartézské souřadice? P = [9/3, 3/3, 2/3] t = [3,, 4] t Pro body volíme w = PGR 7

Homogeí souřadice ve 2D Geometrická iterpretace ve 2D: bodům s homogeími souřadicemi P = [w.x, w.y, w.z, w] t,w Tvoří přímku bez počátku, která je celá obrazem bodu P = [x, y, z] t x p x P Výhody homogeích souřadic Aií trasormace i projekce lze zapsat jedou maticí (ve 3D maticí 4x4) Pro body volíme w = Skládáí trasormací jako ásobeí matic Pro vektory je w = Kompaktí reprezetace bodů (w ) a vektorů (w = ) O k w [x p, y p,] t [kx p, ky p, k] t y p [w x p, w y p, w] t PGR 8 y

Matrices ad trasormatios h Liear trasormatio matrix Aie trasormatio matrix Perspective trasormatio matrix PGR 9

Trasormatios [Bitter APG] PGR 2

Odvozeí paralelí projekčí matice (Ortho) PGR l r l l r l r x x l r l x x x x l r l x 2 2 2 2 ) ( ) ( Pricip: Zachová x a y. Igoruje z Plus ormalizace souřadic: itervaly l, rt, b,, x y z l r l r x l r x 2 b t b t y b t y 2 z Hloubku ale potřebujeme a určeí viditelosti x x r l d z y y x x M ' ' ' d 2

Odvozeí paralelí projekčí matice (Ortho) PGR 22 Odvozeí hloubky z ear a ar se zapisují v ortho kladě (vzdáleost od oka), jsou ale a záporé ose z, proto ve vzorcích záporé z z z z z z z z 2 2 2 2 ) ( ) ( ) ( ) ( x y z z z l r l r x l r x 2 b t b t y b t y 2 z z 2 a, pokud : Platí, b t r l

Odvozeí paralelí projekčí matice (Ortho) Výsledá matice y z x 2 + 2 + 2 + x y z 2 r l x r l r l 2 t b yx t b t b 2 z Platí, pokud : l r, t b a PGR 23

Základ perspektivího zobrazeí Projectio plae (, ) (y, ) viewer Similar triagles: PGR 24

Odvozeí perspektiví projekčí matice (Frustum) Odvozeí X a Y Dosadíme = y = = z Plus ormalizace souřadic: x y r l 2 x r l r l t b 2 y t b t b Odvozeí dále: z x y 2 r l x r l z r l 2 t b y t b z t b 2 ( z).( z).( z) ( z) w z zx z y zz 2 r l x z r l r l 2 t b y z t b t b 2 PGR 26 z

Odvozeí perspektiví projekčí matice (Frustum) Mapováí hloubky Iterpoluje se /z Proto ve tvaru z z A B z Plus ormalizace souřadice z Dosadíme - -, - A A B a B - - A 2 B 2 ( z) z y Odvozeí A a B a dalším slajdu.( z) zz z 2 PGR 27

Odvozeí perspektiví projekčí matice (Frustum) PGR 28 B - A a / B - A Odvozeí A a B: Dosadíme - -, - A A -A A ---- ---------- B - A - B A 2 2 B B B A A B 2 2 2 2 B z A z

Odvozeí perspektiví projekčí matice (Frustum) Výsledá matice y Platí pokud : l r, t b a z x 2 + 2 + + 2 zx z y zz w z 2 r l x z r l r l 2 t b y z t b t b 2 PGR 29 z

Perspektiví děleí /w 3D 2D vrchol x y z w modelovací souřadice Modelovací a pohledová trasormace modelovací Trasormace světové souřadice Pohledová trasormace souřadice kamery (oka) Projekčí trasormace + Ořezáí (clippig) ořezové souřadice Perspektiví děleí Normalizovaé souřadice zařízeí Trasormace záběru (Viewport) Souřadice oka PGR 3

Divisio by w Matrix multiplicatio (rom eye to clip coordiates) = 2 + 2 + + 2 Divisio by (rom clip to ormalized coordiates) = divisio by = / / / PGR 3

Trasormace záběru 3D 2D vrchol x y z w modelovací souřadice Modelovací a pohledová trasormace modelovací Trasormace světové souřadice Pohledová trasormace souřadice kamery (oka) Projekčí trasormace + Ořezáí (clippig) ořezové souřadice Perspektiví děleí Normalizovaé souřadice zařízeí Trasormace záběru (Viewport) Souřadice oka PGR 32

Trasormace pracoviště (Viewport) Formát (viewport) = obdélíková oblast oka, do které se mapuje průměta (= promítací rovia) void glviewport( GLit x, GLit y, GLsizei width, GLsizei height); [x, y] je levý dolí roh ormátu (viewport), width a height je šířka a výška ormátu v souřadicích oka v pixelech pro kihovu GLUT se astavuje v callback ukci reshape poměr stra ormátu by měl být stejý jako poměr stra průměty jiak zkresleí obrazu GLUT: implicitě a celé oko (,,w, h) PGR 33

Trasormace pracoviště (Viewport) Normalizovaé souřadice zařízeí Souřadice a obrazovce - - - x y w Viewport scree h = 2 + =+ 2 = h 2 + = 2 + + 2 =+ h 2 z w a viditelost (Z-buer) PGR 34

Trasormace pracoviště (maticově) Normalizovaé souřadice zařízeí - - - 2 + 2 h 2 + h 2 + 2 2 Souřadice a obrazovce x y w Viewport =+ 2 =+ h 2 scree PGR 35 h z w a viditelost (Z-buer)

Trasormace pracoviště (Viewport) Dotaz a aktuálí ormát (trasormaci pracoviště) it ormat[4]; glgetitegerv( GL_VIEWPORT, ormat); Výzam: x, y, w, h x = ormat[], y = ormat[], w = ormat[2], h = ormat[3], PGR 36

Zachováí poměru stra obrazu aby zůstala kružice kulatá v proceduře reshape(it w, it h) registrováa jako Callback glutreshapefuc(reshape); Dva způsoby a) zmešeím ormátu b) protažeím projekce PGR 37

Zachováí poměru stra obrazu a) zmešeím ormátu - zbude evyužitá plocha oka i( w > h ) // oko široké glviewport((w-h)/2,, h, h); else // oko vysoké glviewport(, (h-w)/2, w, w); zkresleé ezkresleé zkresleé ezkresleé Nevyužitá plocha glviewport(,, w, h); x, y, w, h glviewport((w-h)/2,, h, h); w > h Nevyužitá plocha PGR w <= h 38

Zachováí poměru stra obrazu b) protažeím projekce (zvětší se pohledový objem) GLloat aspect = (GLloat) w / (GLloat) h; i( aspect >. ) // w > h => oko široké m = glm::ortho(-.5*aspect,.5*aspect, -.5,.5, -, ); else // let, right, bottom, top, ear, ar m = glm::ortho(-.5,.5, -.5/aspect,.5/aspect, -, ); glm::rustum(-.5,.5, -.5/aspect,.5/aspect,., ); Obdobě: glm::perspective(6., aspect,., ); zkresleé ezkresleé w > h => oko široké PGRlet*aspect right*aspect 39

Aspect aspect = w / h glm::perspective(6., aspect,., ); aspect = 2.7 aspect =.5 PGR 4

Rotace podle Eulerových úhlů a Gimbal lock PGR 4

Rotace dle Eulerových úhlů Eulerovy úhly = pitch-yaw-roll (výška, kurs, rotace) komplexí otočeí rozdělíme a otočeí dle os X, Y, Z X Y Z cos() -si() si() cos() cos() si() -si() cos() cos() -si() si() cos() Rotate(,,, ) Rotate(,,, ) Rotate(,,, ) PGR 42

Základí orietace Pitch-Yaw-Roll [NASA] PGR 43

Základí orietace Pitch-Yaw-Roll Pitch Yaw Roll Výškovky Kormidlo Křidélka [NASA] PGR 44

Gimbal [ džimbl] otočá podpěra -Tři gimbals spojeé dohromady + závaží či setrvačík -Původí použití u gyroskopů a upevěí kompasů, kame a skleic a lodích od atiky. [Wikipedia] PGR 45

Rotace a Gimbal lock [ džimbl lok] Eulerovy úhly = pitch-yaw-roll (výška, kurs, rotace) komplexí otočeí rozdělíme a otočeí podle os X, Y, Z dělá se postupě => otočeím druhé osy v hierarchii o 9 splyou osy a dojde ke ztrátě jedoho stupě volosti (gimbal lock) y y y x x 2 3 x z z z Pořadí rotací v programu: Rotate(a,,, ) // X 3 Rotate(9,,, ) // Y 2 Rotate(c,,, ) // Z Z splye s X Rotace kolem X s modelem otočeým o 9 dle Y dělá totéž, co rotace kolem Z PGR 46

Ztráta jedoho stupě Gimbal Lock [Wikipedia] [http://www.ho-emde.de/~homa/gimbal9822.pd] PGR 47

Vysvětleí PGR 48

Vysvětleí Compositio[rax, r9y, rbz] = rax * r9y * rbz = Otočeím o 9º okolo osy Y (prostředí při skládáí trasormací) se ztratí možost otáčeí okolo osy X (osa X splye s osou Z). Místo toho se otáčí okolo osy Z původího modelu. Výsledý úhel otočeí vzike jako součet požadovaých úhlů otočeí kolem X a Z PGR 49

Jak ezpůsobit gimbal lock Rotaci podle obecé osy (místo skládáí rotací podle Eulerových úhlů) Používat kvaterioy (quaterios) PGR 5