A játékfejlesztés több területből áll. A kódolás csupán egy része a munkáknak.

Hasonló dokumentumok
OpenGL és a mátrixok

Róth Gergő.

Róth Gergő.

Róth Gergő.

1. Bevezetés 1. Köszönetnyilvánítás A számítógépes játékfejlesztésről 3

x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben?

3D koordináta-rendszerek

Transzformációk. Grafikus játékok fejlesztése Szécsi László t05-transform

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

Transzformációk, amelyek n-dimenziós objektumokat kisebb dimenziós terekbe visznek át. Pl. 3D 2D

Számítógépes Grafika mintafeladatok

Transzformációk. Szécsi László

Tartalom Képernyő részei... 2

Plakátok, részecskerendszerek. Szécsi László

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

17. előadás: Vektorok a térben

Számítógépes Grafika mintafeladatok

Számítógépes geometria

I. VEKTOROK, MÁTRIXOK

Valasek Gábor

1. Mátrixösszeadás és skalárral szorzás

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Transzformációk síkon, térben

Valasek Gábor Informatikai Kar. 2016/2017. tavaszi félév

Lineáris algebra zárthelyi dolgozat javítókulcs, Informatika I márc.11. A csoport

Térbeli transzformációk, a tér leképezése síkra

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

Vektorok, mátrixok, lineáris egyenletrendszerek

Összeállította: dr. Leitold Adrien egyetemi docens

Tartalom. Nevezetes affin transzformációk. Valasek Gábor 2016/2017. tavaszi félév

Vektorgeometria (1) First Prev Next Last Go Back Full Screen Close Quit

Számítási feladatok a Számítógépi geometria órához

Matematika A1a Analízis

Geometriai modellezés. Szécsi László

Hajder Levente 2017/2018. II. félév

Számítógépes Grafika SZIE YMÉK

1. A komplex számok ábrázolása

Matematika (mesterképzés)

2D képszintézis. Szirmay-Kalos László

Mesh from file, OrthoCamera, PerspectiveCamera. Szécsi László 3D Grafikus Rendszerek 3. labor

Raszter georeferálás QGIS-ben Összeállította: dr. Siki Zoltán verzióra aktualizálta: Jáky András

Feladatok. Tervek alapján látvány terv készítése. Irodai munka Test modellezés. Létező objektum számítógépes modelljének elkészítése

Space Invaders Dokumenta cio

1. Jelgenerálás, megjelenítés, jelfeldolgozás alapfunkciói

Lineáris algebra (10A103)

Tárgymutató. dinamika, 5 dinamikai rendszer, 4 végtelen sok állapotú, dinamikai törvény, 5 dinamikai törvények, 12 divergencia,

Mechatronika segédlet 3. gyakorlat

Helyvektorok, műveletek, vektorok a koordináta-rendszerben

RTCM alapú VITEL transzformáció felhasználó oldali beállítása Spectra Precision Survey Pro Recon szoftver használata esetén

VIK A2 Matematika - BOSCH, Hatvan, 3. Gyakorlati anyag. Mátrix rangja

1. Geometria a komplex számsíkon

Skaláris szorzat: a b cos, ahol α a két vektor által bezárt szög.

Grafikus csővezeték 1 / 44

2 PowerPoint 2016 zsebkönyv

Robotika. Kinematika. Magyar Attila


Akciók, diavetítés. 1. ábra Akciógombok. A lap két regiszterfülből áll, ezek a Kattintásra és az Áthaladáskor. Nézzük meg először az elsőt!

GRAFIKA PROGRAMOZÁSA OPTIMALIZÁLT MEGJELENÍTÉS ALAPJAI GYAKORLATI 2D GRAFIKA II. RÉSZ. Dr. Mileff Péter

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

PlanetFight. Minden játékosnak van valamennyi űrhajója, amikkel képesek elfoglalni még fel nem fedezett, neutrális bolygókat.

Számítógépes grafika

Választó lekérdezés létrehozása

Hajder Levente 2018/2019. II. félév

Baran Ágnes. Gyakorlat Függvények, Matlab alapok

Bevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása

Hajder Levente 2014/2015. tavaszi félév

PovRay. Oktatási segédlet

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Geometria III.

Textúrák. Szécsi László

I. Vektorok. Adott A (2; 5) és B ( - 3; 4) pontok. (ld. ábra) A két pont által meghatározott vektor:

Lineáris egyenletrendszerek

Bevezető. Mi is az a GeoGebra? Tények

Termék modell. Definíció:

Haladó lineáris algebra

Mátrixok, mátrixműveletek

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

A MIMIO interaktív tábla használata. Dr. Boda István DRHE,

Objektum definiálása és szerkesztése

Komputeralgebra rendszerek

Mesh generálás. IványiPéter

5. előadás. Skaláris szorzás

9. óra operációs rendszerek. Grafikus operációs rendszer

LINEÁRIS ALGEBRA. matematika alapszak. Euklideszi terek. SZTE Bolyai Intézet, őszi félév. Euklideszi terek LINEÁRIS ALGEBRA 1 / 40

Érintőképernyős terminálok NB sorozat

Testek. 16. Legyen z = 3 + 4i, w = 3 + i. Végezzük el az alábbi. a) (2 4), Z 5, b) (1, 0, 0, 1, 1) (1, 1, 1, 1, 0), Z 5 2.

Minimum követelmények matematika tantárgyból 11. évfolyamon

Surfer for Windows alapismeretek. A Surfer for Windows használata (8. verzió) A Surfer fontosabb jellemzői

Matematika szigorlat június 17. Neptun kód:

DISZKRÉT MATEMATIKA: STRUKTÚRÁK Előadáson mutatott példa: Bércesné Novák Ágnes

A dinamikus geometriai rendszerek használatának egy lehetséges területe

Klár Gergely 2010/2011. tavaszi félév

Számítási módszerek a fizikában 1. (BMETE90AF35) tárgy részletes tematikája

BME MOGI Gépészeti informatika 15.

Láthatósági kérdések

Animáció Inkscape-pel

Sajátértékek és sajátvektorok. mf1n1a06- mf1n2a06 Csabai István

Lineáris leképezések. Wettl Ferenc március 9. Wettl Ferenc Lineáris leképezések március 9. 1 / 31

1. Transzformációk mátrixa

Négycsuklós mechanizmus modelljének. Adams. elkészítése, kinematikai vizsgálata,

Matematika szigorlat, Mérnök informatikus szak I máj. 29.

Átírás:

1

A játékfejlesztés több területből áll. A kódolás csupán egy része a munkáknak. Példák az elvégzendő feladatokra: Tervezés Kódolás Modellezés Textúrázás Pályaszerkesztés Animálás... Többnyire minden terület tovább bontható további részterületekre. 2

Az elvégzendő feladatokat eszközök segítik. Ezen eszközök két kategóriába sorolhatóak: Runtime Olyan eszközök, melyek futási időben kerülnek felhasználásra. Offline Olyan eszközök, melyek a játék futása során nem kerülnek felhasználásra. 3

3D Studio Max Maya Blender (ingyenesen használható bármilyen célra) 4

Photoshop Gimp (ingyenesen használható bármilyen célra) 5

Unreal Development Kit (UDK) Valve Hammer Editor Might & Magic: Heroes VI 6

Shader szerkesztő szoftverek Zeneszerkesztő szoftverek Pl.: Audacity (ingyenes) Material szerkesztő szoftverek Többnyire tartalmazzák a modellező, vagy pályaszerkesztő szoftverek Részecskerendszer szerkesztő szoftverek... 7

Nyersanyag (asset, resource) importálása (exportálása) a játékba (játékból) 3D modell Textúra Zene Pálya Részecskerendszer Material Shader Animáció... 8

Matematikai könyvtár Hálózati kommunikáció kezelés (TCP, UDP, stb.) Fizika Ütközésdetektálás Részecskerendszer Mechanika Statika Hanglejátszás Rajzoló rutinok Animációlejátszás... 9

10

inicializálás() A függvény célja, hogy betöltse az alkalmazás futtatásához szükséges nyersanyagokat, valamint, hogy inicializálja a megfelelő változókat, alrendszereket. inicializálás(); while (játékfut()) { eseménykezelés(); animálás(); fizikaszámolás(); rajzolás(); } felszabadítás(); A fő ciklusban végrehajtott függvények listája nem teljes. Több funkció is elképzelhető. 11

eseménykezelés() A függvény kezeli le a játékos interakcióit. Egér Billentyűzet Joystick stb. inicializálás(); while (játékfut()) { eseménykezelés(); animálás(); fizikaszámolás(); rajzolás(); } felszabadítás(); A fő ciklusban végrehajtott függvények listája nem teljes. Több funkció is elképzelhető. 12

animálás() A függvény meghatározza az animált objektumok következő állapotát. inicializálás(); while (játékfut()) { eseménykezelés(); animálás(); fizikaszámolás(); rajzolás(); } felszabadítás(); A fő ciklusban végrehajtott függvények listája nem teljes. Több funkció is elképzelhető. 13

fizikaszámolás() A függvény számolja a betöltött világ fizikáját. Szabadesés Csúszás stb. inicializálás(); while (játékfut()) { eseménykezelés(); animálás(); fizikaszámolás(); rajzolás(); } felszabadítás(); A fő ciklusban végrehajtott függvények listája nem teljes. Több funkció is elképzelhető. 14

rajzolás() A függvény rajzolja ki a betöltött világot a képernyőre. inicializálás(); while (játékfut()) { eseménykezelés(); animálás(); fizikaszámolás(); rajzolás(); } felszabadítás(); A fő ciklusban végrehajtott függvények listája nem teljes. Több funkció is elképzelhető. 15

felszabadítás() Az init() ellentéte. Felszabadítja a lefoglalt erőforrásokat. inicializálás(); while (játékfut()) { eseménykezelés(); animálás(); fizikaszámolás(); rajzolás(); } felszabadítás(); A fő ciklusban végrehajtott függvények listája nem teljes. Több funkció is elképzelhető. 16

17

Rajzoláskor a videokártya minden csúcson végrehajt valamilyen transzformációt. Mire jó? Ugyanaz az objektum kirajzolható több helyre méretben Szemszögből A transzformációk nem a CPU-n, hanem a sokmagos GPUn hajtódnak végre, ezáltal gyorsabb (párhuzamos végrehajtás) Projekció 2D / 3D grafikában minden transzformáció egy mátrixműveletnek felel meg. 18

v 2 v 1 t t V 2 v 0 t V 1 V 0 19

V 2 v 2 V 0 V 1 v 1 v 0 20

V 1 V 2 V 2 V 1 V 0 V 0 21

Mátrix szorzása skalárral Mátrixok összeadása Csak ugyanolyan méretű mátrixot tudunk összeadni 22

Mátrix szorzása mátrixszal N x M méretű mátrixot csak M x P méretűvel lehet beszorozni Az eredmény N x P méretű mátrix A művelet nem kommutatív: A * B!= B * A A művelet asszociatív: A * (B * C) = (A * B) * C 23

N dimenziós koordinátát N x N méretű négyzetes mátrixszal is lehet transzformálni (Lineáris algebra). A transzformációs mátrix sorai az új koordinátarendszer tengelyei a régi koordinátarendszerben. 24

Egységmátrix (identity matrix) 25

Eltolás (translation) Összeadás 26

Átméretezés az origo középpontjából (scale) Szorzás 27

Forgatás 2 dimenzióban az origó körül (rotate) Szorzás cos α sin α sin α cos α Forgatás 3 dimenzióban az origó körül (rotate) 28

CPU M transzformációs mátrix kiszámolása egy objektumra R forgatás (rotate) S átméretezés (scale) M = R * S * R * R GPU Minden csúcs beszorzása a transzformációs mátrixszal Párhuzamos végrehajtás (Single Instruction Multiple Data) M * v = R * S * R * R * v = R * (S * (R * (R * v))) Probléma Szorzás Eltolás művelete? Összeadás 29

A koordináták újabb komponenssel egészülnek ki Homogén koordináta: w 2D: (x, y) -> (w * x, w * y, w) 3D: (x, y, z) -> (w * x, w * y, w * z, w) w értéke általában 1 2D: (x, y) -> (x, y, 1) 3D: (x, y, z) -> (x, y, z, 1) 30

2D 3D 31

32

A segítségével különböző mesterséges, vagy élethű transzformációkat tudunk végrehajtani Ortografikus (merőleges) vetítés A távoli és a közeli dolgok ugyanakkorák Perspektivikus vetítés A párhuzamos élek a végtelenben összetartanak A távoli dolgok kisebbnek látszanak, mint a közeliek Homogénkoordináta bevezetésével lehetséges 33

34

Ugyanannak a 3D modellnek a kirajzolása...több helyre...több méretben...több irányból A modellt csak egyszer szükséges betölteni A különböző rajzolási transzformációknak elég csak egyegy mátrixot létrehozni 3D modell 3D transzformációs modell 3D transzformációs modell 3D transzformációs modell 35

36

Olyan doboz, mely magába foglalja az objektumot A doboz élei egymásra merőlegesek Axis Aligned Bounding Box A doboz minden éle a Descartes-koordinátarendszer valamelyik tengelyével párhuzamos Non Axis Aligned Bounding Box A doboz élei nem feltétlenül párhuzamos a Descartes-koordinátarendszer valamelyik tengelyével 37

Min(A,C) A C B Max(B,D) D A két objektum (AB és CD) ütközik (fedi egymást), ha Max(B,D) - Min(A,C) <= (B - C) + (D C) Vagyis, ha a mindkét objektumot befoglaló egyenes kisebb, mint a két egyenes külön-külön. 38

39

del, majd enter kijelölt objektum törlése tab váltás az aktuális és a szerkesztés mód között space felugró parancsablak Csak szerkesztés módban Subdivide Csak objektum módban Add Cube / Monkey / UV Sphere / Cylinder / Torus stb. Minden módban Shade Smooth Shade Flat a minden objektum / csúcs / lap kijelölése n jobb oldali transzformációs panel megjelenítése / eltüntetése egér jobb klikk egér alatt levő objektum kijelölése (shift nyomvatartásával több objektum is kijelölhető) középső egérgomb + egér mozgatása kamera forgatása egér görgő kamera közelítés / távolítása shift + középső egérgomb + egér mozgatása kamera mozgatása a síkjában 40

File / Export / Wavefron (.obj) Bal alul Export obj lenyíló menüben különböző beállítási lehetőségek (a lényegesek felsorolva) Animation Az animáció összes kockáját lementi külön obj fájlokba. Selection only Csak az éppen kijelölés alatt álló objektumot menti el. Write normals Elmenti a csúcsok normálvektorait. Include Uvs Elmenti a csúcsok textúrakoordinátáit. 41