SPE sustav za simulaciju fizike

 

SPE (eng. Simple Physics Engine) je djelo Phylar Laba. Prva službena prezentacijska aplikacija izdana je 2006. godine, a potom i prvi službeni SDK (verzija 1.0) 2007. godine. Od tada do danas je izdano mnoštvo verzija SDK-a. Poboljšanja su vidljiva u optimizaciji algoritama, te i u dodavanju novih funkcija. Trenutno je aktivna verzija 3.0, koju ćemo ovdje i detaljnije opisati. Stoga krenimo sa najvažnijim funkcijama koje jezgra pruža.

  • Jezgra pruža detekciju sudara objekata. To možda ne zvuči ništa posebno, pošto je to osnovna funkcionalnost za takvu jezgru. Ono što zvuči posebno je da se jezgra brine u potpunosti za detekciju sudara objekata, u smislu da joj se preda mreža poligona objekta i to je sve što trebamo napraviti. Ne trebamo se brinuti da li je objekt konveksan ili konkavan. Objekt može izraditi na temelju raznih datoteka u kojima su objekti zapisani, ali i direktno iz vertex i index spremnika. Objektu možemo dodati razne atribute kao što su masa objekta za realističnu simulaciju i drugo. Praktičnost je ovdje za programere posebno dobro realizirano.

  • Conservative Direct Solver (CDS) je ime glavnog jezgrinog rješavača. Relativno je visoke preciznosti, te može razrješavati velike količine kontakata između objekata. Moguće je podesiti preciznost i brzinu.

  • Podržanost zglobova (eng. joints).

  • Lomljenje čvrstih tijela. Ova funkcija je prva što upada u oko ukoliko radite simulaciju lomljenja čvrstih objekata. Iako još u beta fazi, pruža dosta dobre rezultate. Radi na načelu da SPE pruža operacije nad objektom tako da ga reže na temelju ravnine, kolekcije ravnina ili na temelju drugog objekta. Slika 2.1 i slika 2.2 prikazuju spomenuto.

  • Rezanje objekta pomoću dvije ravnine
    Slika 2.1 Rezanje objekta pomoću dvije ravnine

    Rezanje objekta na temelju drugog  objekta
    Slika 2.2 Rezanje objekta na temelju drugog objekta

  • Optimirano paralelno računanje. Kako bi se iskoristili više-jezgreni procesori, SPE raspoređuje računanje po jezgrama. Phylar Lab tvrdi da preko 90 % posla se može rasporediti na različite dretve, te da uspoređujući sa jednom dretvom, dvije pružaju barem 80 % bolje performanse za integrator i detekciju sudara, te 30 % bolje performanse za rješavač.

  • Simulacija čestičnih sustava. SPE podržava simulaciju vode i dima, međudjelovanje s čvrstim tijelima, dinamično grupiranje, brza diskretna generacija površine i drugo.

  • Zadnja, no ne i najmanje važna  odlika SPE-a je što ima vrlo intuitivno i lagano za koristiti sučelje.


U nastavku su prikazane slike dobivene kao rezultat izvršavanja aplikacije koja koristi SPE sustav za simulaciju fizike nad scenom koja sadrži 28 objekta. Slika 2.3 prikazuje sliku scene prije sudara, dok slika 2.4 prikazuje scenu nakon sudara.

Primjer simulacije lomljenja čvrstih tijela na SPE sustavu za simulaciju fizike (prije sudara)
Slika 2.3 Primjer simulacije lomljenja čvrstih tijela na SPE sustavu za simulaciju fizike (prije sudara)

Primjer simulacije lomljenja čvrstih tijela na SPE sustavu za simulaciju fizike (poslije sudara)
Slika 2.4 Primjer simulacije lomljenja čvrstih tijela na SPE sustavu za simulaciju fizike (poslije sudara)

ODE sustav za simulaciju fizike

 

