Predstavený nový fyzikálny simulačný engine Box3D

Erin Catto, autorka projektu Box2D, oznámila vytvorenie nového fyzikálneho simulačného enginu Box3D, ktorý je forkom Box2D s identickou architektúrou, ale prepracovaným a rozšíreným pre použitie v 3D hrách. Kód projektu je napísaný v jazyku C a distribuovaný pod licenciou MIT. Kompilácia pre Linux, Windows и macOS.

Engine Box3D vznikol počas vývoja novej 3D strieľačky The Legend of California v štúdiách Kintsugiyama, kde Erin pracuje. Hra využíva Unreal Engine, ale vývojári neboli spokojní s jeho vstavaným fyzikálnym enginom Chaos. Problémy sa objavili s nedostatkom gyroskopického krútiaceho momentu (tenké objekty sa otáčali neprirodzene dlho), nepretržitou detekciou kolízií (nerealistické správanie padajúcich stromov) a slabým výkonom pri spracovaní státisícov objektov.

Spočiatku sa plánovalo, že problémy sa vyriešia vytvorením forku fyzikálneho enginu Jolt. Na základe rady tvorcu enginu Rubikon použitého v hre Half-Life však bola ako základ použitá zjednodušená verzia Rubikon-Lite, vyvinutá ako hobby. Bola prepracovaná pomocou kódu a optimalizácií z Box2D, aby sa skombinovali existujúce 3D možnosti s vývojom enginu Box2D. V dôsledku toho boli takmer všetky API, dátové štruktúry a algoritmy v Rubikon-Lite nahradené kódom z Box2D a z Rubikon-Lite zostali iba algoritmy na zostrojenie konvexného obalu a spracovanie 3D kolízií. So súhlasom autora Rubikon-Lite a Kintsugiyamu bolo rozhodnuté publikovať výsledný engine ako samostatný open-source projekt Box3D.

Prvá verzia Box3D 0.1 bola už publikovaná a považuje sa za alfa verziu. Základné funkcie boli implementované, ale stále je potrebná dokumentácia a testovanie. Okrem hry The Legend of California sa nový engine už používa v hernej platforme s&box, hernom engine s otvoreným zdrojovým kódom Esoterica a v multiplayerovej vesmírnej hre Space Game pre 1 000 hráčov.

Pre 3D hry nový engine pridáva funkcie, ako sú výpočty kolízií s polygonálnymi sieťami a výškovými mapami používanými pri generovaní terénu, čo umožňuje realistické efekty padajúcich stromov na voxelových povrchoch v hre The Legend of California. Bola pridaná podpora pre pečené kompozitné kolízie, zložené z niekoľkých jednoduchých tvarov, čo výrazne znižuje spotrebu zdrojov pri simulácii kolízií medzi veľkým počtom typických malých objektov.

Medzi funkcie, ktoré boli predtým dostupné v Box2D a ktoré boli prenesené do Box3D:

  • Nepretržitá detekcia kolízií (spracovanie pohybu objektu ako spojitej trajektórie), filtrovanie kolízií a generovanie udalostí pri kontakte s objektom. Podpora guľových, kapsulových a škrupinových tvarov pre detekciu kolízií. Obsluha kolízií objektov optimalizovaná pre SIMD.
  • Čiastkový riešiteľ na zlepšenie presnosti simulácie rozdelením krokov simulácie na niekoľko menších krokov.
  • Použitie vyfarbovania grafov na spracovanie veľkých skupín súvisiacich objektov.
  • Ovládač postavy zodpovedný za riadenie pohybu, kolízií a interakcií medzi postavou a okolitými objektmi.
  • Podpora sledovania lúčov, sledovania tvarov a kontroly priesečníkov pri skenovaní okolitého priestoru. Senzorický systém na detekciu objektov v priestore.
  • Mäkký krokový riešiteľ pre výpočet fyziky pevných látok so zložitými interakciami.
  • Podpora pre zmrazenie stavu skupín neaktívnych alebo statických objektov s cieľom šetriť zdroje.
  • Podpora rôznych typov spojení medzi objektmi vrátane pántov, pružín, motorov, zvarov a kolies s možnosťou flexibilnej konfigurácie každého spojenia. Výpočet tlakových a ťahových síl medzi objektmi.
  • Možnosť generovania udalostí, keď sa objekt začne pohybovať, zastaví alebo stabilizuje.
  • Hooky pre viacvláknové spracovanie s voliteľným interným plánovačom.
  • Použitie súradníc dvojitého typu umožňuje vytváranie obrovských svetov.
  • Multiplatformový determinizmus zabezpečuje rovnaké výsledky na rôznych hardvérových platformách.
  • Podpora nahrávania a prehrávania simulácie.
  • C API a kód C zodpovedajúci štandardu C17.

Budúce plány zahŕňajú rozšírenie možností pohybu postáv, vylepšenie mechanizmov prevencie kolízií s duchmi, implementáciu optimalizácií a vylepšenie spoločného riešiteľa. Repozitár má v úmysle umožniť členom komunity odosielať žiadosti o zmeny so zmenami po podpísaní dohody o vlastníctve kódu (CLA).

Prehrať video


Zdroj: opennet.ru
Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster