Przegląd zagadnień Możliwości biblioteki logiczno-fizycznej opartej na systemie masa-sprężyna jako środowiska modelowania rzeczywistości wirtualnej. Przegląd zagadnień Seminarium dyplomowe, Rudnicki Piotr Promotor: dr inż. Jacek Lebiedź © 2009-2010
Plan prezentacji Wstęp do tematu Zagadnienia obejmujące temat Podsumowanie Omówienie już istniejących rozwiązań Cel pracy – biblioteka MSS
Wstęp do tematu Fizyka: nauka: np. budowa i działanie świata codzienność: np. budownictwo, architektura, materiały rozrywka: zabawki, filmy, gry - fizyka pociąga za sobą rozwój świata - fizyka stale pomaga też w codziennym życiu: materiały, konstrukcje (budowlane) - fizyka daje poczucie realizmu które potrzebne jest w filmach sf, w grach komputerowych
Symulacja przepływu powietrza między audytorium a sceną (poziom sceny) Wstęp do tematu Symulacja przepływu powietrza między audytorium a sceną (poziom sceny) http://www.muratorplus.pl/media/image/18896/image/a74ae7f563858f509e35cb 34f432d33411e83890.jpg
Genesis. Star Trek II: The Wrath of Khan. Wstęp do tematu Genesis. Star Trek II: The Wrath of Khan. http://atec.utdallas.edu/midori/Handouts/procedural_animation_files/genesis.jpg
Wstęp do tematu World Of Goo http://www.co-optimus.com/images/upload/image/world-of-goo.jpg
Wstęp do tematu Fizyka: zależna od obliczeń komputerowych wiele algorytmów wykorzystywanych dla osiągnięcia realnych wyników - dziś obliczenia fizyczne zależne od komputerów - zlozonosc algorytmow wymaga stosowania komputerow
Wstęp do tematu Przykłady rozwoju sprzętu i oprogramowania: procesory: wielordzeniowe procesory, MIMD karty graficzne: SLI / CrossFire, Tesla karty fizyczne: PhysX technologie GPGPU: CUDA, OpenCL, Direct Compute Praktyczne wykorzystanie obliczeń fizycznych - na potrzeby zagadnień związanych z fizyką rozwijają się różne technologie - grafika komputerowa powiązana z fizyką sprzętowo – różne zastosowanie układów - także kontekstowo – przy wizualizacji zjawisk fizycznych
realizm ↔ koszty, realizm != sukces Wstęp do tematu Systemy naukowe i komercyjne obliczenia naukowe, bezpieczeństwo Przemysł rozrywkowy, gry komputerowe wizualizacja zjawisk gry oparte przede wszystkim na symulacji fizycznej realizm ↔ koszty, realizm != sukces - różnice w podejściu do symulacji fizycznych od strony nauki i biznesu - sukces gry obsadzone w świecie rzeczywistym uzależniony częściowo od realizmu ale - gracza obchodzi tylko to co widzi - realizm rozwiązania nie przekłada się na sukces - na pewno realizm rozwiązania przekłada się na koszty
Zagadnienia obejmujące temat Symulacja (np. w grach komputerowych): pierwotny proces fizyczny modelowanie algorytm symulacji program komputerowy symulacja – uruchomiony program wizualizacja - najpierw trzeba zdefiniować procesy które chcemy mieć - zamodelować je – mieć świadomość co to jest, skąd się bierze, jakie ma skutki - zaprojektować algorytm który umożliwi symulację - napisać program który realizuje algorytm - symulacja to uruchomiony program - potrzebna jest też wizualizacja
Zagadnienia obejmujące temat System cząsteczkowy najbardziej zbliżony do rzeczywistości punkty materialne 3 stopnie swobody - co chcemy symulować? – świat rzeczywisty - można to zrobić na kilka podejść - najprostsze podejście – cząsteczki - ciągle obecne w symulacjach - duże możliwości niskim kosztem - trudno wizualizować - trudno osiągnąć skomplikowane układy - zwłaszcza w połączeniu z interakcją - zarządzanie cząsteczkami jest istotne – życie, czas życia, śmierć
Zagadnienia obejmujące temat Zastosowanie systemów cząsteczkowych: „rzadkie” obiekty, np. zjawiska atmosferyczne obiekty złożone, w których nie występują bezpośrednie siły wewnętrzne przepływ substancji ściśliwych - obiekty rzadkie: atmosferyczne np. deszcz, pas asteroid, ogon komet - złożone: kupa piachu, śnieg; - substancje ściśliwe: gaz, ciecz, ogień http://www.nasa.gov/* http://www.caebridge.com/* http://www.cs.utah.edu/~bronson/projects.htm
Zagadnienia obejmujące temat Model bryły sztywnej punkty materialne z ograniczeniami 6 stopni swobody skomplikowana matematyka - rozszerzenie idei punktów materialnych - większość gier ogranicza się do wykorzystania brył sztywnych - dla gier – najbardziej powszechne - z uproszczeniami – otoczki - często eliminuje się 3 stopnie swobody zw. z obracaniem
Zagadnienia obejmujące temat Zastosowanie brył sztywnych: typowe obiekty bez możliwości zmiany kształtu wykrywanie i obsługa kolizji - mechanika brył sztywnych - animacja to nie zmiana kształtu – bo obiekt animowany to zazw. chmura punktów - kolizje: modele zamknięte w uproszczone bryły sztywne http://iit.fundoobanda.com/* http://playtechs.blogspot.com/2007_07_01_archive.htm
Zagadnienia obejmujące temat W systemach obsługujących bryły sztywne można też znaleźć: połączenia (ang. joints) i ograniczniki (ang. constrains) inne specyficzne – hydraulika, motory itp. - zagadnienia związane z mechaniką – konkretnie z kinematyką - połączenia – pozwalają na łączenie ze sobą elementów lub unieruchomianie ich - ograniczniki i połączenia pozwalają na realizację powiązanych ze sobą układów brył sztywnych – par kinematycznych http://micoz.ovh.org/?p=101 http://www.phunland.com/*
Zagadnienia obejmujące temat System masa-sprężyna – jedna z technik modelowania ciała plastycznego struktury punktów materialnych 3 stopnie swobody bardziej zbliżone do rzeczywistości - MSS pozwala na osiągnięcie realistycznych efektów inną metodą, choć czasem jest to skomplikowane - pozwala także na realizowanie innych rzeczy niemożliwych do uzyskania poprzednimi metodami
Zagadnienia obejmujące temat Zastosowanie systemu masa-sprężyna: liny – włosy, kable tkaniny – flaga, obrus, ubranie ciała plastyczne – miękkie kolizje, gumowa piłka, amortyzatory, substancje – ściśliwość - MSS pozwala na ciekawe efekty wpływające na realizm gry w odczuciach gracza http://cowboyprogramming.com/* http://wwwcg.in.tum.de/* http://www.fractionalplates.com/images/the_blob.jpg
Zagadnienia obejmujące temat MSS to innego rodzaju problemy niż dla brył sztywnych: stabilność wydajność interakcja z innymi elementami świata - stabilność: krok czasowy, niedokładność obliczeń - interakcja czyli wykrywanie kolizji itd
Podsumowanie Podsumowanie: ciała plastyczne to odpowiednio połączone zbiory punktów materialnych umożliwiają to, czego technika ciał sztywnych nie jest w stanie zamodelować znacznie bardziej skomplikowane (modelowanie, symulacja, interakcja)
Podsumowanie Techniki modelowania ciał plastycznych: system masa-sprężyna metody ciśnieniowe metody elementów dyskretnych wiele innych, które nie nadają się do zastosowań w grach komputerowych - metody nie nadające się do wykorzystania w grach to metody analityczne np. całek brzegowych
Omówienie już istniejących rozwiązań Wiele komercyjnych i darmowych rozwiązań „Wielkie” silniki fizyczne nastawione na branżę rozrywkową: ODE, Bullet, Ageia, Havok, Newton Lekkie silniki „studenckie”: Jello, Physical, Phun Silniki nastawione na wykorzystanie w technice: Yade i wiele wiele innych
Omówienie już istniejących rozwiązań „Wielkie silniki”: ODE - wsparcie dla fizyki ciał sztywnych i pojazdów: wiele różnych rodzajów połączeń pomiędzy bryłami sztywnymi obsługa kolizji tarcie
Omówienie już istniejących rozwiązań „Wielkie silniki”: Bullet - symulacje brył sztywnych detekcja kolizji ograniczniki i połączenia wsparcie dla fizyki pojazdów i kreatur obliczenia równoległe Wsparcie dla ciał plastycznych budowanie ciał z trójkątów proste kolizje
Omówienie już istniejących rozwiązań „Wielkie silniki”: Ageia, Havok, Newton: Rozbudowane Brak możliwości podejrzenia kodu
Omówienie już istniejących rozwiązań „Wielkie silniki”: główne wady: brak wyraźnego wsparcia dla ciał plastycznych brak piaskownicy nastawione na obsługę gotowych modeli 3d przejmowanie kontroli nad programistą skomplikowane rozwiązania i setki tysięcy linii kodu - brak funkcji typu lina, płachta - brak konwersji mesh – MSS - brak piaskownicy – niektóre właściwości symulacji nie mogą być zmieniane w trakcie działania aplikacji, albo są one ukryte - silniki które wymagają używanie ich w określony sposób
Omówienie już istniejących rozwiązań „Silniki studenckie”: Phun: 2d rozbudowana piaskownica / edytor ciał wsparcie dla ciał sztywnych wiele rodzajów połączeń i ograniczeń wsparcie dla systemu cząsteczkowego walory edukacyjne brak wolnej licencji - powstał jako praca magisterska, ale teraz jest ZNACZNIE rozbudowany - substancje modelowane za pomocą systemu cząsteczkowego z otoczką
Omówienie już istniejących rozwiązań
Omówienie już istniejących rozwiązań „Silniki studenckie”: Jello: 2d biblioteka z której można swobodnie korzystać otwarty kod system sprężyn modele ciśnieniowe C++ / C# / XNA C# i inne, wspiera konsole i telefony
Omówienie już istniejących rozwiązań
Omówienie już istniejących rozwiązań „Silniki studenckie”: Physical: 2d otwarty kod edytor obiektów z możliwością generowania obiektów z plików *.tga sprężyny i cząsteczki możliwość pękania, rwania i eksplodowania ciał elementy dla gier (np. obsługa klawiatury)
Omówienie już istniejących rozwiązań
Cel pracy – biblioteka MSS Wsparcie dla systemu masa-sprężyna symulacja lin, tkanin i substancji ściśliwych / ciał plastycznych system masa-sprężyna, systemy cząsteczkowe, system ciśnieniowy Piaskownica – możliwość wprowadzenia modyfikacji w czasie działania symulacji: modelowanie ciał i określanie ich właściwości pełna kontrola nad symulacją - biblioteka w postaci klas do wykorzystania - nastawiona na symulację ciał plastycznych w różny sposób - piaskownica to też edytor ciał
Cel pracy – biblioteka MSS Stworzenie biblioteki – nie silnika możliwość częściowego wykorzystania w nieskomplikowanych grach Elementy logiczne gadżety: czujniki, przełączniki; elementy wpływające bezpośrednio na właściwości fizyczne: wentylatory, wiry, antygrawitacja itp. próba realizacji połączeń i ograniczników dla ciał plastycznych Zadania dla studentów : ) - nie przejmuje kontroli nad aplikacją, można wykorzystać częściowo
Bibliografia [Mat02] Matyka M.: Symulacje komputerowe w fizyce. Helion, 2002. [Ebe05] Eberly D.: 3D Game Engine Architecture: Engineering Real-Time Applications with Wild Magic. Elsevier Inc., 2005. [Mil07] Millington I.: Game Physics Engine Development. Elsevier Inc., 2007. [Wer09] Werth B.: Multi-Core Simulation of Soft-Body Characters Using Cloth. http://www.gamasutra.com, 2009. [Dal03] Dalmau D.: Core Techniques and Algorithms in Game Programming. New Riders, 2003. [Ebe04] Eberly D.: Game Physics. Elsevier Inc., 2004. [Eri05] Ericson Ch.: Real-Time Collision Detection. Elsevier Inc., 2005. i inne.
Pytania? Uwagi?