Úvod do 3D geometrie První přednáška mi vyšla na 90 minut po slajd 31 (3D representace modelů). Ten zbytek jsem pak prolítnul tak za pět minut, ale myslím.

Slides:



Advertisements
Podobné prezentace
Matematická analýza Lineární algebra Diferenciální rovnice
Advertisements

Fakulta životního prostředí Katedra informatiky a geoinformatiky
Operace s vektory.
Název školyIntegrovaná střední škola technická, Vysoké Mýto, Mládežnická 380 Číslo a název projektuCZ.1.07/1.5.00/ Inovace vzdělávacích metod EU.
Stručný přehled OpenGL Jiří Danihelka. Co je OpenGL?  Open Graphics Library  Knihovna pro počítačovou grafiku  Zhruba 120 funkcí  Představuje standard.
Počítačové hry a animace Cvičení 2. (2) Osnova Vstup od uživatele – –Myš – –Klávesnice – –Joystick Content pipeline – –Assety – –Content processory 3D.
Davy v počítačové grafice
Rovnice roviny Normálový tvar rovnice roviny
Analytická geometrie II.
FD ČVUT - Ústav mechaniky a materiálů
Mgr. Martin Krajíc matematika 3.ročník analytická geometrie
Mgr. Martin Krajíc matematika 3.ročník analytická geometrie
Mgr. Martin Krajíc matematika 3.ročník analytická geometrie
Lineární algebra.
Transformace souřadnic 2D a 3D
T.A. Edison Tajemství úspěchu v životě není v tom, že děláme, co se nám líbí, ale, že nacházíme zalíbení v tom, co děláme.
Vektory v geometrii a ve fyzice
 př. 4 výsledek postup řešení Zjistěte, zda jsou vektory a, b, c lineárně závislé. a=(1;2;3), b=(3;0;1), c=(-1;4;5)
Přednáška 2.
Předmět: Počítačová grafika 1 (PGRF1) Přednáška č
Geometrie 3D vidění Perspektivní projekce – popisuje strukturu obrazu pomocí dírkového modelu kamery Souřadnice jsou homogenní.
Když tři rozměry nestačí...
Analytická geometrie pro gymnázia
Popis časového vývoje Pohyb hmotného bodu je plně popsán závislostí polohy na čase. Otázkou je, jak zjistit vektorovou funkci času ~r (t), která pohyb.
Předmět: Počítačová grafika 1 (PGRF1) Přednáška č
ÚHEL DVOU VEKTORŮ Mgr. Zdeňka Hudcová TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČR Poznámky v PDF.
Rastr a transformace v 2D
A. Soustavy lineárních rovnic.
3D CG. Základy geometrie Vertex A (x,z,y,(w)) Faceta(triangle) F(A,B,C) (polygon) F(A,B,C,D), konvexní, nekonvexní Objekt Většinou (0,1) rozměr.
Geometrické znázornění kmitů Skládání kmitů 5.2 Vlnění Popis vlnění
Mgr. Martin Krajíc matematika 3.ročník analytická geometrie
Soustavy souřadnic – přehled
Diferenciální geometrie křivek
Glóbus Glóbus - zmenšený model Země - má své měřítko
Spojení a průnik podprostorů
Matematika pro počítačovou grafiku
Počítačová chemie (5. přednáška)
ZPG -Základy Počítačové Grafiky cvičení 3
Polohové úlohy 2 Mgr. Martin Krajíc matematika 3.ročník analytická geometrie Gymnázium Ivana Olbrachta Semily, Nad Špejcharem 574, příspěvková.
4 Základy - pojmy Střed promítání ,,O“ Hlavní bod snímku ,,H“ Konstanta komory ,,f“ Osa záběru Střed snímku ,,M“ Rámová značka (měřický snímek) Úvod do.
Modelování a výpočty MKP
Mgr. Martin Krajíc matematika 3.ročník analytická geometrie
Mgr. Martin Krajíc matematika 3.ročník analytická geometrie
Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK
Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Jan Kryšpín. Obchodní akademie a Střední odborná škola logistická, Opava, příspěvková.
Jaký je skalární součin vektorů
MASKS © 2004 Invitation to 3D vision. MASKS © 2004 Část 1 Přehled a úvod.
Počítačové hry a animace Cvičení 2. (2) Notová osnova Transformace Kamera Viewporty Quaterniony
SGEO2B Témata závěrečných prací. Ukázka.. Formální stránka práce Titulní strana: škola, název práce, autor, datum Písmo vel. 12, řádkování 1,5 Okraje:
Vzdálenosti v tělesech
Klasifikace a rozpoznávání
Vzdálenost 2 bodů v rovině a v prostoru Autor: RNDr. Jiří Kocourek.
HRW kap. 3, také doporučuji projít si dodatek E
VEKTORY.
Skalární součin 2 vektorů
Repetitorium z fyziky I
Repetitorium z matematiky Podzim 2012 Ivana Medková
Způsoby uložení grafické informace
A. Soustavy lineárních rovnic. y = 2x + 5 2x – y = -5 a 1 x 1 + a 2 x 2 = b a 1 = 2 a 2 = -1 b = - 5 x + y = 5 3x + 3y = 18 x + y = 5 3x + 3y = 15 x +
Moderní poznatky ve fyzice
KIV/ZD cvičení 7 Tomáš Potužák.
TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM
1 Lineární (vektorová) algebra
Třírozměrné modelování
Geografické informační systémy
1. přednáška Úvod, vektorový počet, funkce více proměnných
Matematika pro počítačovou grafiku
Fyzikální veličiny Míry fyzikálních vlastností: X = x [X]
Pravoúhlá soustava souřadnic
ANALYTICKÁ GEOMETRIE Analytická geometrie je část geometrie, která v euklidovské geometrii zkoumá geometrické útvary pomocí algebraických a analytických.
Transkript prezentace:

Úvod do 3D geometrie První přednáška mi vyšla na 90 minut po slajd 31 (3D representace modelů). Ten zbytek jsem pak prolítnul tak za pět minut, ale myslím si, že by se to dalo stihnout líp, kdyby si člověka posípíšil. Možné změny a doplňky: Fourrierova transformace jako příklad skalárního součinu Rozvést vlastní čísla a vlastní vektory

Přednášející Martin Klíma Firmy: Hry: ALTAR ALTAR interactive IDEA games Codemasters Warhorse Studios Hry: Original War UFO: After* série ArmA, Queen’s gambit, Alpha Prime OFP Dragon Rising

Obsah přednášky 1/2 Rekapitulace: Homogenní souřadnice a projekce Vektory, skaláry a matice Sčítání a násobení vektorů Rotace, translace a jiné transformace Kovariantní a kontravariantní souřadnice Homogenní souřadnice a projekce Transformace v homogenních souřadnicích Skládání transformací Projekční matice

Obsah přednášky 2/2 3D model Vrcholy, hrany, strany (vertexy, edže a fejsy) Unwrap Další údaje (např. barvy)

Skaláry, Vektory, Matice

Skaláry, vektory, matice Orientovaný bivektor (červená věc) je vlastně matice (in as much as že taky kóduje rotaci) a objemový element je vlastně skalár (velikost objemu)

Vektorový prostor Vektor: 𝑎 , 𝒂 Komutativnost: 𝒂+𝒃=𝒃+𝒂 Asociativnost: 𝒂+ 𝒃+𝒄 =𝒂+𝒃+𝒄 Nulový prvek: 𝒂+𝟎=𝒂 Inverzní prvek: 𝒂+ −𝒂 =𝟎 Distributivnost: 𝑘 𝒂+𝒃 =𝑘𝒂+𝑘𝒃 Skalár – v angl. Scalar [skejl‘r] – od anglického ‚scale‘, škálovat V našich úvahách se vesměs omezíme na prostor ℝ 3 respektive ℝ 4 , tj. prostor uspořádaných trojic respektive čtveřic reálných čísel.

Dimenze prostoru Lineární kombinace vektorů: Lineární nezávislost: 𝒙=𝑘𝒂+𝑙𝒃+…+𝑚𝒄 𝒙= 𝑖 𝑛 𝑘 𝑖 𝒂 𝒊 Lineární nezávislost: 𝑎 𝑖 ≠ 𝑗 𝑛−1 𝑙 𝑗 𝒂 𝒋 Dimenze prostoru je maximální počet lineárně nezávislých vektorů

Báze V prostoru dimenze n vybereme n lineárně nezávislých vektorů a všechny ostatní vektory vyjádříme jako jejich lineární kombinaci Zvolené vektory nazýváme báze prostoru Kanonická neboli normální báze v ℝ 𝑛 𝒆 𝟏 = 1, 0, 0 … 0 𝒆 𝟐 = 0, 1, 0 … 0 ⋮ 𝒆 𝒏 = 0, 0, 0 … 1 Platí že: 𝒆 𝒊 ⋅ 𝒆 𝒋 = 𝛿 𝑖𝑗 0 𝑖≠𝑗 1 𝑖=𝑗 tj. součin bázového vektoru se sebou samým je 1, a se všemi ostatními je 0 Na definici ‚normálnosti‘ potřebujeme definici skalárního součinu – viz další slide

Skalární součin a metrika prostoru V angličtině zvaný dot product 𝒂⋅𝒃=𝑓 Skalární součin definuje metriku prostoru 𝒂⋅𝒂= 𝒂 2 Též definuje úhel mezi vektory: 𝒂⋅𝒃= 𝒂 𝒃 cos 𝛼 Tato definice nezávisí na dimenzi prostoru Vektory, pro které platí 𝒂⋅𝒃=0 nazýváme ortogonální vektory Vektory, pro které platí 𝒂⋅𝒃=0 a 𝒂 = 𝒃 =1 nazýváme ortonormální vektory

Skalární součin Vlastnosti: Součin dvou vektorů v normální bázi: Komutativnost: 𝒂⋅𝒃=𝒃⋅𝒂 Distributivnost: 𝒂⋅ 𝒃+𝒄 =𝒂⋅𝒃+𝒂⋅𝒄 Násobení skalárem: k𝒂 ⋅ 𝑙𝒃 = 𝑘𝑙 (𝒂⋅𝒃) Součin dvou vektorů v normální bázi: 𝒂⋅𝒃=∑ 𝑎 𝑖 𝒆 𝒊 ⋅∑ 𝑏 𝑖 𝒆 𝒊 = 𝑖,𝑗 𝑎 𝑖 𝑏 𝑗 𝒆 𝒊 ⋅ 𝒆 𝒋 = 𝑖 𝑎 𝑖 𝑏 𝑖

Vektorový součin Nazývaný cross product, definice platí jen v ℝ 3 Zobecnění v ℝ 𝑛 : Ortogonální doplněk k 2 vektorům Vektor kolmý na n – 1 vektorů Ale v ℝ 3 můžeme psát: 𝒂×𝒃= 𝒆 𝟏 𝒆 𝟐 𝒆 𝟑 𝑎 1 𝑎 2 𝑎 3 𝑏 1 𝑏 2 𝑏 3 = = 𝑎 2 𝑏 3 − 𝑎 3 𝑏 3 𝒆 𝟏 + 𝑎 3 𝑏 1 − 𝑎 1 𝑏 3 𝒆 𝟐 + 𝑎 1 𝑏 2 − 𝑎 2 𝑏 1 𝒆 𝟑 𝒂×𝒃 = 𝒂 𝒃 sin 𝛼 Vektor takto získaný není normální vektor, ale kontravariantní

Transformace Druhy Identita Translace Rotace Isotropní zmenšení/zvětšení (změna měřítka) Anisotropní změna měřítka Shear (zkosení)

Zapsání transformace Obecná transformace Lineární transformace 𝒂 ′ =𝑓 𝒂 Lineární transformace 𝑎 𝑖 ′ =∑ 𝑐 𝑖𝑗 𝑎 𝑗 𝒂 ′ =𝑀𝒂

𝐴= 𝑎 11 𝑎 12 ⋯ 𝑎 1𝑛 𝑎 21 𝑎 22 … 𝑎 2𝑛 ⋮ ⋮ ⋱ ⋮ 𝑎 𝑛1 𝑎 𝑛2 … 𝑎 𝑛𝑛 Matice Budeme se zabývat jen čtvercovým maticemi n × n: 𝐴= 𝑎 11 𝑎 12 ⋯ 𝑎 1𝑛 𝑎 21 𝑎 22 … 𝑎 2𝑛 ⋮ ⋮ ⋱ ⋮ 𝑎 𝑛1 𝑎 𝑛2 … 𝑎 𝑛𝑛 Násobení matic: 𝐴𝐵= 𝒂 𝟏 𝒂 𝟐 ⋮ 𝒂 𝒏 𝒃 𝟏 𝒃 𝟐 ⋯ 𝒃 𝒏 = 𝒂 𝟏 ⋅ 𝒃 𝟏 𝒂 𝟏 ⋅ 𝒃 𝟐 ⋯ 𝒂 𝟏 ⋅ 𝒃 𝒏 𝒂 𝟐 ⋅ 𝒃 𝟏 𝒂 𝟐 ⋅ 𝒃 𝟐 ⋯ 𝒂 𝟐 ⋅ 𝒃 𝒏 ⋮ ⋮ ⋱ ⋮ 𝒂 𝒏 ⋅ 𝒃 𝟏 𝒂 𝒏 ⋅ 𝒃 𝟐 ⋯ 𝒂 𝒏 ⋅ 𝒃 𝒏 Násobení není komutativní Stejně tak skládání transformací není komutativní

Základní maticové identity Inverzní matice: 𝐴 𝐴 −1 = 𝐴 −1 𝐴=𝐼 Transponovaná matice: 𝐴𝒙=𝒙 𝐴 𝑇 Pro čtvercové matice A, B platí: 𝐴 𝐵𝒙 = 𝐴𝐵 𝒙 𝐴𝐵 𝑇 = 𝐵 𝑇 𝐴 𝑇 𝐴𝐵 −1 = 𝐵 −1 𝐴 −1 𝐴 −1 𝑇 = 𝐴 𝑇 −1

Matice 3×3 Transponovaná matice Determinant Inverzní matice 𝐴 𝑇 = 𝒂 𝟏 𝒂 𝟐 𝒂 𝟑 𝑇 = 𝒂 𝟏 𝒂 𝟐 𝒂 𝟑 Determinant 𝐷 𝐴 = 𝒂 𝟏 ⋅ 𝒂 𝟐 × 𝒂 𝟑 = 𝒂 𝟑 ⋅ 𝒂 𝟏 × 𝒂 𝟐 … Inverzní matice 𝐴 −1 = 1 𝐷 𝑎 2 × 𝑎 3 𝑎 3 × 𝑎 1 𝑎 1 × 𝑎 2

Transformace Lineární Podobnosti Eukleidovské Anisotropní změna měřítka Zrcadlení Zkosení Zachovává rovnoběžky Podobnosti Isotropní změna měřítka Zachovává úhly Eukleidovské Rotace Identita Zachovává úhly a vzdálenosti

Transformace Rotace Změna měřítka Řetězení transformací D = 1 Matice jsou ortonormální Osa rotace je vlastní vektor matice Změna měřítka Hodnoty jenom na diagonále Řetězení transformací Asociativita násobení zaručuje, že je možné vynásobit matice mezi sebou

𝒆 𝒊 ⋅ 𝒖 𝒋 = 0, 𝑖≠𝑗 &1, 𝑖=𝑗 ⟹ 𝒆 𝒊 = 𝒖 𝒋 × 𝒖 𝒌 Transformace normál Jak zachovat úhel mezi vektory stejný i po transformaci? 𝒂⋅𝒃= 𝑀𝒂 ⋅ 𝑁𝒃 𝑀= 𝐞 𝟏 𝐞 𝟐 𝐞 𝟑 ;𝑁= 𝐮 𝟏 𝐮 𝟐 𝐮 𝟑 𝑀𝒂= 𝑎 1 𝒆 𝟏 + 𝑎 2 𝒆 𝟐 + 𝑎 3 𝒆 𝟑 ;… 𝑀𝒂 ⋅ 𝑁𝒃 = 𝑎 1 𝑏 1 𝒆 𝟏 ⋅ 𝒖 𝟏 + 𝑎 1 𝑏 2 𝒆 𝟏 ⋅ 𝒖 𝟐 +…+ 𝑎 2 𝑏 2 𝒆 𝟐 ⋅ 𝒖 𝟐 +… Tudíž všechny smíšené členy musí být nulové: 𝒆 𝒊 ⋅ 𝒖 𝒋 = 0, 𝑖≠𝑗 &1, 𝑖=𝑗 ⟹ 𝒆 𝒊 = 𝒖 𝒋 × 𝒖 𝒌 𝑀 −1 = 𝑁 𝑇 𝑁= 𝑀 −1 𝑇

Translace Translace je přičtení vektoru: 𝒂 ′ =𝒂+𝒕 Translace není lineární transformace, nelze ji vyjádřit maticí 3×3

Homogenní souřadnice Přechod z ℝ 3 do ℝ 4 Zavedeme čtvrtou souřadnici w: 𝒂=(𝑥, 𝑦, 𝑧, 𝑤) A definujeme přechod z homogenních souřadnic jako: 𝒂= 𝑥 𝑤 , 𝑦 𝑤 , 𝑧 𝑤 Volba w není jednoznačná, až na další bude 1

Translace v homogenních souřadnicích Dá se jednoduše zapsat jako: 𝒂 ′ =𝑀𝒂= 1 0 0 𝑡 𝑥 0 1 0 𝑡 𝑦 0 0 1 𝑡 𝑧 0 0 0 1 𝑎 𝑥 𝑎 𝑦 𝑎 𝑧 1 = 𝑎 𝑥 + 𝑡 𝑥 𝑎 𝑦 + 𝑡 𝑦 𝑎 𝑧 + 𝑡 𝑧 1

Transformace v homogenních souřadnicích L T Transformační matice: L: lineární transformace T: translace 0, 1: pro afinní matice je tento řádek vždy (0, 0, 0, 1) 1

Skládání transformací Prostory objektů: Object space: Relativně vůči počátku objektu World space Translace a rotace objektu vůči počátku světa Camera space Kamera je vždy v počátku Screen space Perspektivní transformace x, y souřadnice + z-buffer

Perspektivní projekce Perspektiva není afinní transformace: 𝒂 ′ =𝑀𝒂= 1 0 0 0 0 1 0 0 0 0 3 −4 0 0 −1 0 𝑎 𝑥 𝑎 𝑦 𝑎 𝑧 1 = 𝑎 𝑥 𝑎 𝑦 3𝑎 𝑧 −4 − 𝑎 𝑧 ⇒ − 𝑎 𝑥 𝑎 𝑧 − 𝑎 𝑦 𝑎 𝑧 − 3𝑎 𝑧 −4 𝑎 𝑧 Zobrazuje frustum (komolý jehlan) do krychle se středem v počátku a délce hrany 2 Right = Top = 1 Near = 1 Farr = 2 Body, kde a_x < a_z se zobrazi, podobne pro a_y. Cim je a_z vetsi, tim se blizi k (0,0) Pro a_z = 1 bude z-buffer 1, pro 2 bude -1

Příklad: bod a rovina Rovnice roviny v 3D: 𝑎𝑥+𝑏𝑦+𝑐𝑧+𝑑=0 𝒏⋅𝒂+𝑘=0 Je bod P napravo nebo nalevo od roviny? 𝒏⋅ 𝑷+𝑡𝒏 =−𝑘 𝑡=− 𝑘+𝒏⋅𝑷 𝒏⋅𝒏 t < 0: jsme ve směru n, t > 0: jsme na druhé straně

Příklad: Kolize dvou koulí Mějme dvě koule o poloměrech 𝑟 1 a 𝑟 2 , s počáteční polohou 𝑷 𝟏 a 𝑷 𝟐 , a s rychlostmi 𝒗 𝟏 a 𝒗 𝟐 . Pak požadujeme: ( 𝑷 𝟏 +𝑡 𝒗 𝟏 )−( 𝑷 𝟐 +𝑡 𝒗 𝟐 ) ≤ 𝑟 1 + 𝑟 2 𝑷 𝟏 − 𝑷 𝟐 =𝑷, 𝒗 𝟏 − 𝒗 𝟐 =𝒗, 𝑟 1 + 𝑟 2 =𝑅: 𝑷+𝑡𝒗 ≤𝑅 𝑷⋅𝑷+2𝑡𝑷⋅𝒗+ 𝑡 2 𝒗⋅𝒗= 𝑅 2 𝑡 0,1 = −2𝑷⋅𝒗± 𝑷⋅𝒗 2 −4𝒗⋅𝒗(𝑷⋅𝑷− 𝑅 2 ) 2𝒗⋅𝒗

Příklad: Kolize dvou koulí ( 𝑡 𝑐 𝒗−𝑷)⋅𝒗=0 𝑡 𝑐 = 𝑷⋅𝒗 𝒗⋅𝒗

Příklad: Lineární kombinace vektorů Lineární nezávislost vektorů: Determinant matice Lineární kombinace: 𝒂= 𝑥 1 𝒖+ 𝑥 2 𝒗+ 𝑥 3 𝒘 𝒂= 𝒖 𝒗 𝒘 𝑥 1 𝑥 2 𝑥 3 =𝑀𝒙 𝒙= 𝑀 −1 𝒂

3D representace objektů Mesh: Seznam vertexů Seznam stran (faces) Každá strana má seznam vertexů (po směru hodinových ručiček/clockwise) 16 bitový index Defaultní triangle list Datové struktury vertexů: Triangle strip Triangle list Triangle fan

Informace uložené ve vertexu Poloha Normála Tangenta Barva Texturové (uv) souřadnice Váhy a indexy kostí …další speciální informace Celkem max. 255 bytů na vertex

Texturové souřadnice (unwrap)

Texturové souřadnice