Harmadik Grafika házifeladat


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.

Beadás:

  • Határidő: 2020.05.10 23:59:59
  • Bemutatás: 2020.05.11 16-18 között
  • Beküldés: balazs.nagy.it@gmail.com -- tárgy neptunkód_grafika_hf_03
  • 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!