Animace pro CAVE (Dynamická simulace pevných těles)


Autoři:

Filip Hřebačka, Martin Kováčik


Rešerše:

Pro splnění tohoto zadání si myslíme, že bude vhodné použít jeden z algoritmů řešících „The Problem of Collison Detection“.

Collison Detection

Úkolem těchto algoritmů je věrně simulovat chování pevných těles, které do sebe v průběhu simulace naráží. (Příkladem může být počítačová simulace Billiardu). Tento problém je možné řešit pomocí celé řady přístupů. Simulátory se většinou liší v tom, jak reagují na kolizi (např.):

  • Využívají měkkost materiálu, pro výpočet výsledné síly - jako je tomu ve skutečnosti (náročné na CPU).
  • Odhadnou čas kolize pomocí lineární interpolace. Udělají krok zpět a samotnou kolizi spočítají jinou metodou.
  • Vícekrát opakují lineární interpolaci pro větší přesnost. (Newtonova metoda).
  • Atd…

Lze říci, že simulátory k řešení kolizí přistupují jedním ze dvou způsobů:

  • „discrete“ = po kolizi něco udělej
  • „continuous“ = před kolizí něco udělej

Velkým problémem všech simulátorů je optimalizace. Zvláště pokud je na scéně mnoho objektů, nebo objekty s komplexní geometrií. Proto simulátory využívají řadu optimalizačních metod:

  • Exploiting temporal koherence = využívá výpočty z předchozího kroku
  • Pairwise pruning = snaží se snížit počet párů trojúhelníků, které musíme kontrolovat
  • Exact pairwise collision detection = využívá konvexity objektů
  • A priori pruning = „continuous“ metody využívají „předpočítávání“ k urychlení alg.
  • Spatial partitioning = využívá BSP stromy
  • Atd…

V naší aplikaci budeme simulovat detekci kolizí koulí (případně krychlí, bude-li dpstatek času). pro urychlení výpočtu kolizí použijeme mřížku, nebo octree. Objekty se budou pohybovat uvnitř velké krychle, od které se budou odrážet. Bude také možné zapnout tření(objekty budou zpomalovat). Bude zde také více možných zdrojů gravitace(přitažlivé i odpudivé). Aby byla aplikace interaktivní a zábavná, tak bude uživatel moci jedním zdrojem gravitace pohybovat a měnit jeho intezitu.

Řešení bude implementováno v jazyce C++, OpenGL a glutu.

 
a4m39mma/6.txt · Poslední úprava: 2010/12/11 12:20 (upraveno mimo DokuWiki)
 
Kromě míst, kde je explicitně uvedeno jinak, je obsah této wiki licencován pod následující licencí: GNU Free Documentation License 1.3
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki