SharpDX alapú grafikus motor fejlesztése

OData támogatás
Konzulens:
Dr. Szécsi László
Irányítástechnika és Informatika Tanszék

A Direct3D grafikus képességeit a menedzselt programnyelvek kényelmes, hatékony fejlesztési lehetőségeivel korábban az XNA, most – többek között – a SharpDX rendszer kapcsolja össze. Erre a technológiára építve az alacsony szintű funkciók újraimplementálása nélkül, a játékmotor magasabb szintű szervezési kérdéseire lehet koncentrálni.

Diplomámban áttekintem a DirectX 11 és a SharpDX grafikus API-kat és a 3D grafikus motorok szokásos funkcióit, és bemutatom az általam implementált grafikus motor objektum-orientált szoftver-architektúráját és az általa nyújtott interfész elemeit.

Kitérek grafikus motor által használt asset-kezelés és videómemória-menedzsmentet kérdéseire, és bemutatok egy modellt, melynek segítségével rugalmasan konfigurálható módon képes az implementált grafikus motor különböző renderelési technikák együttes alkalmazására. Bemutatom néhány, 3D játékokban használt grafikai megvalósítás hatékony implementációját az elkészített grafikus motor segítségével. Kitérek arra, hogy milyen modellek segítségével oldható meg a jelenetek megvilágítása és ebben hogyan lehet árnyékokat előállítani. Bemutatom, hogy milyen technikák segítségével lehet hatékony módon kirenderelni sok objektumból álló jeleneteket és, hogy hogyan tehető adaptívvá a jelenetben szereplő elemek renderelése.

A grafikus motor mellett elkészítek egy meglévő fizikai motort felhasználó komponenst, melynek segítségével a grafikus és fizikai objektumok egymással szinkronba hozhatóak. Leírom, hogy hogyan oldottam meg a bemeneti eszközök kényelmes kezelését.

A grafikus és fizikai motor által nyújtott szolgáltatásokat felhasználva implementálok egy játékmotort, amely a grafikus motor funkcionalitását bővítve és a fizikai modellel szinkronban tartva a 3D-s játékokban gyakran használt elemek kényelmes kezelését biztosítja.

Az elkészített szoftver-komponenseket egy alkalmazásba integrálom és egy egyszerű demó jelenetet és mini játékot készítek el ezek segítségével.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.