Megjelenítőmotor fejlesztése az OpenGL grafikus könyvtárral

Konzulens:
Dr. Szécsi László
Tárgy:
Önálló laboratórium 1 - Vizuális informatika főspecializáció, MSc Info.
Önálló laboratórium 2 - Vizuális informatika főspecializáció, MSc Info.
Hallgatói létszám:
1
Folytatás:
Szakdolgozat / Diplomaterv
Leírás:
A 3D grafikus gyorsítókártyák Shader Model 5-es generációja újfajta, részekre bontott állapotmodellel rendelkezik, amely az állapotváltások korlátozásával nagyobb teljesítmény elérését teszi lehetővé. Erre az architektúrára illeszkedik a modern OpenGL grafikus könyvtár felépítése, és a GLSL programozási nyelv.
Ugyanakkor a mai grafikus motoroknak a textúrába rajzolás (render-to-texture) technikára épülő, többlépéses grafikai algoritmusokat is támogatnia kell, és egy színtér-objektum különböző rajzolási lépésekben különböző módon jelenhet meg. (Pl. árnyék-térképek esetén az árnyék térkép készítésekor nem kell árnyalni, a képernyőre rajzoláskor pedig kell.) Ez nem felel meg a korábbi grafikus rendszerek felépítésének, ahol egy tárgyhoz jellemzően egy „anyag”, illetve árnyalási eljárás létezik.
 
Feladat:
Megvalósítandó OpenGL grafikus könyvtár alkalmazásával egy általános keretrendszer, ami XML vagy szöveg formátumú (script) fileokból képes egy színtér felépítésére és megjelenítésére.
A feldolgozott fileokban a tárgyakhoz (szereplőkhöz) különböző képalkotási lépésekben (felvonásokban) megjelenítési eljárások (szerepek) rendelhetőek. Hasonlóképpen, lehetőséget kell biztosítani egy megjelenítési koreográfia (színdarab) definiálására. A tárgyakhoz (szereplőkhöz) textúrák és egyéb erőforrások (kellékek) rendelhetők.
A rendszer működésének igazolására például az árnyék-térkép (depth shadow map) algoritmust, valamint a környezeti leképezést (environment map) meg lehet valósítani.
 
Követelmények:
C++ programozás, grafikai vagy játékfejlesztési alapismeretek
 
Folytatás:
A keretrendszer szinte bármilyen grafikai algoritmussal bővíthető: többszörösen törő tárgyak, kausztikus fényjelenségek, részecske-rendszerek.
Megjelenítéskor a kirajzolandó elemeket a megkívánt rajzolási állapot szerint rendezve, minimális állapotváltozással lenne hatékony feldolgozni.
A grafikus motor fizikai motorral (pl. PhysX) is összekapcsolható, vagy egyéb funkciókkal teljesebb játékmotor irányába fejleszthető.