A harmadik házifeladat a népszerű Minecraft játék egyszerűsített implementálása lesz. Link
Követelmények:
A játékot 3 dimenzióban kell implementálni.
Egy 3D térben lehessen moyogni, forogni.
Legyen egy talaj sík, ami alá nem lehet bemenni, és minden lehelyezett objektumnak egy síkon kell elhelyezkednie ami lehet maga a talaj, vagy egy már másik lehelyezett építőelem teteje. Azaz építőelem nem lebeghet szabadon a térben!
Az építőelemek a jól ismert hagyományos Tetris játék 3D alakzatai kell hogy legyenek.
A játék célja, hogy a játékos tetszőleges formákat építhessen az előre definiált építőelemek lerakásával. Lehessen minden rakás előtt kiválasztani, hogy milyen elemet szeretnénk lerakni.
Az egyes elemek nagyságát lehessen méretezni, és tetszőlegesen forgatni, tovább a 3D tér tetszőleges pozíciójába lehelyezni. (csak sík felületre kerülhet új elem)
Minden elemnek külön lehessen színt és textúrát beállítani. Textúra esetén lehessen kiválasztani pár előre definiáltat. (Kő, fa, növényzet, fém ...)
A feladat továbbá fényforrások elhelyezése, hogy jól láthatóak legyenek az épített alakzatok.
Plusz feladat: Lehessen elmenteni az épített objektumokat és ezt lehessen később betölteni és folytatni az építést.
Plusz feladat: Lehessen törölni már letett építő elemet, figyelve arra, hogy mindig csak a legfelső elemet vehessük el.
Plusz feladat: Lehessen már lehelyezett elemt máshova áthelyezni.
Kritériumok:
A feladat önálló munka! Másolás esetén 0 pont, ez igaz az internetről letöltött kódokra is.
A feladatot a modern OpenGL (>3.3 core) vertex-fragment shader pipeline működésével kell megoldani.
A kód lényegi részeit dokumentációs kommentekkel kell ellátni.
Egy .zip fileban a forrásfájlokat (.h, .hpp, .cpp), a shader fájlokat és a beolvasáshoz szükséges fájlokat kell beküldeni. Mást nem tartalmazhat a .zip fájl!