Róth Gergő.

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Róth Gergő. roth@dcs.uni-pannon.hu"

Átírás

1 Róth Gergő 1

2 Oktatók Smidla József Róth Gergő Bejárás nem kötelező Tárgy adatai Gyakorlati Nem kötelező Szabadon választható Neptun kód - VEMISVSA32J Tananyag (példakódok, dokumentációk, stb.) smidla.mik.uni-pannon.hu/jatek oktatas.mik.uni-pannon.hu Aláírás feltétel Rövid (15 perces) ZH a szorgalmi időszak végén Jegy kialakítása Beadandó feladat készítése csapatban Vizsgán történő bemutatás Ajánlott irodalom Jason Gregory: Game Engine Architecture Szirmay-Kalos László: Háromdimenziós grafika, animáció és játékfejlesztés ( Sünis könyv ) Nyisztor Károly: Grafika és játékprogramozás DirectX-szel Nyisztor Károly: Shaderprogramozás - Grafika és játékfejlesztés DirectX-szel Varga Márton: 3D grafika - Modellezés és megjelenítés 2

3 Ha hibát találtok az előadás fóliáiban a dokumentációkban a példa forráskódokban... jelezzétek írásban vagy szóban. Igyekszünk kijavítani mindent. 3

4 Bevezetés C / C++ kód fordítása Grafikus felületek programozásának alapjai OpenGL grafikus könyvtár Transzformációk (eltolás, átméretezés, forgatás) Transzformációk OpenGL-lel Blender Irrlicht Engine UDK bevezető Kismet, animációk Unreal Script nyelvi elemei Fejlesztés Unreal Scriptben 4

5 5

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

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

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

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

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

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

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

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

14 14

15 15

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

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

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

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

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

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

22 Játéklogika Ha a játékos guggol, akkor lassabban megy Ha a játékos eléri a fát, akkor új pálya betöltése Ha a játékos meghal, akkor a legutóbbi mentés betöltése Játékmotor Megjelenítés Matematika Nyersanyag kezelés Hang kezelés Az ábrán szereplő komponensektől eltérőek is szerepelhetnek a tényleges játékban. 22

23 23

24 main.c component0.c component1.c Compiler Compiler Compiler main.o component0.o component1.o Linker a.out / a.exe 24

25 component0.c component1.c Compiler Compiler component0.o component1.o Archiver libownlib.a / OWNLIB.lib 25

26 main.c Compiler main.o libownlib.a / OWNLIB.lib Linker a.out / a.exe 26

27 Könyvtár készítése paranccsorból gcc c component0.c gcc c component1.c ar crv libownlib.a component0.o component1.o gcc main.c Lpath-to-lib -lownlib Könyvtár készítése QtCreatorrel.pro fájlban TEMPLATE = app helyett TEMPLATE = lib Alapértelmezetten dinamikus könyvtárat készít (Windows (.dll), Linux (.so)) Statikus könyvtár készítése (libx.a) CONFIG += staticlib 27

28 28

29 Az egyetemen oktatott verzió C++03 ISO által 2003-ban elfogadott Újabb verzió C++11 ISO által 2011-ben elfogadott (teljesen kompatibilis fordító csak később jelent meg hozzá) Újítások listája megtalálható a wikipedia C++11 oldalán Használata gcc-vel gcc std=c++11 Használata QtCreator-rel.pro fileban QMAKE_CXXFLAGS += -std=c

30 Osztálydeklarációkban változók inicializálása Példa class ClassName { int i = 5; double d = 5.3; float f = 5.3; }; auto kulcsszó átértelmezése Változó deklarációja, melynek a típusát a fordító fogja meghatározni Példa auto i = 5; // i típusa int auto d = 5.3; // d típusa double auto f = 5.3f; // f típusa double nullptr kulcsszó bevezetése NULL és 0 helyett használható Példa int *array = nullptr; 30

31 31

32 Include #include <vector> Példány deklarálása std::vector<típus> array; Példa std::vector<int> array; Példány deklarálása inicializációval együtt std::vector<típus> array = {item0, item1,...}; Példa std::vector<int> array = {2, 3, 5, 7, 11,...}; Elem hozzáadása a tömbhöz array.push_back(item); Példa array.push_back(13); 32

33 Tömb méretének lekérdezése array.size(); Ciklus, ami végigmegy a tömb minden elemén for (auto it = array.begin(); it!= array.end(); ++i) Ekkor a tömb aktuális eleme: *it for (unsigned int i = 0; i < array.size(); ++i) // lassabb megoldás Ekkor a tömb aktuális eleme: array[i] Tömb memóriacímének a lekérése A memóriacímtől kezdve az adatok szekvenciálisan helyezkednek el. &array[0] array.data() 33

34 34

35 Include #include <map> Példány deklarálása map::map<kulcs_típus, adat_típus> container; Példa std::map<std::string, int> array; Elem hivatkozása (ha az elem létezett, akkor visszatér az értékével, ha nem, akkor létrehoz egy új érték típust) container[key]; container[key] = item; Példa container[ kulcs ]; container[ kulcs ] = 15; A tároló méretének lekérdezése container.size(); Ciklus, ami végigmegy a tároló minden elemén for (auto it = container.begin(); it!= container.end(); ++i) Ekkor a tároló aktuális kulcsa: it->first értéke: it->second 35

36 36

37 /*! \brief Rövid leírás. * És annak folytatása. * * Hosszú leírás. */ class OsztályNév... 37

38 /*! \brief Rövid leírás. * És annak folytatása. * * Hosszú leírás. * * \param arg0 Az adott paraméterhez tartozó leírás. * \param arg1 Az adott paraméterhez tartozó leírás. * * \return A visszatérési értékhez tartozó leírás. */ int foobar(char arg0, float arg1); 38

39 Letöltése: Windows operácios rendszerre a "Sources and Binaries" részben, a "A binary distribution for Windows." felirat alatt. Ott a doxygen- VERSION-setup.exe melletti ftp, vagy http linkre kattintással. A telepítés után a program parancssorból használható. Használata Parancssorban (cmd, vagy terminal) a forrásfájlok mappájába kell menni Ha nem létezik a doxygen.conf file az adott mappában, akkor ki kell adni a doxygen -g doxygen.conf parancsot, majd meg kell szerkeszteni a doxygen.conf filet LANGUAGE parametert kell átírni Hungarian-re PROJECT_NAME feliratot a kívánt projektnévre EXTRACT_PRIVATE paramétert YES-re Ha mar létezik a doxygen.conf file, akkor ki kell adni a doxygen doxygen.conf parancsot. Ez elkészit egy html, valamint egy latex mappát. A html mappában található egy index.html fájl. Ezt megnyitva érhető el az elkészített dokumentáció. 39

40 40

41 Különböző módokban különböző memóriacímek írásával Módok váltása megszakítások segítségével (interrupt) 0xA000 memóriacím Képernyő pixelek színének állítása 0xB000 memóriacím Monokróm szöveg írása 0xB800 memóriacím Színes szöveg írása 41

42 Különböző platformokon különböző natív megoldások Windows: WinAPI Linux: X server... Léteznek különböző platform független könyvtárak A könyvtárak az adott platform natív megoldásait használják. glut OpenGL Utility Toolkit (C nyelv, elavult) SDL Simple Directmedia Library (C nyelv) Qt Cute (C++ nyelv, nagyon összetett) Nem összetévesztendő: Qt (könyvtár)!= QtCreator (IDE) 42

43 Egyszerűen használható Eseményvezérelt Támogatott operációs rendszerek Windows Linux Android Példa forráskód és dokumentáció SDL2-window SDL2-loop 43

44 44

45 Mi az az OpenGL? Open Graphics Library (nyílt forráskódú grafikus könyvtár) API (Application Programming Interface) Bárki írhat mögé implementációt Egy olyan könyvtár, ami segít a videokártya lehetőségeit kihasználni úgy, hogy ne kelljen a különböző grafikus kártyákra különböző programot írni. 45

46 FFP Fixed Function Pipeline Az OpenGL működését csak és kizárólag állapotok állításával lehet elérni GLSL OpenGL Shading Language Az OpenGL működését a GLSL programnyelvvel és állapotok állításával is befolyásolni lehet 46

47 Komponensek [0, 1] intervallumon 0 a komponens nem szerepel a színben 1 a komponens teljes értékkel szerepel a színben RGB színkomponensek Red (piros) Green (zöld) Blue (kék) RGBA színkomponensek Red (piros) Green (zöld) Blue (kék) Alpha (átlátszóság) Főbb színek (0, 0, 0) fekete (1, 1, 1) fehér (1, 0, 0) piros (0, 1, 0) zöld (0, 0, 1) kék 47

48 Grafikai glitchek kiküszöbölése Az OpenGL a háttér pufferbe rajzol Monitor az előtér pufferből olvas Rajzolás után a puffer felcserélése 48

49 A képernyő a beállított téglalapba rajzol glviewport(x, y, szélesség, magasság) Az argumentumok pixelekben értendőek Alapértelmezett koordinátarendszer Első bal alsó sarok (-1, -1, 1) Hátsó jobb felső sarok (1, 1, -1) glclearcolor(r, g, b, a) Alapértelmezett: (1, 1, 1, 1) Beállítja a képernyő törlőszínét glcleardepth(v) Alapértelmezett: (1) Beállítja a képernyő mélységértékének a törlőszínét glclear(buffer0 buffer1...) A különböző bufferek a következők lehetnek GL_COLOR_BUFFER_BIT Beállítja a képernyő összes pixelének a színét a beállított színre GL_DEPTH_BUFFER_BIT Beállítja a képernyő összes pixelének a mélységértékét a beállított értékre 49

50 Alapértelmezetten minden új rajzolt pixel felülírja a már meglévőket A képernyő összes pixeléhez mélységérték rendelése [0, 1] intervallumon 0 közel 1 távol Mélységteszt Csak akkor írja felül az új pixel a régit, ha megfelel az elvárásoknak (közelebb van) Mélységteszt engedélyezése glenable(gl_depth_test) 50

51 Csúcsadatokat tartalmazó memória megadása glvertexpointer(..) glcolorpointer(..) gltexcoordpointer(..) glnormalpointer(..) x y z r g b x y z r g b x y z r g b Pozíció Szín Pozíció Szín Pozíció Szín Csúcs 0 Csúcs 1 Csúcs 2 51

52 Csúcsadatok felhasználásnak az engedélyezése glenableclientstate(gl_vertex_array) glenableclientstate(gl_color_array) glenableclientstate(gl_texture_coord_array) glenableclientstate(gl_normal_array) 52

53 Rajzolás gldrawarrays(..) Rajzolható primitívek 53

54 Csúcsadatok felhasználásnak a letiltása gldisableclientstate(gl_vertex_array) gldisableclientstate(gl_color_array) gldisableclientstate(gl_texture_coord_array) gldisableclientstate(gl_normal_array) Példa forráskód és dokumentáció SDL2-OpenGL SDL2-OpenGL-simple-draw SDL2-OpenGL-color-draw 54

55 Textúra koordináták A képhez képest relatív koordináták Szokásos (x, y) helyett (u, v), vagy (s, t) 55

56 Inicializálás lépésben Textúra azonosító deklarálása GLuint texture; Textúra azonosító generálása glgentextures(1, &texture); A textúra azonosító a függvény hívása után már csak 2D-s textúrával használható glbindtexture(gl_texture_2d, texture); A nyers képpontok betöltése a videokártya memóriába glteximage2d( GL_TEXTURE_2D, 0, belső adatformátum, // GL_RGB, GL_RGBA, GL_BGR, stb. szélesség, magasság, 0, nyers képpont adatformátuma, // GL_RGB, GL_RGBA, GL_BGR, stb. GL_UNSIGNED_BYTE, nyers képpont első elemére mutató tömb); 56

57 Rajzolás lépésben 2D textúrázás engedélyezése glenable(gl_texture_2d); Rajzolni kívánt textúra meghatározása glbindtexture(gl_texture_2d, texture); Példa forráskód és dokumentáció SDL2-OpenGL-texture-draw 57

58 58

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

60 v 2 v 1 t t V 2 v 0 t V 1 V 0 60

61 V 2 v 2 V 0 V 1 v 1 v 0 61

62 V 1 V 2 V 2 V 1 V 0 V 0 62

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

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

65 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. a 0 a 1 a 3 a 4 a 6 a 7 a 2 a 5 a 8 v x v y v z = a 0 vx + a 3 vy + a 6 vz a 1 vx + a 4 vy + a 7 vz a 2 vx + a 5 vy + a 8 vz 65

66 Egységmátrix (identity matrix) v x v y = v x v y v x v y v z = v x v y v z 66

67 Eltolás (translation) Összeadás t x t y + v x v y = t x + v x t y + vy t x t y tz + v x v y v z = t x + vx t y + vy t z + vz 67

68 Átméretezés az origo középpontjából (scale) Szorzás s x 0 0 s y v x v y = s x v x s y vy s x s y s z v x v y v z = s x vx s y vy s z vz 68

69 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) ll 1 cos α + cos α ml 1 cos α n sin α nl (1 cos α) + m sin α lm(1 cos α) + n sin α mm(1 cos α) + cos α nm(1 cos α) l sin α ln (1 cos α) m sin α mn(1 cos α) + l sin α nn(1 cos α) + cos α 69

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

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

72 2D 1 0 t x 0 1 t y v x v y 1 = t x + v x t y + vy 1 3D t x 0 1 t y t z 0 1 v x v y v z 1 = t x + vx t y + vy t z + vz 1 72

73 0 3x3 transzformációs mátrix v x v y v z 1 73

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

75 75

76 OpenGL modelljében a csúcs tényleges pozíciója a képernyőn P * M * v P = projekciós mátrix M = modellnézeti mátrix V = csúcs Ehhez beépített mátrixokat használ GL_PROJECTION GL_MODELVIEW 76

77 Aktuális mátrix kiválasztása glmatrixmode(mátrix); Mátrix lehet GL_MODELVIEW GL_PROJECTION... Egységmátrix betöltése az aktuális mátrixba glloadidentity(); Aktuális mátrix utószorzása eltolás mátrixszal gltranslatef(x, y, z); Aktuális mátrix utószorzása átméretezés mátrixszal glscalef(x, y, z); 77

78 Aktuális mátrix utószorzása forgatási mátrixszal glrotatef(szög fokban, tengely x, tengely y, tengely z); Aktuális mátrix felülírása saját mátrixszal glloadmatrixf(saját mátrix mutatója); Aktuális mátrix utószorzása saját mátrixszal glmultmatrixf(saját mátrix mutatója); Aktuális mátrix verembe helyezése glpushmatrix(); Aktuális mátrix feltöltése a veremből glpopmatrix(); 78

79 Saját mátrix definiálása GLfloat m[16]; m[0] m[1] m[2] m[3] m[4] m[5] m[6] m[7] m[8] m[9] m[10] m[11] m[12] m[13] m[14] m[15] 79

80 Csonkagúla meghatározása glfrustum(..) OpenGL Utility Library gluperspective() A függvény a glfrustum(..) függvényt használja a megfelelő paraméterekkel. Használatához #include <GL/glu.h> Windows gcc lglu32... LIBS += -lglu32 Linux gcc lglu... LIBS += -lglu 80

81 81

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

83 Ellentétes transzformációk ha hátrafele akarunk mozdulni a kamerával, akkor a transzformációs mátrixnak el kell tolnia az objektumokat előre ha jobbra fordulunk a kamerával, akkor az objektumokat balra kell forgatni a kamera pozíciója körül... 83

84 Kamera mátrix betöltése M-be M elmentése M utószorzása az objektum transzformációjával Objektum kirajzolása M visszaállítása M elmentése M utószorzása az objektum transzformációjával Objektum kirajzolása M visszaállítása 84

85 glmatrixmode(gl_modelview); glloadmatrixf(camera_matrix); glpushmatrix(); glmulmatrixf(object_matrix_0); object.draw(); glpopmatrix(); glpushmatrix(); glmulmatrixf(object_matrix_1); object.draw(); glpopmatrix(); 85

86 86

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

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

89 89

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

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

92 92

93 Szöveges (olvasható) formátum Definíciókból áll Fontosabb definíciók mtllib anyagtulajdonságokat tartalmazó fájl megadása o új objektum definiálása a megadott névvel Csúcsadatok Három különálló tömb épül fel belőlük. A formátum a tömböt a lapok meghatározásánál használja fel. Az obj formátum szerint a tömb indexelése 1-től kezdődik. v csúcs pozíciójának a megadása vn csúcs normálkoordinátáinak a megadása vt csúcs textúra koordinátáinak a megadása usemtl anyag használata f új lap definiálása Bővebb információ 93

94 f után akármennyi szóköz nélküli karakterlánc lehet a sor végéig Ezen karakterláncokból 4 féle van d 0 d 0 /d 1 d 0 //d 2 d 0 /d 1 /d 2 d 0 csúcs pozíciójának az indexe d 1 csúcs textúra koordinátáinak az indexe d 2 csúcs normálvektorának az indexe Fontos: a tömb indexelése az obj formátum szerint 1-dől kezdődik. Új lap meghatározására példa Háromszög f f 1//2 3//4 5//6 Négyszög f

95 Hasonló az obj-hez Fontosabb definíciók newmtl új anyag létrehozása Kd anyag RGB színkomponenseinek a meghatározása (diffúz) d, vagy Tr anyag átlátszóságának a meghatározása map_kd anyag színének a meghatározása képből Példa forráskód és dokumentáció SDL2-simple-engine 95

96 96

97 Saját példakódok és dokumentáció Irrlicht-loop Irrlicht-string Irrlicht-mesh-draw Irrlicht-event-receiver Irrlicht-mesh-collision Irrlicht-fps-camera Hivatalos példakódok 97

98 98

99 Fények matematikája Fények kezelése OpenGL FFP segítségével Animációk részletesen Ütközésdetektálás részletesen Mesterséges intelligencia (AI) Útvonalkeresés Shaderprogramozás (GLSL) Létező játékmotorok részletes ismertetése 99

Róth Gergő. roth@dcs.uni-pannon.hu

Róth Gergő. roth@dcs.uni-pannon.hu Róth Gergő roth@dcs.uni-pannon.hu 1 Oktatók Smidla József (smidla@dcs.uni-pannon.hu) Róth Gergő (roth@dcs.uni-pannon.hu) Bejárás nem kötelező Tárgy adatai Gyakorlati Nem kötelező Szabadon választható Neptun

Részletesebben

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

A játékfejlesztés több területből áll. A kódolás csupán egy része a munkáknak. 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

Részletesebben

Róth Gergő.

Róth Gergő. Róth Gergő roth@dcs.uni-pannon.hu 1 Oktatók Smidla József (smidla@dcs.uni-pannon.hu) Róth Gergő (roth@dcs.uni-pannon.hu) Bejárás nem kötelező Tárgy adatai Gyakorlati Nem kötelező Szabadon választható Neptun

Részletesebben

OpenGL és a mátrixok

OpenGL és a mátrixok OpenGL és a mátrixok Róth Gergő 2013. március 4. Róth Gergő 1/20 A rajzoláskor a videókártya minden csúcson végrehajt egy transzformációt. Mire jó? Kamera helyének beállítása Egy objektum több pozícióra

Részletesebben

Grafikus csővezeték és az OpenGL függvénykönyvtár

Grafikus csővezeték és az OpenGL függvénykönyvtár Grafikus csővezeték és az OpenGL függvénykönyvtár 1 / 32 A grafikus csővezeték 3D-s színtér objektumainak leírása primitívekkel: pontok, élek, poligonok. Primitívek szögpontjait vertexeknek nevezzük Adott

Részletesebben

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

1. Bevezetés 1. Köszönetnyilvánítás 1. 2. A számítógépes játékfejlesztésről 3 1. Bevezetés 1 Köszönetnyilvánítás 1 2. A számítógépes játékfejlesztésről 3 2.1. Néhány tanács játékfejlesztőknek 3 2.2. Hogyan fogjunk saját játék írásához? 4 2.3. A számítógépes játék főbb elemei 9 3.

Részletesebben

Tanács Attila. Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

Tanács Attila. Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem Direct3D, DirectX o Csak Microsoft platformon OpenGL o Silicon Graphics: IRIS GL (zárt kód) o OpenGL (1992) o Nyílt

Részletesebben

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

Transzformációk. Grafikus játékok fejlesztése Szécsi László 2013.02.26. t05-transform Transzformációk Grafikus játékok fejlesztése Szécsi László 2013.02.26. t05-transform Koordinátarendszerek: modelltér Koordinátarendszerek: világtér Koordinátarendszerek: kameratér up right z eye ahead

Részletesebben

Számítógépes grafika

Számítógépes grafika Számítógépes grafika XX. rész A GPU programozása a GLSL nyelv Az OpenGL árnyaló nyelve a GLSL (OpenGL Shading Language), amely segítségével vertex- és pixel- (fragment) shaderek által programozhatjuk a

Részletesebben

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

Plakátok, részecskerendszerek. Szécsi László Plakátok, részecskerendszerek Szécsi László Képalapú festés Montázs: képet képekből 2D grafika jellemző eszköze modell: kép [sprite] 3D 2D képével helyettesítsük a komplex geometriát Image-based rendering

Részletesebben

Grafikus csővezeték 1 / 44

Grafikus csővezeték 1 / 44 Grafikus csővezeték 1 / 44 Grafikus csővezeték Vertex feldolgozás A vertexek egyenként a képernyő térbe vannak transzformálva Primitív feldolgozás A vertexek primitívekbe vannak szervezve Raszterizálás

Részletesebben

Thermo1 Graph. Felhasználói segédlet

Thermo1 Graph. Felhasználói segédlet Thermo1 Graph Felhasználói segédlet A Thermo Graph program a GIPEN Thermo eszközök Windows operációs rendszeren működő grafikus monitorozó programja. A program a telepítést követően azonnal használható.

Részletesebben

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

Transzformációk. Szécsi László Transzformációk Szécsi László A feladat Adott a 3D modell háromszögek csúcspontjai [modellezési koordináták] Háromszögkitöltő algoritmus pixeleket színez be [viewport koordináták] A feladat: számítsuk

Részletesebben

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

Bevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba II 1. gyakorlat A grafikus könyvtár használata, alakzatok rajzolása 2014.02.10. Giachetta Roberto groberto@inf.elte.hu

Részletesebben

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás Objektum orientáltság alapjai Objektum: A való világ egy elemének ábrázolása, amely minden esetben rendelkezik: Állapottal,Viselkedéssel,Identitással

Részletesebben

3D koordináta-rendszerek

3D koordináta-rendszerek 3D koordináta-rendszerek z z y x y x y balkezes bal-sodrású x jobbkezes jobb-sodrású z 3D transzformációk - homogén koordináták (x, y, z) megadása homogén koordinátákkal: (x, y, z, 1) (x, y, z, w) = (x,

Részletesebben

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

Láthatósági kérdések Láthatósági kérdések Láthatósági algoritmusok Adott térbeli objektum és adott nézőpont esetén el kell döntenünk, hogy mi látható az adott alakzatból a nézőpontból, vagy irányából nézve. Az algoritmusok

Részletesebben

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok Számítógépes szimulációk 1. Bevezetés BME Fizika Intézet 2015. szeptember 9. Bevezetés A félév menete C-ismétlés, 1. rész Oktatók: Nagyfalusi Balázs: nagyfalusi@phy.bme.hu, F3 211. : tcsaba@eik.bme.hu,

Részletesebben

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?

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? . Mi az (x, y) koordinátákkal megadott pont elforgatás uténi két koordinátája, ha α szöggel forgatunk az origó körül? 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

Részletesebben

Mobil Informatikai Rendszerek

Mobil Informatikai Rendszerek Mobil Informatikai Rendszerek Android NDK Native Development Kit 2016. november 27. Sicz-Mesziár János sicz- m e s z i a r. j a n o s @ nik.uni - obuda.hu NDK Native Development Kit Egy set of tools, amely

Részletesebben

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs Szoftver labor III. Dr. Csébfalvi Balázs Irányítástechnika és Informatika Tanszék e-mail: cseb@iit.bme.hu http://www.iit.bme.hu/~cseb/ Tematika Bevezetés Java programozás alapjai Kivételkezelés Dinamikus

Részletesebben

3D-s technológiák a játékfejlesztésben UDK bevezetés

3D-s technológiák a játékfejlesztésben UDK bevezetés 3D-s technológiák a játékfejlesztésben UDK bevezetés Első lépések Könyvtár szerkezet: UDK-XXXXXXXX Binaries Development: Itt található a játék forráskódja, ezt kibővíthetjük. FONTOS: A már meglévő kódokat

Részletesebben

Space Invaders Dokumenta cio

Space Invaders Dokumenta cio Space Invaders Dokumenta cio 0. Tartalomjegyzék 0. Tartalomjegyzék... 1 1. Követelmény feltárás... 2 1.1. Célkitűzés, projektindító dokumentum... 2 1.2. Szakterületi tartalomjegyzék... 2 1.3. Használatieset-modell,

Részletesebben

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"

Részletesebben

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

Mesh generálás. IványiPéter Mesh generálás IványiPéter drview Grafikus program MDF file-ok szerkesztéséhez. A mesh generáló program bemenetét itt szerkesztjük meg. http://www.hexahedron.hu/personal/peteri/sx/index.html Pont létrehozásához

Részletesebben

Mintavételes szabályozás mikrovezérlő segítségével

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben

Mechatronika segédlet 3. gyakorlat

Mechatronika segédlet 3. gyakorlat Mechatronika segédlet 3. gyakorlat 2017. február 20. Tartalom Vadai Gergely, Faragó Dénes Feladatleírás... 2 Fogaskerék... 2 Nézetváltás 3D modellezéshez... 2 Könnyítés megvalósítása... 2 A fogaskerék

Részletesebben

3. Osztályok II. Programozás II

3. Osztályok II. Programozás II 3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt

Részletesebben

Alkalmazott Informatikai Tanszék SZÁMÍTÓGÉP-PROGRAMOZÁS dr.dudás László 22./0. 3D grafika programozása OpenGL támogatással Transzformációk

Alkalmazott Informatikai Tanszék SZÁMÍTÓGÉP-PROGRAMOZÁS dr.dudás László 22./0. 3D grafika programozása OpenGL támogatással Transzformációk Alkalmazott Informatikai Tanszék SZÁMÍTÓGÉP-PROGRAMOZÁS dr.dudás László 22./0. 3D grafika programozása OpenGL támogatással Transzformációk Alkalmazott Informatikai Tanszék SZÁMÍTÓGÉP-PROGRAMOZÁS dr.dudás

Részletesebben

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

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana A MATLAB alapjai Kezdő lépések - Matlab Promt: >> - Help: >> help sqrt >> doc sqrt - Kilépés: >> quit >> exit >> Futó script leállítása: >> ctrl+c - Változók listásása >> who >> whos - Változók törlése

Részletesebben

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010.

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010. Országos Területrendezési Terv térképi mellékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010. május 1. BEVEZETÉS Az útmutató célja az Országos Területrendezési

Részletesebben

Mobil Informatikai Rendszerek

Mobil Informatikai Rendszerek Mobil Informatikai Rendszerek Android NDK Native Development Kit Sicz-Mesziár János sicz-mesziar.janos@nik.uni-obuda.hu Mezei József mezei.jozsef@nik.uni-obuda.hu 2018. április 22. NDK Native Development

Részletesebben

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Reguláris kifejezések - alapok, BASH Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor

Részletesebben

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED BASH recap, reguláris kifejezések Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor

Részletesebben

GPU Lab. 14. fejezet. OpenCL textúra használat. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

GPU Lab. 14. fejezet. OpenCL textúra használat. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc 14. fejezet OpenCL textúra használat Grafikus Processzorok Tudományos Célú Programozása Textúrák A textúrák 1, 2, vagy 3D-s tömbök kifejezetten szín információk tárolására Főbb különbségek a bufferekhez

Részletesebben

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével

Részletesebben

3. modul - Szövegszerkesztés

3. modul - Szövegszerkesztés 3. modul - Szövegszerkesztés Érvényes: 2009. február 1-jétől Az alábbiakban ismertetjük a 3. modul (Szövegszerkesztés) syllabusát, amely a gyakorlati vizsga alapját képezi. A modul célja Ezen a vizsgán

Részletesebben

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

2D képszintézis. Szirmay-Kalos László 2D képszintézis Szirmay-Kalos László 2D képszintézis Modell szín (200, 200) Kép Kamera ablak (window) viewport Unit=pixel Saját színnel rajzolás Világ koordinátarendszer Pixel vezérelt megközelítés: Tartalmazás

Részletesebben

Bevezetés a CGI-be. 1. Történelem

Bevezetés a CGI-be. 1. Történelem Bevezetés a CGI-be 1. Történelem 1.1 Úttörők Euklidész (ie.. 300-250) - A számítógépes grafika geometriai hátterének a megteremtője Bresenham (60 évek) - Első vonalrajzolás raster raster készüléken, később

Részletesebben

Vizuális, eseményvezérelt programozás XI.

Vizuális, eseményvezérelt programozás XI. Vizuális, eseményvezérelt programozás XI ÓE-NIK, 2011 1 Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik Ismeretük szükséges,

Részletesebben

A WORDPRESS TESTRESZABÁSA (MEGJELENÉS MENÜ ELEMEI)

A WORDPRESS TESTRESZABÁSA (MEGJELENÉS MENÜ ELEMEI) Mgr. Námesztovszki Zsolt A WORDPRESS TESTRESZABÁSA (MEGJELENÉS MENÜ ELEMEI) Eötvös Loránd Tudományegyetem, Pedagógiai és Pszichológiai Kar Oktatásinformatikai rendszerek - szöveggyűjtemény Budapest, 2013.

Részletesebben

OOP. Alapelvek Elek Tibor

OOP. Alapelvek Elek Tibor OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós

Részletesebben

Digitális aláíró program telepítése az ERA rendszeren

Digitális aláíró program telepítése az ERA rendszeren Digitális aláíró program telepítése az ERA rendszeren Az ERA felületen a digitális aláírásokat a Ponte webes digitális aláíró program (Ponte WDAP) segítségével lehet létrehozni, amely egy ActiveX alapú,

Részletesebben

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

Baran Ágnes. Gyakorlat Függvények, Matlab alapok Matematika Mérnököknek 1. Baran Ágnes Gyakorlat Függvények, Matlab alapok Matematika Mérnököknek 1. A gyakorlatok fóliái: https://arato.inf.unideb.hu/baran.agnes/oktatas.html Feladatsorok: https://arato.inf.unideb.hu/baran.agnes/oktatas.html

Részletesebben

QGIS tanfolyam (ver.2.0)

QGIS tanfolyam (ver.2.0) QGIS tanfolyam (ver.2.0) I. Rétegkezelés, stílusbeállítás 2014. január-február Összeállította: Bércesné Mocskonyi Zsófia Duna-Ipoly Nemzeti Park Igazgatóság A QGIS a legnépszerűbb nyílt forráskódú asztali

Részletesebben

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

Textúrák. Szécsi László Textúrák Szécsi László Textúra interpretációk kép a memóriában ugyanolyan mint a frame buffer pixel helyett texel adatok tömbje 1D, 2D, 3D tömb pl. RGB rekordok függvény diszkrét mintapontjai rácson rekonstrukció:

Részletesebben

Bevezetés a programozásba Előadás: Fordítási egység

Bevezetés a programozásba Előadás: Fordítási egység Bevezetés a programozásba 2 5. Előadás: Fordítási egység ISMÉTLÉS Tagfüggvény kiemelése struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; void Particle::rajzol() { gout

Részletesebben

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem OpenCV Nyílt forráskódú szoftver (BSD licensz) Számítógépes látás,

Részletesebben

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

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

Részletesebben

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

A MIMIO interaktív tábla használata. Dr. Boda István DRHE, A MIMIO interaktív tábla használata Dr. Boda István DRHE, 2017-04-21 Mimio Classroom termékcsalád Mimio Interactive oktatási technológiák (http://www.mimio.hu/) MimioTeach, MimioInteractive Xi; MimioProjector

Részletesebben

Lakóház tervezés ADT 3.3-al. Segédlet

Lakóház tervezés ADT 3.3-al. Segédlet Lakóház tervezés ADT 3.3-al Segédlet A lakóház tervezési gyakorlathoz főleg a Tervezés és a Dokumentáció menüket fogjuk használni az AutoDesk Architectural Desktop programból. A program centiméterben dolgozik!!!

Részletesebben

Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán

Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán A QGIS program GPS eszközök modulja segítségével kétirányú kommunikációt folytathatunk a navigációs GPS vevőnkkel.

Részletesebben

Algoritmusok raszteres grafikához

Algoritmusok raszteres grafikához Algoritmusok raszteres grafikához Egyenes rajzolása Kör rajzolása Ellipszis rajzolása Algoritmusok raszteres grafikához Feladat: Grafikai primitíveket (pl. vonalat, síkidomot) ábrázolni kép-mátrixszal,

Részletesebben

Videókártya - CUDA kompatibilitás: CUDA weboldal: Példaterületek:

Videókártya - CUDA kompatibilitás:   CUDA weboldal:   Példaterületek: Hasznos weboldalak Videókártya - CUDA kompatibilitás: https://developer.nvidia.com/cuda-gpus CUDA weboldal: https://developer.nvidia.com/cuda-zone Példaterületek: http://www.nvidia.com/object/imaging_comp

Részletesebben

A számítógépek felépítése. A számítógép felépítése

A számítógépek felépítése. A számítógép felépítése A számítógépek felépítése A számítógépek felépítése A számítógépek felépítése a mai napig is megfelel a Neumann elvnek, vagyis rendelkezik számoló egységgel, tárolóval, perifériákkal. Tápegység 1. Tápegység:

Részletesebben

OpenGL Compute Shader-ek. Valasek Gábor

OpenGL Compute Shader-ek. Valasek Gábor OpenGL Compute Shader-ek Valasek Gábor Compute shader OpenGL 4.3 óta része a Core specifikációnak Speciális shaderek, amikben a szokásos GLSL parancsok (és néhány új) segítségével általános számítási feladatokat

Részletesebben

A Vonallánc készlet parancsai lehetővé teszik vonalláncok és sokszögek rajzolását.

A Vonallánc készlet parancsai lehetővé teszik vonalláncok és sokszögek rajzolását. 11. Geometriai elemek 883 11.3. Vonallánc A Vonallánc készlet parancsai lehetővé teszik vonalláncok és sokszögek rajzolását. A vonallánc egy olyan alapelem, amely szakaszok láncolatából áll. A sokszög

Részletesebben

VII. Appletek, grafika

VII. Appletek, grafika VII. Appletek, grafika 1. Bevezetés A tantárgy elején említettük, hogy a Java alkalmazásokat két nagy csoportba sorolhatjuk. Ezek: alkalmazások (applications) alkalmazáskák (applets) Az eddig megírt programjaink

Részletesebben

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

Tartalom Képernyő részei... 2 Tartalom Képernyő részei... 2 Sötétszürke menü részei... 2 1. Menü kibontása... 2 2. Eszközök... 3 3. Műveletek... 3 Világosszürke menü részei... 4 Kijelölés... 4 Okos kijelölés... 5 Körülvágás... 6 Vegyes

Részletesebben

I. VEKTOROK, MÁTRIXOK

I. VEKTOROK, MÁTRIXOK 217/18 1 félév I VEKTOROK, MÁTRIXOK I1 I2 Vektorok 1 A síkon derékszögű koordinátarendszerben minden v vektornak van vízszintes és van függőleges koordinátája, ezeket sorrendben v 1 és v 2 jelöli A v síkbeli

Részletesebben

Osztályok. 4. gyakorlat

Osztályok. 4. gyakorlat Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum

Részletesebben

GráfRajz fejlesztői dokumentáció

GráfRajz fejlesztői dokumentáció GráfRajz Követelmények: A GráfRajz gráfokat jelenít meg grafikus eszközökkel. A gráfot többféleképpen lehet a programba betölteni. A program a gráfokat egyedi fájl szerkezetben tárolja. A fájlokból betölthetőek

Részletesebben

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

Részletesebben

A szerzõrõl... xi Bevezetés... xiii

A szerzõrõl... xi Bevezetés... xiii TARTALOMJEGYZÉK A szerzõrõl...................................................... xi Bevezetés...................................................... xiii I. rész A Visual Basic 2005 környezet 1. óra Irány

Részletesebben

6.1.1.2 Új prezentáció létrehozása az alapértelmezés szerinti sablon alapján.

6.1.1.2 Új prezentáció létrehozása az alapértelmezés szerinti sablon alapján. 6. modul Prezentáció A modul a prezentációkészítéshez szükséges ismereteket kéri számon. A sikeres vizsga követelményei: Tudni kell prezentációkat létrehozni és elmenteni különböző fájl formátumokban A

Részletesebben

BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra. 1. feladat Készítsen alkalmazást az = +

BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra. 1. feladat Készítsen alkalmazást az = + BME MOGI Gépészeti informatika 18. Grafika, fájlkezelés gyakorló óra 1. feladat Készítsen alkalmazást az = + függvény ábrázolására! Az értelmezési tartomány a [-6;5] intervallum, a lépésköz 0,1 legyen!

Részletesebben

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

Raszter georeferálás QGIS-ben Összeállította: dr. Siki Zoltán verzióra aktualizálta: Jáky András Raszter georeferálás QGIS-ben Összeállította: dr. Siki Zoltán 2.18.3. verzióra aktualizálta: Jáky András (jakyandras@gmail.com) Ez a leírás ahhoz nyújt segítséget, hogy szkennelt térképet vagy ortofotót

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java 2. gyakorlat Függvények Általános prototípus Módosítószavak Láthatóság: public, protected, private. Ha nem definiált, akkor úgynevezett package-private láthatóság. Lehet abstract

Részletesebben

Iman 3.0 szoftverdokumentáció

Iman 3.0 szoftverdokumentáció Melléklet: Az iman3 program előzetes leírása. Iman 3.0 szoftverdokumentáció Tartalomjegyzék 1. Az Iman rendszer...2 1.1. Modulok...2 1.2. Modulok részletes leírása...2 1.2.1. Iman.exe...2 1.2.2. Interpreter.dll...3

Részletesebben

FELHASZNÁLÓI KÉZIKÖNYV

FELHASZNÁLÓI KÉZIKÖNYV FELHASZNÁLÓI KÉZIKÖNYV 1 BEVEZETÉS A Közlekedési Környezeti Centrum (KKC) projekt keretében létrejött ELZA (Elektronikus Levegő- és Zajvédelmi Adattár) egy online felületen elérhető alkalmazás, ahol a

Részletesebben

Máté: Számítógépes grafika alapjai

Máté: Számítógépes grafika alapjai Történeti áttekintés Interaktív grafikai rendszerek A számítógépes grafika osztályozása Valós és képzeletbeli objektumok (pl. tárgyak képei, függvények) szintézise számítógépes modelljeikből (pl. pontok,

Részletesebben

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;

Részletesebben

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

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 Virtuális valóság 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 Geodéziai mérések Fotogrammetriai feldolgozás Egyszerű

Részletesebben

Multimédiás adatbázisok

Multimédiás adatbázisok Multimédiás adatbázisok Multimédiás adatbázis kezelő Olyan adatbázis kezelő, mely támogatja multimédiás adatok (dokumentum, kép, hang, videó) tárolását, módosítását és visszakeresését Minimális elvárás

Részletesebben

BME MOGI Gépészeti informatika 15.

BME MOGI Gépészeti informatika 15. BME MOGI Gépészeti informatika 15. 1. feladat Készítsen alkalmazást a y=2*sin(3*x-π/4)-1 függvény ábrázolására a [-2π; 2π] intervallumban 0,1-es lépésközzel! Ezen az intervallumon a függvény értékkészlete

Részletesebben

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és

Részletesebben

2. modul - Operációs rendszerek

2. modul - Operációs rendszerek 2. modul - Operációs rendszerek Érvényes: 2009. február 1-jétől Az alábbiakban ismertetjük a 2. modul (Operációs rendszerek) syllabusát, amely az elméleti és gyakorlati modulvizsga követelményrendszere.

Részletesebben

VARIO Face 2.0 Felhasználói kézikönyv

VARIO Face 2.0 Felhasználói kézikönyv VARIO Face 2.0 Felhasználói kézikönyv A kézikönyv használata Mielőtt elindítaná és használná a szoftvert kérjük olvassa el figyelmesen a felhasználói kézikönyvet! A dokumentum nem sokszorosítható illetve

Részletesebben

KIRA. KIRA rendszer. Telepítési útmutató v1

KIRA. KIRA rendszer. Telepítési útmutató v1 KIRA rendszer Telepítési útmutató v1 1. Bevezetés A dokumentáció, illetve a dokumentáció mellékleteként megtalálható állományok segítségével készíthető fel a kliens oldali számítógép a KIRA rendszer működtetésére.

Részletesebben

openbve objektumkészítés Leírás az objektumkészítéshez használható parancsokról

openbve objektumkészítés Leírás az objektumkészítéshez használható parancsokról Leírás az openbve-vel kompatibilis objektumkészítéshez használható parancsokról 1. oldal openbve objektumkészítés Leírás az objektumkészítéshez használható parancsokról A leírás az openbve-hez készíthető

Részletesebben

Képszerkesztés. Letölthető mintafeladatok gyakorláshoz: Minta teszt 1 Minta teszt 2. A modul célja

Képszerkesztés. Letölthető mintafeladatok gyakorláshoz: Minta teszt 1 Minta teszt 2. A modul célja Képszerkesztés Letölthető mintafeladatok gyakorláshoz: Minta teszt 1 Minta teszt 2 A modul célja Az ECDL Képszerkesztés alapfokú követelményrendszerben (Syllabus 1.0) a vizsgázónak értenie kell a digitális

Részletesebben

Tartalomjegyzék. Előszó... 10

Tartalomjegyzék. Előszó... 10 Előszó... 10 1. Bevezetés a Symbian operációs rendszerbe... 11 1.1. Az operációs rendszer múltja...11 1.2. Az okos telefonok képességei...12 1.3. A Symbian felépítése...15 1.4. A könyv tartalma...17 2.

Részletesebben

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3 Darvay Zsolt Típusok és nevek a forráskódban Állandók és változók Hatókörök és az előfeldolgozó Bevitel és kivitel Kifejezések Utasítások Mutatók Függvények Struktúrák és típusok Állománykezelés C programozás

Részletesebben

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

Számítógépes Grafika SZIE YMÉK Számítógépes Grafika SZIE YMÉK Analóg - digitális Analóg: a jel értelmezési tartománya (idő), és az értékkészletes is folytonos (pl. hang, fény) Diszkrét idejű: az értelmezési tartomány diszkrét (pl. a

Részletesebben

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

1. Mátrixösszeadás és skalárral szorzás 1 Mátrixösszeadás és skalárral szorzás Mátrixok tömör jelölése T test Az M = a i j T n m azt az n sorból és m oszlopból álló mátrixot jelöli, amelyben az i-edik sor j-edik eleme a i j T Példák [ ] Ha M

Részletesebben

Mrend X Extra 3.0 b. - menetrendszerkesztő program leírása -

Mrend X Extra 3.0 b. - menetrendszerkesztő program leírása - 01 Mrend X Extra 3.0 b - menetrendszerkesztő program leírása - A programmal mobiltelefonra, Java 2ME nyelven írt alkalmazásokat futtató készülékre szerkeszthető menetrend. http://mobilmenetrend.hu R-dei

Részletesebben

Árnyalás, env mapping. Szécsi László 3D Grafikus Rendszerek 3. labor

Árnyalás, env mapping. Szécsi László 3D Grafikus Rendszerek 3. labor Árnyalás, env mapping Szécsi László 3D Grafikus Rendszerek 3. labor Egyszerű árnyaló FS legyen egy fényirány-vektor normálvektor és fényirány közötti szög koszinusza az irradiancia textúrából olvasott

Részletesebben

Android alapok. Android játékfejlesztés

Android alapok. Android játékfejlesztés Az Android Studio fejlesztőkörnyezet letöltése, telepítése képernyőképekkel bemutatva, illetve az első programunk létrehozása. (Hello World) Android alapok Android játékfejlesztés Készítette: Soós András

Részletesebben

JavaScript Web AppBuilder használata

JavaScript Web AppBuilder használata JavaScript Web AppBuilder használata Kiss András Esri Magyarország Kft. 2015. október 8. Az ArcGIS Platform lehetővé teszi a Web GIS-t Térinformatika elérése bárhonnan Desktop Web Eszköz Egyszerű Egységes

Részletesebben

8. gyakorlat Pointerek, dinamikus memóriakezelés

8. gyakorlat Pointerek, dinamikus memóriakezelés 8. gyakorlat Pointerek, dinamikus memóriakezelés Házi ellenőrzés Egy számtani sorozat első két tagja A1 és A2. Számítsa ki a sorozat N- dik tagját! (f0051) Egy mértani sorozat első két tagja A1 és A2.

Részletesebben

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS. Fájlkezelés PHP-ben

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS. Fájlkezelés PHP-ben Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 6.ELŐADÁS 2015-2016 Fájlkezelés PHP-ben Fájlok és könyvtárak kezelése 2 A PHP a Javascript-hez hasonlóan, nem képes a felhasználó merevlemezén

Részletesebben

Felhasználói kézikönyv - Android kliens

Felhasználói kézikönyv - Android kliens Felhasználói kézikönyv - Android kliens Tartalom Telepítés Indítás Fő képernyők Térkép Rétegválasztó ablak Kilépés Keresés Lista Részletek Telepítés Az Élő Berek Android alkalmazás letölthető a www.e-berek.hu

Részletesebben

1. DVNAV letöltése és telepítése

1. DVNAV letöltése és telepítése 1. DVNAV letöltése és telepítése A Drén és Valner Szoftver Kft által készített DVNAV programmal lehetőség van a számlázó program által elkészített XML-ek NAV-hoz történő eljuttatására, majd a számlákról

Részletesebben

SysCVideo: fiktív grafikus kártya SystemC modulként, SDL alapú megjelenítéssel

SysCVideo: fiktív grafikus kártya SystemC modulként, SDL alapú megjelenítéssel SysCVideo: fiktív grafikus kártya SystemC modulként, SDL alapú megjelenítéssel Czirkos Zoltán 2015. augusztus 26. Kivonat Az ismertetett SystemC modul egy mikroprocesszoros rendszerhez illeszthető megjelenítő

Részletesebben

Importálás. más típusú (pl:.imp,.xml,.xkr,.xcz) állomány beimportálása a nyomtatványkitöltő programba

Importálás. más típusú (pl:.imp,.xml,.xkr,.xcz) állomány beimportálása a nyomtatványkitöltő programba Importálás Külső programok által generált imp és.xml állományokat be lehet tölteni a program import funkcióival. Az ABEV2006 az xml állományok importálását nem tudta. Ez újdonság a nyomtatványkitöltő programban.

Részletesebben

C programozási nyelv Pointerek, tömbök, pointer aritmetika

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

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

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD M5-. A lineáris algebra párhuzamos algoritmusai. Ismertesse a párhuzamos gépi architektúrák Flynn-féle osztályozását. A párhuzamos lineáris algebrai algoritmusok között mi a BLAS csomag célja, melyek annak

Részletesebben

Ablak és ablakműveletek

Ablak és ablakműveletek Ablak és ablakműveletek 1. Jelölje meg az igaz állításokat! A. A képen egy ablakot lehet látni. B. A Windows operációs rendszerben a mappák és programok ablakokban nyílnak meg. C. Egyszerre csak egy ablakot

Részletesebben

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozási nyelvek JAVA EA+GY 1. gyakolat Programozási nyelvek JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2018/2019. tavaszi félév Tartalom 1 A Java alapjai 2 Java program

Részletesebben

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?

Részletesebben