Demax
Vykreslovací 3D engine s rozšírenou podporou modifikácií. Využíva OpenGL vykreslovaciu knižnicu obalenú OpenTK. Pre spracovanie fyzikálnych javov používam Jitter Physics. Taktiež som implementoval podporu jazyka IronPython, nech je život ľahší.
Funkcie:
- Primitívny model hierarchie, kde základnou jednotkou je komponent. Každý komponent musí byť súčasťou entity, ktorá je zasa tvorená levelom.
- Jednoduchý vykreslovací systém, ktorý využíva OpenGL 3.3 na spracovanie pokročilých shaderov. Momentálne je možné vykresliť statické modely tvorené z primitív alebo načítané z Wavefront OBJ formátu. Obj parser momentálne podporuje definície materiálov (zatiaľ využíva len textúry), bodov, UV súradníc a normálov. Strany využíva na dodatočné spracovanie. Parser dokáže načítať multiobjektové modely (tj. modely, kt. sa skladajú z viacerých meshov). Pri vykreslovaní sa používa VBO (Zásobník množiny bodov), čiže parser musí dodatočne vypočítať strany na základe existujúcich informácií. V ukážkovom kóde poskytujem shadery pre fullbright otexturované modely, ale aj nasvetlené modely (neskôr príde implementácia snímkového zásobníka, tj. možná podpora tieňov)
- Kolízie. Vďaka Jitter je realizácia fyziky pomerne jednoduchá. Pre primitívy (kocka, ...) využíva tieňové kolízie. Pre zložité modely je možné použiť per-vertex kolízie (sú veľmí náročné na CPU)
- IronPython: Testy programujem v IronPython, kt. ma plný prístup k použitým knižniciam
- ...
Engine je dostupný pod BSD licenciou.
60-70% kódu je momentálne dočasné. Slúži ako dôkaz o funkčnosti a v budúcnosti bude prečistené a zdokumentované.
Engine je dostupný tu: https://github.com/zaklaus/demax
Engine slúži na edukačné účely.
Všetky testy sú dostupné na GitHub-e. Na vývoj používam Visual Studio 2013.
V prípade záujmu môžete príspevky posielať na dev vetvu, cez Pull Request.
Chyby môžete hlásiť v Issues sekcií.
Príspevok budem časom upravovať.