ODE (eng. Open Dynamics Engine) je djelo Russell Smitha. Prva verzija ODE SDK-a je izašla početkom 2001. godine i od onda redovito izlaze nove verzije. Ova jezgra za simulaciju fizike nam je posebno zanimljiva pošto ima mogućnost definiranja različitih zglobova. Zglob je ništa drugo nego određena povezanost objekata.

Trenutno u ODE svijetu je moguće definirati 5 zglobova:

  • kuglasti
  • okomiti
  • klizački
  • univerzalni
  • motorni

Sa ODE SDK-om dobivamo demonstracijsku aplikaciju demo_feedback. Aplikacija prikazuje most sastavljen od 16 objekata (daščica) međusobno povezanih klizačkim zglobom. Iznad mosta se nalaze 10 objekata koji će pasti na most. Cilj je simulirati kako će most puknuti pri opterećenju. Potrebno je podesiti masu objekata, silu puknuća na klizačkim zglobovima i gravitaciju. U aplikaciji je to sve već podešeno, te možemo odmah prikazat rezultate. Slika 2.5 prikazuje scenu prije početka sudara, dok slika 2.6 prikazuje scenu poslije sudara.

Primjer simulacije lomljenja čvrstih tijela na ODE sustavu za simulaciju fizike (prije sudara)
Slika 2.5 Primjer simulacije lomljenja čvrstih tijela na ODE sustavu za simulaciju fizike (prije sudara)

Primjer simulacije lomljenja čvrstih tijela na ODE sustavu za simulaciju fizike (poslije sudara)
Slika 2.6 Primjer simulacije lomljenja čvrstih tijela na ODE sustavu za simulaciju fizike (poslije sudara)

BPL sustav za simulaciju fizike

 

BPL (eng. Bullet Physics Library) je još jedan profesionalni sustav za simulaciju fizike [15]. Autor je Erwin Coumans, bivši zaposlenik najpoznatijeg komercijalnog sustava za simulaciju fizike Havok. Prva verzija sustava izašla je 2003. godine, a od 2005. sustav je otvorenog kôda. Osim PC platforme može se koristiti i na slijedećim konzolama: Play Station 2, Play Station 3, X Box 360 i Nintendo Wii. Pošto je otvorenog kôda Sony je dodao optimizaciju za Play Station 3, odnosno njegov Cell SPU (eng. Synergic Processing Unit) procesor, te tako postiže dobre rezultate. Korišten je mnogim igrama.

Glavne mogućnosti jezgre su:

  • detekcija kolizije sa konkavnim i konveksnim tijelima
  • dinamika čvrstih tijela
  • zglobovi
  • simulacija vozila
  • prevođenja kôda za sve platforme
  • više-jezgrena optimizacija

Iako sustav podržava znatne funkcionalnosti, ovdje ih nećemo prikazivati, već ćemo objasniti još jedan (jednostavan) način lomljenja tijela.

Kod sustava ODE vidjeli smo zanimljiv način simuliranja lomljenja tijela. Ovdje ćemo tu ideju pojednostaviti tako da ćemo izbaciti zglobove. Naravno onda ne možemo simulirati lomljenje mosta, ali recimo rušenje zida možemo. Ideja je da zid sastavimo od nekoliko objekata. Konkretno, ovdje ćemo to napraviti tako da je jedan objekt jedna ciglica. Prilikom gađanja zida drugim objektom želimo da se zid što stvarnije sruši. Koristit ćemo BPL-ovu demo aplikaciju basicdemo koju ćemo prepravit po potrebi. Slika 2.7 prikazuje scenu prije početka sudara, dok slika 2.8 prikazuje scenu poslije sudara.

Primjer simulacije lomljenja čvrstih tijela na BPL sustavu za simulaciju fizike (prije sudara)
Slika 2.7 Primjer simulacije lomljenja čvrstih tijela na BPL sustavu za simulaciju fizike (prije sudara)

Primjer simulacije lomljenja čvrstih tijela na BPL sustavu za simulaciju fizike (poslije sudara)
Slika 2.8 Primjer simulacije lomljenja čvrstih tijela na BPL sustavu za simulaciju fizike (poslije sudara)


<< prethodna stranica :: slijedeća stranica >>