Porovnání Fyzikálních Simulací V Oblasti Počítačové Grafiky
Total Page:16
File Type:pdf, Size:1020Kb
MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Porovnání fyzikálních simulací v oblasti počítačové grafiky BAKALÁŘSKÁ PRÁCE Libor Materna Brno, jaro 2014 Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Libor Materna Vedoucí práce: Mgr. Jiří Chmelík, Ph.D. ii Poděkování Na tomto místě bych velmi rád poděkoval svému vedoucímu bakalářské práce Mgr. Jiřímu Chmelíkovi, Ph.D. za jeho odborné vedení práce a cenné rady. Také bych rád poděkoval rodině a přátelům za jejich podporu. iii Shrnutí Cílem této bakalářské práce je popsat druhy fyzikálních simulací, které jsou využívány v oblasti počítačové grafiky. V této práci porovnávám i některé tyto simulace v současných 3D modelovacích programech, konkrétně v Blender, Cinema 4D a Maya. Také demonstruji fyzikální prostředí používané v dnešním herním průmyslu, které používá fyziku v reálném čase. iv Klíčová slova: Cinema 4D, Maya, Blender, engine, mechanika, simulace, fyzika, 3D grafika v Obsah 1 Úvod ............................................................................................................................... 1 1.1 Cíl práce .................................................................................................................. 1 2 Fyzikální mechanika v reálném světě ......................................................................... 3 2.1 Kinematika ............................................................................................................. 3 2.2 Dynamika ............................................................................................................... 3 2.2.1 Newtonovy pohybové zákony ..................................................................... 3 2.2.2 Hybnost ........................................................................................................ 4 2.2.3 Mechanická práce a energie ........................................................................ 4 2.3 Gravitace ................................................................................................................. 5 2.4 Mechanika tuhého tělesa ........................................................................................ 5 2.5 Mechanika pružných (měkkých) těles .................................................................... 5 2.6 Mechanika tekutin .................................................................................................. 5 3 Výpočet simulace fyziky v počítačové grafice ............................................................ 7 3.1 Simulace pružných objektů .................................................................................... 7 3.1.1 Výpočet trajektorie ...................................................................................... 8 3.2 Simulace tkaniny .................................................................................................... 8 3.2.1 Implicitní integrace ...................................................................................... 9 3.2.2 Výpočet síly ................................................................................................. 9 3.3 Výpočet komplexních vlasů ................................................................................. 10 3.3.1 Dynamika jednotlivého vlasového vlákna ................................................. 10 3.3.2 Řídký model pro interakci několika vlasů ................................................. 11 3.4 Simulace tekutiny ................................................................................................. 11 3.4.1 Metody simulace ....................................................................................... 12 3.4.2 Metoda nastavení úrovně částic ................................................................. 12 3.4.3 Rychlost a hybnost hladiny kapaliny ......................................................... 12 3.5 Simulace sypkých materiálů ................................................................................. 13 3.5.1 Modelování sypkých materiálů ................................................................. 13 3.6 Simulace kouře ..................................................................................................... 14 3.6.1 Vykreslení kouře........................................................................................ 15 vi 3.7 Simulace ohně ...................................................................................................... 16 3.7.1 Implementace ohně .................................................................................... 16 3.7.2 Jednoduchý model ohně ............................................................................ 17 4 Fyzikální simulace v současných 3D modelovacích programech ........................... 19 4.1 Fyzikální moduly používané v Cinema 4D R15 .................................................. 19 4.2 Fyzikální moduly používané v Maya 2014 .......................................................... 20 4.3 Fyzika v Blender v2.69 ......................................................................................... 21 4.4 Porovnání fyzikální simulace na příkladech ......................................................... 21 4.4.1 Příklad s tuhými a kolizními tělesy ........................................................... 22 4.4.2 Příklad se simulací tkaniny ........................................................................ 25 4.4.3 Příklad se simulací trávy............................................................................ 28 4.5 Shrnutí výsledků u všech příkladů ....................................................................... 29 5 Fyzikální engine ve virtuálním herním světě ........................................................... 31 5.1 Důležité vlastnosti fyzikálních enginů ................................................................. 31 5.1.1 Detekce kolizí ............................................................................................ 31 5.1.2 Částicový systém ....................................................................................... 31 5.1.3 Ragdoll fyzika ........................................................................................... 32 5.2 Nejznámější fyzikální enginy ............................................................................... 32 5.2.1 CryEngine .................................................................................................. 32 5.2.2 PhysX ........................................................................................................ 32 5.2.3 Havok ........................................................................................................ 33 5.2.4 Euphoria .................................................................................................... 33 5.2.5 Frostbite Engine ......................................................................................... 33 5.2.6 Bullet ......................................................................................................... 34 5.2.7 Box2D ........................................................................................................ 34 5.3 Demonstrace CryEnginu a Unity .......................................................................... 34 6 Závěr ............................................................................................................................ 37 Literatura ......................................................................................................................... 38 Přílohy .............................................................................................................................. 42 vii 1 Úvod Fyzika, jejíž jméno je odvozeno z řeckého slova „fysis“ (příroda), byla původně vědou o přírodě, tedy souhrnem všech přírodních věd, které se z ní průběhem staletého vývoje postupně oddělovaly. Jevy, kterými se zabývá fyzika, se nazývají fyzikální jevy. Lze je rozdělit do několika základních oblastí podle toho, do které oblasti fyzikální jev patří. Rozděluje se na tyto hlavní obory: mechanika, molekulová fyzika, termodynamika, elektřina, magnetismus, optika a atomová fyzika [1]. V mé bakalářské práci se zabývám mechanickou částí. Simulace některých těchto fyzikálních jevů se stala užitečným prostředkem při modelování v počítačové grafice. Například pomocí Newtonových pohybových a gravitačních zákonů dokážeme simulovat dynamiku tuhých a měkkých těles (včetně detekce kolize), dynamiku tekutin nebo reálnou kinematiku. Nejčastěji je simulace využívána nejen ve vědních oborech (astronomie, geologie, meteorologie a dalších), ale i ve filmovém a herním průmyslu. Konkrétně v počítačových hrách probíhá výpočet fyzikální simulace v reálném čase, kde je složitost výpočtu poměrně důležitá vlastnost, která ovlivňuje plynulost hry a zároveň určuje míru reálného zobrazení. 1.1 Cíl práce Ve své bakalářské práci se zabývám simulací fyzikálních mechanických jevů v nejrůznějších 3D modelovacích programech a herních aplikací. Ve druhé kapitole vysvětluji, jaké důležité vlastnosti souvisí v terminologii mechaniky. Ve třetí kapitole popisuji, jakými způsoby a vzorci se v počítačové grafice vypočítávají pružné objekty, tkaniny, vlasy, tekutiny, sypké materiály, kouř a oheň. Ve čtvrté kapitole porovnávám některé fyzikální simulace na již existujících modelovacích programech, které tuto možnost podporují. Pro