Możliwości biblioteki logiczno-fizycznej opartej na systemie masa-sprężyna jako środowiska modelowania rzeczywistości wirtualnej. Projekt systemu Seminarium dyplomowe, Rudnicki Piotr Promotor: dr inż. Jacek Lebiedź ©
Plan prezentacji Wymagania projektu Weryfikacja założeń Rozwiązania architektury Bibliografia
Wymagania projektu (1/7) Projekt powinien pozwalać na zrealizowanie: P1: tworzenia układów w oparciu o metodę masa-sprężyna (MSS) tworzenie punktów tworzenie sprężyn P1: określanie masy (punktów materialnych), współczynnika sprężystości, tłumienia, długości inercjalnej (sprężyny) wpływ na stabilność symulacji
Wymagania projektu (2/7) P2: tworzenia układów w oparciu o metodę ciśnieniową (PSBM) metoda korzysta z MSS ciekawa do zastosowań w grach P2: zmiana współczynników metody ciśnieniowej wpływ na stabilność symulacji P3: łączenia technik MSS i PSBM wpływ na stabilność symulacji
Wymagania projektu (3/7) P1: porównania technik całkowania: Euler, SemiEuler, MidPoint, Runge-Kutta(IV), Verlet, Newton wpływ na stabilność i wydajność symulacji P2: dodawania dodatkowych ograniczeń, np. w oparciu o długość sprężyn i kąt ich nachylenia względem siebie wpływ na stabilność symulacji efektowne, dobre do zastosowania w grach
Wymagania projektu (4/7) P3: tworzenia obiektów w oparciu o metodę particle system (PS) szeroko wykorzystywane w grach
Wymagania projektu (5/7) P2: wstawiania obiektów logicznych, wpływających na właściwości obiektów lub samej symulacji wpływ na stabilność symulacji ciekawe efekty w grach P3: obsługi kolizji pomiędzy obiektami
Wymagania projektu (6/7) Zastosowanie w edukacji i tworzeniu gier: P1: zapis i odczyt scen: obiektów i ich właściwości G: umożliwienie maksymalnej kontroli w czasie rzeczywistym nad symulacją i właściwościami obiektów także niezgodne z fizyką: ujemna masa, przemieszczanie bez użycia sił P1: wsparcie dla pozyskiwania wyników w szczególności dane dla wykresów
Wymagania projektu (7/7) G: wsparcie dla wizualizacji zjawisk zabawa z kolorami obiektów P2: wsparcie dla odczytu i zapisu modeli na podstawie plików graficznych
Weryfikacja założeń (1/2) Znaczna część pracy zostanie poświęcona na budowę i testowanie piaskownicy symulacyjnej Wizualizacja – tylko 2D choć obiekty umożliwiają symulację 3D
Weryfikacja założeń (2/2) Duży nacisk na zastosowanie biblioteki MSS w grach: eksporter / importer scen wsparcie dla tworzenia modeli na podstawie plików graficznych niezbędne w celach edukacyjnych niezbędne do testowania biblioteki
Rozwiązania architektury (1/3) Niezbędne składniki systemu: stworzenie biblioteki MSS i bibliotek pomocniczych: klasy nie związane z symulacją, np. odczyt / zapis plików stworzenie piaskownicy – aplikacji demonstrującej w oparciu o bibliotekę QT szybkie i dość proste budowanie złożonego interfejsu
Rozwiązania architektury (2/3) podział na trzy warstwy: warstwa interfejsu – aplikacja QT – piaskownica warstwa zarządzająca, wbudowana w piaskownicę warstwa symulowanych obiektów podział na dwa projekty biblioteka MSS – zbiór klas i funkcji umożliwiająca tworzenie i podstawowe zarządzanie obiektami symulacji piaskownica – wizualizacja i zarządzanie całą resztą
Rozwiązania architektury (3/3) wizualizacja w oparciu o bibliotekę OpenGL i wbudowane funkcje QT (oparte o OpenGL) przeniesienie całości wizualizacji do aplikacji QT zwiększenie spójności kodu zarządzanie z poziomu interfejsu: obiekty symulacji otoczone warstwą zarządzającą reprezentacja graficzna niezależna od obiektów symulacji – możliwość tworzenia obiektów graficznych nie związanych z symulacją
Bibliografia [Mat02] Matyka M.: Symulacje komputerowe w fizyce. Helion, [Ebe05] Eberly D.: 3D Game Engine Architecture: Engineering Real- Time Applications with Wild Magic. Elsevier Inc., [Mil07] Millington I.: Game Physics Engine Development. Elsevier Inc., [Wer09] Werth B.: Multi-Core Simulation of Soft-Body Characters Using Cloth [Dal03] Dalmau D.: Core Techniques and Algorithms in Game Programming. New Riders, [Ebe04] Eberly D.: Game Physics. Elsevier Inc., [Eri05] Ericson Ch.: Real-Time Collision Detection. Elsevier Inc., i inne.
Pytania? Uwagi?