Počítačové hry a animace Cvičení 2. (2) Notová osnova Transformace Kamera Viewporty Quaterniony

Slides:



Advertisements
Podobné prezentace
Normalizace Řada analytiků se mylně domnívá, že pro každý objekt existuje jedno jediné univerzálně použitelné nejlepší řešení bez ohledu na řešený problém.
Advertisements

BU51 Systémy CAD RNDr. Helena Novotná.
ENERGIE CO VŠECHNO SKRÝVÁ….
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Operace s vektory.
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
Algoritmy I Cvičení č. 5.
Přednáška 12 Diferenciální rovnice
FD ČVUT - Ústav mechaniky a materiálů
Lineární algebra.
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.
Matice D.: Matice je systém m .n čísel, uspořádaný do m řádků a n sloupců. Je to jenom symbol, nemá to žádnou číselnou hodnotu! Označení: řádek, řádkový.
Matice distancí v mnohorozměrné analýze. Distanční matice – proč se objevují? Vzdálenosti mezi objekty v terénu Vzdálenosti mezi taxony ve fylogenetickém.
EKO/GISO – Modely prostorových dat.  Mnoho definic - jedno mají společné – Gisy pracují s prostorovými daty  Minimální GIS vždy spojuje databázi, prostorové.
3. KINEMATIKA (hmotný bod, vztažná soustava, polohový vektor, trajektorie, rychlost, zrychlení, druhy pohybů těles, pohyby rovnoměrné a rovnoměrně proměnné,
Předmět: Počítačová grafika 1 (PGRF1) Přednáška č
Skalární součin Určení skalárního součinu
Geometrie 3D vidění Perspektivní projekce – popisuje strukturu obrazu pomocí dírkového modelu kamery Souřadnice jsou homogenní.
Lineární zobrazení Definice 46.
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 č
Homogenní elektrostatické pole
Počítačová grafika.
1 ÚVOD.
Rastr a transformace v 2D
3D modelář – primitivní tělesa, vlastnosti a transformace VY_32_INOVACE_Design1r0115Mgr. Jiří Mlnařík.
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.
Ú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.
(snímek 5): Ujasněte si pojmy, které nejsou přesně definovány.
Gymnázium, Broumov, Hradební 218 Vzdělávací oblast: Fyzika - mechanika Číslo materiálu: EU Název: Rychlost - prezentace Autor: Mgr. Jiří Šleis Ročník:
Rychlost okamžitá rychlost hmotného bodu:
Petře, jakou máš hmotnost?
Lineární zobrazení.
Okénková Fourierova transformace střední široké úzké.
Poděkování: Tato experimentální úloha vznikla za podpory Evropského sociálního fondu v rámci realizace projektu: „Modernizace výukových postupů a zvýšení.
Geometrické znázornění kmitů Skládání kmitů 5.2 Vlnění Popis vlnění
* Nepřímá úměrnost Matematika – 7. ročník *
Matematika pro počítačovou grafiku
FYZIKÁLNÍ VELIČINY A JEJICH JEDNOTKY.
Počítačová chemie (5. přednáška)
POČÍTAČOVÉ HRY CVIČENÍ 9. Shadery Z „Shading“ = „stínování“ Logika vykreslování Vertex data >> obraz Implementováno na GPU PHA cvičení 9 2.
Vyhledávání vzorů (template matching)
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í 3 – Ttransformace, Camera, 3DModely.
Tato prezentace byla vytvořena
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Operace s vektory Autor: RNDr. Jiří Kocourek.
Pavel Jež, Ctirad Martinec, Jaroslav Nejdl
Název školyStřední odborná škola a Gymnázium Staré Město Číslo projektuCZ.1.07/1.5.00/ AutorIng. Ivana Brhelová Název šablonyIII/2.
VEKTORY.
Poděkování: Tato experimentální úloha vznikla za podpory Evropského sociálního fondu v rámci realizace projektu: „Modernizace výukových postupů a zvýšení.
Repetitorium z matematiky Podzim 2012 Ivana Medková
Obvody střídavého proudu
BU51 CAD systémy RNDr. Helena Novotná. Obsah přednášek  Co potřebujeme z teorie  Ovládání a přizpůsobení AutoCADu (profily, šablony, pracovní prostory,
Gymnázium Jakuba Škody Septima A 2011/2012.  Cílem tohoto matematicko-fyzikálního projektu byla ukázka využití vektorů v praxi.  Základním úkolem projektu.
4. cvičení
Polární soustava souřadnic
NÁVRH NELINEÁRNÍHO MODELU LETADLA
ANALÝZA A KLASIFIKACE DAT
1 Lineární (vektorová) algebra
1. přednáška Úvod, vektorový počet, funkce více proměnných
Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. Upravila R.Baštářová.
Fyzikální veličiny Míry fyzikálních vlastností: X = x [X]
Tuhé těleso Tuhé těleso – fyzikální abstrakce, nezanedbáváme rozměry, ale ignorujeme deformační účinky síly (jinými slovy, sebevětší síla má pouze pohybové.
MECHANIKA TUHÉHO TĚLESA
Algoritmizace a datové struktury (14ASD)
ANALYTICKÁ GEOMETRIE Analytická geometrie je část geometrie, která v euklidovské geometrii zkoumá geometrické útvary pomocí algebraických a analytických.
Transkript prezentace:

Počítačové hry a animace Cvičení 2

(2) Notová osnova Transformace Kamera Viewporty Quaterniony

(3) Transformace Homogenní koordináty – –R n => n + 1 Affiní transformace reprezentovány jako maticové operace – –Rotation – –Scale (Shear) – –Translation

(4) Translace (posun) Není lineární transformací – –A => A + t Matrix.CreateTranslation

(5) Rotace Matrix.CreateRotationX Matrix.CreateRotationY Matrix.CreateRotationZ

Vy nemáte rádi algebru? To máte blbý :-) To máte blbý :-) –Tak pokračujeme… (6)

(7) Škálování Škálování daným faktorem (to znamená zvětšování a zmenšování) Matrix.CreateScale

Jak je to v XNA XNA má třídy reprezentaci matic a vektorů. XNA má třídy reprezentaci matic a vektorů. Vector2, Vector3, Vector4 Vector2, Vector3, Vector4 –Přetížené operátory +,-,*,/ –Cross(Vector,Vector) –Dot(Vector, Vector) –Normalize –Transform – Vynásobení maticí Matrix Matrix –CreateTranslation, CreateRotation, CreateScale atd. –Přetížené operátory (8)

Jak chápat transformace Děláme je obráceně než nám to dává smysl Děláme je obráceně než nám to dává smysl –(to ale není zrovna ideální přístup k věci :-)) Mění souřadnicový systém (lineární prostor, bázi) Mění souřadnicový systém (lineární prostor, bázi) –(Jsou to matice, na pořadí záleží! Ukážeme si to na příkladech) (9)

Na pořadí záleží (na tabuli) Rozdíl mezi Rozdíl mezi –Matrix m = Matrix.CreateRotation(0, MathHelper.PI, 0); –m *= Matrix.CreteTranslation(50, 0, 0); A –Matrix m = Matrix.CreteTranslation(50, 0, 0); –m *= Matrix.CreateRotation(0, MathHelper.PI, 0); (10)

Úkol na teď Otevřít dnešní cvičení Otevřít dnešní cvičení Vyrobte takovou světovou matici aby tank jezdil dokolečka (a byl vždy předkem ve směru jízdy) Vyrobte takovou světovou matici aby tank jezdil dokolečka (a byl vždy předkem ve směru jízdy) –V update funkci se přepočítává world matice, tam udělejte změnu –Počítá se tam taky úhel. –(a to je všechno co teď potřebujete) (11)

(12) Kamera Pozice kamery – –„vozík“ a „rameno“ Rotace kamery – –Sledování cíle Zoom kamery – –Pohyb kamery pozice -> cíl – –Zvětšení/Zmenšení FOV Depth of field – –Oko dokáže ostřit jen na určitou dálku

Kamera Je popsána dvěma maticemi: Je popsána dvěma maticemi: View Matice View Matice –Udává pozici a směr (rotaci kamery) v prostoru Projection Matice Projection Matice –Udává „fyzikální“ vlastnosti kamery. (13) Perspektivní kamera Ortho kamera

World*View*Projection K tomu abychom dostali objekt na obrazovku potřebujeme 3 matice: K tomu abychom dostali objekt na obrazovku potřebujeme 3 matice: –World – Světová matice defineje pozici, rotaci a velikost objektu k počátku souř. systému –View – Definuje pozici kamery v prostoru –Projection – Definuje „fyzikální“ vlastnosti kamery. (FoV, poměr stran). Zajišťuje, to že objekty víc „vzadu“ jsou menší (Nebo taky ne, pokud je Ortho)Zajišťuje, to že objekty víc „vzadu“ jsou menší (Nebo taky ne, pokud je Ortho) WorldViewProj * Bod_v_3D = Bod_na_obrazovce WorldViewProj * Bod_v_3D = Bod_na_obrazovce –(xy – pozice na obrazovce a hloubka-vzdálenost od kamery v z) (14)

(15) Herní kamera Matrix.CreateLookAt Matrix.CreatePerspectiveFieldOfView Matrix.CreateOrthographic

(16) Viewport Mapování renderu do daného prostoru na obrazovce Aktuální viewport – –graphics.GraphicsDevice.Viewport Přenastavení – –Viewport.X – –Viewport.Y – –Viewport.Width – –Viewport.Height

Úkol na teď Odkomentujte #define USE_VIEWPORTS Odkomentujte #define USE_VIEWPORTS –Woohooo najednou funguje split screen Pro druhý viewport vyrobte 3rd person kameru (vždycky napevno za objektem) – Nic moc kamera, ale co… Pro druhý viewport vyrobte 3rd person kameru (vždycky napevno za objektem) – Nic moc kamera, ale co… Nápověda Nápověda –Vypočítat správně pozici kde kamera je Normalizace, skalární násobení…Normalizace, skalární násobení… (17)

Úkol na teď (a možná taky na doma) Naprogramovat ovládání tanku pomocí šipek Naprogramovat ovládání tanku pomocí šipek Nápověda: Nápověda: –Pro pohyb: Vector3 direction; – vždy normalizovanýVector3 direction; – vždy normalizovaný Vector3 position;Vector3 position; Float speed;Float speed; position = position + direction * speed;position = position + direction * speed; –Pro render: Stačí co už máte a udržovat aktuální pozici a rotaci tankuStačí co už máte a udržovat aktuální pozici a rotaci tanku (18)

Jak na quaterniony V XNA struktura Quaternion V XNA struktura Quaternion –vektor=pozice, quaternion=orientace –Nulová rotace – Quaternion.Identity –Matrix.FromQuaternion převede na rotační matici –Skládání pomocí Quaternion.Concatenate –Interpolace pomocí Quaternion.Slerp –Matrix.Transform a Vector.Transform pro transformace bez převedení na matici (19)

Quaternionová interpolace Úhel rotace reprezentované quaternionem: Úhel rotace reprezentované quaternionem: –theta=2*arccos(w) Analogie s vektory: Analogie s vektory: –Úhel ~ délka vektoru –Slerp ~ interpolace vektorů –Úhlová rychlost ~ vektorová rychlost (20)

Jak přijít ke quaternionu Quaternion.CreateFromAxisAngle Quaternion.CreateFromAxisAngle –Pokud předem přesně víme co a jak Quaternion.CreateFromYawPitchRoll Quaternion.CreateFromYawPitchRoll –Vhodné pro volné a relativní rotace (letadla aj.) Quaternion.CreateFromRotationMatrix Quaternion.CreateFromRotationMatrix –Pro ošemetné případy si pomůžeme maticí Složitá absolutní rotace pomocí XYZ vektorůSložitá absolutní rotace pomocí XYZ vektorů „koukám na něco“ dekompozicí LookAt matice: Matrix.CreateLookAt → Matrix.Decompose„koukám na něco“ dekompozicí LookAt matice: Matrix.CreateLookAt → Matrix.Decompose (21)

(22) Quaterniony Efektivnější pro výpočet rotací než matice – –„Gímbal Lock“ problém Quaternion.CreateFromRotationMatrix Quaternion.CreateFromYawPitchRoll Quaternion.CreateFromAxisAngle Quaternion.Slerp – –Spherical Linear Interpolation Matrix.CreateFromQuaternion!

(23) Samples