Predstavljen novi motor za simulaciju fizičkih procesa Box3D

Erin Catto, autor projekta Box2D, objavio je stvaranje novog motora za simulaciju fizičkih procesa Box3D, koji predstavlja fork Box2D, ima identičnu arhitekturu, ali je preraden i proširen za korištenje u trodimenzionalnim igrama. Kod projekta napisan je na C jeziku i distribuira se pod MIT licencom. Podržana je izrada za Linux, Windows i macOS.

Motor Box3D stvoren je tokom razvoja novog 3D pucača The Legend of California, na kojem radi Erin. U igri se koristi Unreal Engine, ali developere nije zadovoljio ponuđeni fizički motor Chaos. Problemi su nastali zbog nedostatka uzimanja u obzir giroskopskih momenta (tanki objekti su se neprirodno dugo okretali), neprekidnog otkrivanja sudara (nerealistično ponašanje padajućih drveća) i niske performanse pri obradi stotina hiljada objekata.

Na početku su planirali riješiti probleme stvaranjem forka fizičkog motora Jolt, ali su potom, na savjet kreatora motora Rubikon, koji je bio involviran u igru Half-Life, uzeli za osnovu pojednostavljenu verziju Rubikon-Lite razvijenu kao hobi, koja je preradjena koristeći kod i optimizacije iz Box2D kako bi se spojile postojeće 3D mogućnosti sa rješenjima iz motora Box2D. Na kraju su gotovo svi API, strukture podataka i algoritmi u Rubikon-Lite zamijenjeni kodom iz Box2D, dok su od Rubikon-Lite ostali samo algoritmi za izgradnju konveksnih omotača i obradu 3D sudara. Polućeni motor, uz odobrenje autora Rubikon-Lite i kompanije Kintsugiyama, odlučeno je objaviti kao poseban otvoreni projekt Box3D.

Trenutno je objavljeno prvo izdanje Box3D 0.1, koje je označeno kao alfa verzija. Glavna planirana funkcionalnost je realizirana, ali je potrebna dorada dokumentacije i testiranje. Pored igre The Legend of California, novi motor je već uključen u gaming platformu s&box, otvorenom gaming motoru Esoterica i multiplayer svemirskoj igri Space Game, koja je namijenjena za 1000 igrača.

Za 3D igre u novom engineu dodane su mogućnosti poput izračuna sudara s poligonalnom mrežom (mesh) i visinskim kartama koje se koriste prilikom generiranja krajolika, što je omogućilo realizaciju realističnih efekata pada drveća na vokselne površine u igri The Legend of California. Dodana je podrška za prethodno izračunate (baked) sastavljene sudare, sastavljene od nekoliko jednostavnih oblika, znatno smanjivši potrošnju resursa prilikom simulacije sudara velikog broja tipičnih malih objekata.

Među mogućnostima prenesenim u Box3D, koje su prethodno postojale u Box2D:

  • Kontinuirano određivanje sudara (obrada kretanja objekta kao kontinuirane putanje), filtriranje sudara i generiranje događaja prilikom dodira objekata. Podrška za sferne, kapsulne i omotačne oblike za određivanje sudara. Optimizirani obrada sudara objekata uz pomoć SIMD instrukcija.
  • Sub-stepping rješenje za povećanje točnosti simulacije dijeljenjem faza simulacije na nekoliko manjih koraka.
  • Korištenje metode bojenja grafova za obradu velikih grupa povezanih objekata.
  • Kontroler lika koji je odgovoran za obradu kretanja, sudara i interakcije lika s okolnim objektima.
  • Podrška za praćenje zraka, praćenje oblika i provjeru presijecanja prilikom skeniranja okolnog prostora. Sustav senzora za otkrivanje objekata u prostoru.
  • Soft Step rješenje za izračun fizike krutih tijela pri složenim interakcijama.
  • Podrška za zamrzavanje stanja skupina neaktivnih ili statičnih objekata radi uštede resursa.
  • Podrška za razne veze i tipove veza između objekata, uključujući zglobove, opruge, motore, zavarivanje i kotače, s mogućnošću fleksibilnog podešavanja svake veze. Izračun sila kompresije i istezanja s kojima objekti djeluju jedni na druge.
  • Mogućnost generiranja događaja pri pokretanju, zaustavljanju ili stabilizaciji objekta.
  • Hookovi za višedretvenu obradu s opcijskim internim planerom.
  • Korištenje koordinata tipa double, što omogućuje stvaranje ogromnih svjetova.
  • Krosplatformski determinizam koji osigurava identične rezultate na različitim hardverskim platformama.
  • Podrška za snimanje i reprodukciju simulacije.
  • C API i C kod koji odgovara standardu C17.

U planovima za budućnost spominje se proširenje mogućnosti vezanih uz pokrete likova, poboljšanje mehanizama prevencije 'fantomskih' sudara (ghost collision), uvođenje optimizacija i poboljšanje obrade spojeva (joint solver). U repozitoriju će se omogućiti slanje pull zahtjeva s promjenama od članova zajednice nakon potpisivanja ugovora o prijenosu imovinskih prava na kod (CLA).

Pogledajte video


Izvor: opennet.ru
Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster