U paraqit një motor të ri simulimi të proceseve fizike Box3D

Erin Catto, autori i projektit Box2D, njoftoi krijimin e një motori të ri simulimi të proceseve fizike Box3D, i cili është një fork i Box2D, me një arkitekturë identike, por i rishikuar dhe i zgjeruar për t'u përdorur në lojërat tre-dimensionale. Kodi i projektit është shkruar në gjuhën C dhe shpërndahet nën licencën MIT. Ndihmohet ndërtimi për Linux, Windows dhe macOS.

Motori Box3D është krijuar gjatë zhvillimit nga studioja Kintsugiyama për një 3D-sh shooter të ri, The Legend of California, në të cilin merr pjesë Erin. Në lojë përdoret motori i lojës Unreal Engine, por zhvilluesit nuk ishin të kënaqur me motorin fizik original Chaos që ofrohej. Problemet erdhën nga mungesa e marrëdhënies së efektet të momentit giroskopik (objektet e gjalla përbëheshin të çuditshme dhe rrotulloheshin për një kohë të gjatë), zbulimi i vazhdueshëm i kollizionëve (sjellje jo reale e pemëve duke rënë), dhe performanca e ulët në trajtimin e qindrave mijëra objekteve.

Fillimisht, problemi kishte për të zgjidhur një fork të motorit fizik Jolt, por pastaj, me këshillën e krijuesit të motorit Rubikon, i përfshirë në lojën Half-Life, u mor si bazë një version të thjeshtëzuar të Rubikon-Lite, që ishte rishikuar duke përdorur kodin dhe optimizimet nga Box2D për të kombinuar mundësitë e tanishme 3D me zhvillimet nga motori Box2D. Si rezultat, pothuajse të gjitha API-të, strukturat e të dhënave dhe algoritmet në Rubikon-Lite u zëvendësuan me kod nga Box2D, ndërsa nga Rubikon-Lite mbetën vetëm algoritmet e ndërtimit të përfytyrshme dhe trajtimin e kolizionet 3D. Motorri i marrë me dijen e autorit të Rubikon-Lite dhe kompanisë Kintsugiyama u vendos të publikohej si një projekt i veçantë i hapur Box3D.

Aktualisht, është publikuar versioni i parë i Box3D 0.1, i cili shënohet si me cilësi alfa. Funksionaliteti kryesor i planifikuar është realizuar, por kërkohet përfundimi i dokumentacionit dhe testimi. Përveç lojës The Legend of California, motori i ri është tashmë i angazhuar në platformën e lojës s&box, në motorin e lojës të hapur Esoterica dhe në lojën shumëlojëshe kozmike Space Game, e cila është e gjitha e menduar për 1000 lojtarë.

Për lojërat 3D në motorin e ri janë shtuar mundësi si llogaritja e përplasjeve me rrjetin poligonor (mesh) dhe hartat e lartësisë, të përdorura gjatë gjenerimit të peisazhit, që lejojnë realizimin në lojën The Legend of California të efekteve realiste të rënies së pemëve mbi sipërfaqet vokselete. Është shtuar mbështetje për përplasje të përllogaritura paraprakisht (baked), të përbëra nga disa forma të thjeshta, duke ulur ndjeshëm konsumimin e burimeve gjatë simulimit të një numri të madh objektivash të vogla tipike.

Mes mundësive të transferuara në Box3D, që më parë ishin të pranishme në Box2D:

  • Përcaktimi i vazhdueshëm i përplasjeve (trajtim të lëvizjes së objektit si një trajektore të vazhdueshme), filtrimi i përplasjeve dhe gjenerimi i ngjarjeve gjatë kontaktit të objekteve. Mbështetje për forma sferike, kapsulare dhe mbështjellëse për përcaktimin e përplasjeve. Trajtues i kontaktit të objekteve i optimizuar me instruksione SIMD.
  • Sub-stepping Solver për rritjen e saktësisë së simulimit duke ndarë fazat e simulimit në disa hapa më të vegjël.
  • Përdorimi i metodës së ngjyrës për grafët për trajtimin e grupeve të mëdha të objekteve të lidhura.
  • Kontrolluesi i karakterit, i cili është përgjegjës për trajtimin e lëvizjes, përplasjeve dhe ndërveprimin e karakterit me objektet përreth.
  • Mbështetje për gjurmimin e rrezejve, gjurmimin e formave dhe verifikimin e ndërprerjeve gjatë skanimit të hapësirës përreth. Sistemi i sensorëve për zbulimin e objekteve në hapësirë.
  • Soft Step Solver për llogaritjen e fizikës së trupave të forta gjatë ndërveprimeve të komplikuara.
  • Mbështetje për ngrirjen e gjendjes së grupeve të objekteve joaktive ose statike për kursimin e burimeve.
  • Mbështetje për lloje të ndryshme lidhjesh dhe lidhjesh midis objekteve, duke përfshirë këndet, spring, motorë, saldhim dhe rrota, me mundësi për konfiguruar gjendjen e secilës lidhje. Llogaritja e forcave të shtrirjes dhe kompresimit me të cilat objektet ndikojnë njëra-tjetrën.
  • Mundësia për gjenerimin e ngjarjeve gjatë fillimit të lëvizjes, ndalimit ose stabilizimit të objektit.
  • Huka për trajtim me shumë këndvështrime me një planifikues të brendshëm opsional.
  • Përdorimi për koordinata të tipit double, që mundëson krijimin e botëve masive.
  • Determinimi ndërplatformar që siguron rezultate identike në platforma të ndryshme harduerike.
  • Mbështetje për regjistrimin dhe riprodhimin e simulimeve.
  • C API dhe kodi C që i përket standardit C17.

Planet e të ardhmes përfshijnë zgjerimin e mundësive të lidhura me lëvizjet e personazheve, përmirësimin e mekanizmave për parandalimin e 'përplasjeve fantazmë' (ghost collision), optimizimin dhe përmirësimin e përpunimit të lidhjeve (joint solver). Në repositorin do të ofrohet mundësia e dërgimit të kërkesave për tërheqje me ndryshime nga përfaqësuesit e komunitetit pas nënshkrimit të marrëveshjes për transferimin e të drejtave pronësore mbi kodin (CLA).

Luaj videon


Burimi: opennet.ru
Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster