Uus füüsikaprotsesside simulatsioonimootor Box3D on esitatud

Erin Catto, Box2D projekti autor, teatas uue füüsikaprotsesside simuleerimise mootori Box3D loomise kohta, mis on Box2D forkk, millel on identne arhitektuur, kuid see on ümber töötatud ja laiendatud kasutamiseks kolmemõõtmelistes mängudes. Projekti kood on kirjutatud C keeles ja see jagatakse MIT litsentsi alusel. Toetatakse Linuxi, Windowsi ja macOS-i versioone.

Mootor Box3D loodi Kintsugiyama stuudio uue 3D-first shooter The Legend of California arenduse käigus, kus Erin osaleb. Mängus kasutatakse Unreal Engine'i mängumootorit, kuid arendajaid ei rahuldanud selle pakutud vaikimisi füüsikamootor Chaos. Probleemideks olid puuduv gyroskoopiliste pöördemomentide arvestamine (õhukesed objektid pöörlesid ebatavaliselt kaua), pidev kokkupõrgete tuvastamine (ebarealistlik kukkuvate puude käitumine) ja madal jõudlus sadade tuhande objekti töötlemisel.

Algul plaaniti probleemide lahendamiseks luua Jolt füüsikamootori forkk, kuid seejärel, Rubikoni mootori looja soovitusel, kes oli seotud mänguga Half-Life, võeti aluseks hobi korras arendatud lihtsustatud versioon Rubikon-Lite, mis töötati ümber, kasutades Box2D koodi ja optimeerimisi, et kombineerida olemasolevaid 3D võimalusi Box2D-st saadud elementidega. Tulemuseks oli see, et peaaegu kõik API-d, andmestruktuurid ja algoritmid Rubikon-Lite'is asendati Box2D koodiga, jättes Rubikon-Lite'ist alles vaid konvekse kattealgoritmid ja 3D kokkupõrgete töötlemise algoritmid. Loodud mootori, mille suhtes oli Rubikon-Lite autoril ja Kintsugiyama ettevõttega kooskõlastatud, otsustati avaldada eraldi avatud projektina Box3D.

Praegu on avaldatud Box3D 0.1 esimene väljaanne, mida peetakse alfa-versiooni kvaliteediga. Peamine planeeritud funktsionaalsus on ellu viidud, kuid dokumentatsiooni ja testimise täiendav töö on vajalik. Lisaks mängule The Legend of California on uus mootori juba rakendatud mänguplatvormil s&box, avatud mängumootor Esoterica ja mitme mängijaga kosmose mängus Space Game, mis on mõeldud 1000 mängijale.

Uute 3D-mängude mootori poole pealt on lisatud sellised võimalused nagu kokkupõrgete rakendamine polügoonide (mesh) ja kõrguskaartide abil, mida kasutatakse maastiku genereerimisel, mis on võimaldanud mängus The Legend of California ellu viia realistlikud puude langemise efektid voxel-pindadele. Lisatud on eelnevalt arvutatud (baked) komposiitkokkupõrgete tugi, mis on koostatud mitmest lihtsast kujundist, mis on oluliselt vähendanud ressursside tarbimist tohutu hulga tüüpiliste väikeste objektide kokkupõrgete simulatsioonis.

Box3D-sse üleviidud funktsioonide seas, mis olid varem olemas Box2D-s:

  • Jatkuv kokkupõrgete määramine (objekti liikumise töötlemine kui pidevat trajektoori), kokkupõrgete filtreerimine ja sündmuste genereerimine, kui objektid puudutavad. Sfääriliste, kapsli- ja kestakujude toimetamine kokkupõrgete määramiseks. Optimeeritud SIMD-käskude abil kokkupõrgete töötlemise protsessor.
  • Sub-stepping lahendaja simulatsiooni täpsuse tõstmiseks, jagades simulatsiooni etapid väiksemateks sammudeks.
  • Grafide värvimismeetodi kasutamine suurte seotud objektigruppide töötlemiseks.
  • Isiku kontroller, mis vastutab isiku liikumise, kokkupõrgete ja objekti koostöökeskkonna töötlemise eest.
  • Kiirte jälgimise, kujundite jälgimise ja ühisuse kontrollimise tugi ümbritseva ruumi skaneerimisel. Sensorite süsteem objektide tuvastamiseks ruumis.
  • Soft Step lahendaja kõvade kehade füüsika arvutamiseks keeruliste interaktsioonide korral.
  • Tugi mitteaktiivsete või staatiliste objektide rühmade oleku külmutamiseks ressursside säästmiseks.
  • Suurte variatsioonide ja ühendustüüpide tugi objektide vahel, sealhulgas hinged, vedrud, mootorid, keevitus ja rattad, võimalusega igat ühendust paindlikult seadistada. Kompressioon- ja venitusjõudude arvutamine, millega objektid üksteisele mõjuvad.
  • Sündmuste genereerimise võimalus objekti liikumise, seiskumise või stabiliseerimise algusest.
  • Konksud mitme lõime töötlemiseks valikulise sisemise ajakava abil.
  • Kordinate tüüpide kasutamine, mis võimaldab luua tohutuid maailmu.
  • Kcrossplatvormne determinism, mis tagab identse tulemuse erinevatel riistvaraplatvormidel.
  • Toetab simuleerimise salvestamist ja taasesitamist.
  • C API ja C-kood, mis vastab C17 standardile.

Tulevikuplaanides mainitakse võimaluste laienemist, mis on seotud tegelaste liikumisega, täiustades "kummituslike" kokkupõrgete (ghost collision) vältimise mehhanisme, optimeerimist ja ühenduste (joint solver) töötlemise parandamist. Repositooriumis kavatsetakse anda võimalus esitada pull-päringuid muudatustega kogukonna esindajatelt pärast autoriõiguste ülemise leping (CLA) allkirjastamist.

Mängi videot


Allikas: opennet.ru
Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster