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

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

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

Podobné prezentace


Prezentace na téma: "Ú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."— Transkript prezentace:

1 Ú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

2 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

3 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

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

5 Skaláry, Vektory, Matice

6 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)

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

8 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ů

9 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

10 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

11 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: 𝒂⋅𝒃=∑ 𝑎 𝑖 𝒆 𝒊 ⋅∑ 𝑏 𝑖 𝒆 𝒊 = 𝑖,𝑗 𝑎 𝑖 𝑏 𝑗 𝒆 𝒊 ⋅ 𝒆 𝒋 = 𝑖 𝑎 𝑖 𝑏 𝑖

12 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í

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

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

15 𝐴= 𝑎 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í

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

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

18 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

19 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

20 𝒆 𝒊 ⋅ 𝒖 𝒋 = 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 𝑇

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

22 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

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

24 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

25 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

26 Perspektivní projekce
Perspektiva není afinní transformace: 𝒂 ′ =𝑀𝒂= −4 0 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

27 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ě

28 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𝒗⋅𝒗

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

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

31 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

32 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

33 Texturové souřadnice (unwrap)

34 Texturové souřadnice


Stáhnout ppt "Ú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."

Podobné prezentace


Reklamy Google