Przegląd ważniejszych bibliotek używanych przy projekcie Quall.
Quall Biblioteka fizyczna: Bullet Silnik grafiki 3D: OGRE
Bullet Biblioteka umożliwiająca w łatwy sposób opisanie fizycznego świata oraz typów interakcji pomiędzy obiektami. Objęta licencją typu Open-source.
Udział Bulleta i innych popularnych na rynku : NVidia Physx (26.8%) Havok Physics (22.7%) Bullet (10.3%) Wśród open-sourceowych Bullet jest najpopularniejszy.
Używany do: Detekcji kolizji. Fizyki ciała stałego. Fizyki ciała miękkiego. Różnych typów połączeń obiektów (wtf?)
Świat i obiekty, które sobie definiujemy: Kształty (kula, sześciań,) Masę Itp..
Przekazujemy to bulletowi, który oblicza nowe położenie obiektów, ich stany itp.. Częstotliwość odświeżania my ustalamy – np. renderowanie klatki animacji.
W naszym projekcie: Wyłącznie fizyka ciała stałego. Obiekty tworzy główny silnik gry zgodne ze skryptem. Bullet otrzymuje informacje o pociskach, graczach, ich kierunkach itp.. Ma za zadanie szybko wyliczyć ich położenie, efekt kolizji itp..
OGRE (Object-Oriented Graphics Rendering Engine) Silnik grafiki 3D napisany w C++ Wspomaga tworzenie aplikaji wykorzystujących grafikę 3D (np. gier). Licencja LGPL
Inne popularne: RealmForge Truevision3D Crystal Space
Wspomaga tworzenie grafiki 3D. Udostępnia interfejs do operowania obiektami uprzednio utworzonych. Zajmuje się szczegółami technicznymi wspomagany OpenGL i Direct3D.
Użycie: Inicjalizacja głównego obiektu. Potrzebnych zasobów (tekstury itp.) Tworzymy okno Ustawiamy system wejścia-wyjścia Włączamy główną pętlę programu, która renderuje kolejne klatki. Przy czym w międzyczasie obsługujemy zdarzenia wejścia i uwzględniamy zmiany wprowadzone przez silnik fizyczny.
Zorientowany na zarządzanie sceną. W przestrzeni trójwymiarowej ustalamy punkty, do których w przyszłości będziemy przyczepiać Obiekty (modele płaszczyzny). Wyróżniający się element – kamera. Określa jaka częśc sceny jest widoczna dla użytkownika.
Wraz z SDK otrzymujemy kilka przykładowych tekstur, mesh'ów (pliki opisujące siatkę obiektów w przestrzeni). Dzięki istniejącym exporterom można stworzyć własny obiekt np. w Blenderze albo Google SketchUp i dołączyć go do zasobów swojego projektu.