Předběžné zadání diplomové práce:Navrhněte a implementujte modulární aplikaci sloužící jako jádro pro zpracování a vizualizaci 3D dat. Zaměřte se na návrh flexibilní modulární architektury pro efektivní použití externích modulů. Externí moduly budou v podobě dynamických knihoven s podporou vícevláknového zpracování. Zajistěte běh aplikace na operačních systémech Microsoft Windows a Linux.
Implementujte datové struktury pro graf scény do jádra aplikace. Graf scény bude možné modifikovat a musí podporovat reprezentaci tzv. variant jednotlivých částí scény. Aplikaci bude možné předat parametry z příkazové řádky a pomocí textového terminálu zadávat příkazy jádru aplikace a připojeným modulům.
Implementujte modul pro import a export grafických formátů FHS a OBJ, dále modul pro intuitivní ovládání kamery a modul pro zobrazení scény pomocí knihovny OpenGL.
K implementaci použijte jazyk ANSI C++ a využijte knihovny wxWidgets. Součástí práce bude dobře dokumentovaný zdrojový kód a přehledný návod k programu.
Hrubý návrh architektury aplikace:
Poznámky k návrhu
- vzhledem k nežádoucí závislosti na další knihovně a v případě použití OpenSceneGraph navíc zbytečné funkčnosti, bude graf scény implementován vlastní datovou strukturou
- prvek Scene BVH v jádře bude zjednodušenou implementací BV hierarchie, kterou bude možné nahradit externím modulem
- externí modul BVH bude moci využívat zjednodušené metody Scene BVH v případě potřeby
- dynamika objektů bude řešena vložením daného uzlu/uzlů scény do fronty procesů. Objekty ve frontě budou volány v hlavní smyčce skrze definovaný interface implementující aktualizační metody