Biblioteca Bullet Fizica

Biblioteca Bullet Fizica

Logo-ul oficial al motorului
Tip de Motor de fizică
Programatori cheie Erwin Coumans , Lee Howes _  _ 
Platforme hardware Calculatoare compatibile IBM PC , PlayStation 3 , PlayStation Portable , Wii , Nintendo DS , Xbox 360 , Android , iPhone
Sistem de operare acceptat Microsoft Windows , Mac OS X , Linux , Google Android , Apple iOS
Scris în limbi C , C++
Licență gratuit - licență zlib [1]
ultima versiune 3.1.7 / 27 noiembrie 2020 [2]
Primul joc la motor Regnum Online/ 24 mai 2007
Ultimul joc la motor Red Dead Redemption 2
bulletphysics.org/wordpress/
 Fișiere media la Wikimedia Commons

Bullet Physics Library ( Biblioteca de fizică „Bullet” ; denumită în continuare „Bullet” [3] ) este un motor de fizică în timp real care este distribuit sub licența liberă zlib . Biblioteca compilată și codul sursă al motorului sunt disponibile gratuit pe găzduirea Google Code . Autorul principal al lui Bullet, Erwin Coumans , a lucrat anterior la motorul Havok . 

„Bullet” este utilizat în mod activ în jocuri pe calculator , filme, programe de modelare 3D, ca o componentă a altor motoare de joc și în multe alte cazuri mai specifice. „Bullet” este folosit de AMD ca parte a programului Open Physics Initiative , care implică crearea unui nou motor de fizică bazat pe „Bullet” și Digital Molecular Matter , care va folosi în mod activ accelerarea hardware a calculelor fizice prin OpenCL și DirectCompute .

Potrivit unui articol din revista Game Developer, care a fost publicat în august 2009, „Bullet” este al treilea cel mai popular dezvoltator de jocuri din lume, în spatele motoarelor PhysX și Havok de la nVidia . [patru]

Istorie

La mijlocul lui septembrie 2009, AMD și-a oferit suport pentru dezvoltarea unei versiuni OpenCL a motorului Bullet pentru plăci grafice. [5] [6]

La 30 septembrie 2009, a fost anunțat oficial că DMM va deveni o componentă integrală a motorului nou format, care este dezvoltat de AMD și, respectiv, Pixelux, în cadrul proiectului Open Physics Initiative . [7]

La mijlocul lunii octombrie 2009, jurnaliştii de pe site-ul Icrontic l-au intervievat pe Tom Pietersen, şeful de marketing tehnic la nVidia, pentru a afla atitudinea companiei faţă de Bullet după iniţiativa AMD. Peterson a declarat că nVidia va continua să sprijine dezvoltarea motorului cât mai mult posibil. [opt]

La sfârșitul lunii februarie 2010, motorul și versiunea SDK 2.76 au fost lansate. În această versiune, s-au făcut pregătiri pentru a sprijini execuția prin OpenCL și demo-uri preliminare actualizate MiniCL. Pluginul Dynamica pentru Autodesk Maya a fost îmbunătățit, a fost introdus un nou format binar independent de platformă pentru exportul și importul de date fizice .bullet și au fost adăugate versiuni preliminare ale noilor instrumente: btInternalEdgeUtility pentru a elimina coliziunile inutile atunci când obiectele interacționează și fizica. editor/depanator. [9]

Pe 22 septembrie 2010, a fost lansată versiunea 2.77, în care suportul planificat anterior pentru accelerarea hardware pe GPU-uri prin OpenCL și DirectCompute a fost adăugat ca parte a Open Physics Initiative . În versiunea 2.77, accelerarea hardware a fost implementată pentru modulul de simulare a îmbrăcămintei (BulletSoftBody). Suportul pentru alte module de motor este planificat în versiunile viitoare. De asemenea, ca parte a versiunii 2.77, dezvoltatorii au creat un plug-in pentru 3DS Max , care adaugă programului suport Bullet. [10] [11]

La începutul lunii august 2011, la conferința SIGGRAPH 2011, Autodesk , cu sprijinul AMD, a introdus un nou plugin Bullet Physics pentru editorul grafic 3D Maya 2012 care folosește OpenCL și a fost inclus în Subscription Advantage Pack . „Promovam standarde industriale precum OpenCL și Bullet Physics, deoarece facilitează programarea și înlătură barierele cauzate de tehnologiile proprietare care pot limita creativitatea dezvoltatorilor”, a declarat Sandeep Gupte , director general al diviziei de grafică profesională la AMD .  [12] [13]

Pe 16 septembrie 2011, a fost lansată versiunea 2.79, a cărei parte principală avea ca scop remedierea erorilor, dar a introdus și o nouă funcționalitate: o nouă metodă de descompunere a suprafețelor convexe bazată pe biblioteca HACD și un nou sistem de construcție premake care poate automat generați fișiere de proiect Microsoft Visual Studio . Concomitent cu lansarea acestei versiuni, au fost publicate materiale despre Bullet, care au fost prezentate la SIGGRAPH 2011 ca parte a raportului „Distrugerea și dinamica pentru producția de film și jocuri”. [14] [15]

Funcționalitate

Detectare coliziuni

Detectarea coliziunilor folosită în Bullet, ca și în majoritatea celorlalte motoare fizice, are o fază largă și îngustă ( în engleză fază largă, fază  îngustă ). În timpul fazei extinse, algoritmul de detectare a coliziunilor reduce numărul de obiecte care pot interacționa prin aplicarea unor volume delimitare scenei. „Bullet” conține mai multe implementări diferite de fază largă concepute pentru scopuri diferite. Cea mai obișnuită implementare se bazează pe ierarhii dinamice de volum de delimitare :  sunt utilizate casete de delimitare aliniate pe axe (AABB ), care sunt actualizate treptat la mutarea, adăugarea sau ștergerea obiectelor . Există, de asemenea, o altă implementare de fază largă care este accelerată hardware pe GPU-uri prin OpenCL , cu toate acestea, are limitări în ceea ce privește dimensiunile obiectelor. [treizeci] 

Etapa de fază îngustă este asociată cu generarea precisă a punctelor de contact între perechi de obiecte care s-au atins unul pe celălalt. Bullet folosește mai mulți algoritmi generalizați, și anume algoritmul Gilbert-Johnson-Curthy ( GJK  ) și algoritmul politopului în expansiune (EPA), care rezolvă problemele de coliziune pentru o gamă largă de tipuri de forme geometrice ale obiectelor care se ciocnesc. [treizeci]

Există suport pentru detectarea continuă a coliziunilor, care calculează timpul de coliziune dintre obiectele în mișcare și cele care se rotesc, cu toate acestea, în mod implicit, Bullet calculează cea mai mică distanță și adâncimea de penetrare la momente discrete pentru a obține informații despre punctele de contact dintre obiecte. [treizeci]

Utilizare

Datorită codului său gratuit și deschis, Bullet este utilizat în mod activ nu numai în industria jocurilor pe computer , ci și în producția de efecte speciale pentru filme. Mulți producători de efecte speciale care folosesc Bullet îl modifică pentru a se potrivi cu instrumentele lor software proprietare sau pentru a se potrivi sarcinilor curente pe care trebuie să le îndeplinească motorul. De exemplu, Digital Domain a folosit un „Bullet” modificat pentru a crea efecte pentru filmul „ 2012 ”, în timp ce Framestorea integrat o versiune modificată a motorului în instrumentul său software intern fBounce la realizarea filmului Sherlock Holmes . Weta Digital a integrat motorul în programul lor intern wmRigid când a creat efectele speciale pentru filmul A-Team . [treizeci]

În plus, Bullet este utilizat în mod activ în programele de modelare 3D ca plug-in sau instrument deja integrat. Este disponibil pentru Cinema 4D , Houdini , 3ds Max , Carara, Blender , Maya și Lightwave . [treizeci]

Potrivit lui Erwin Koomans, această popularitate în utilizarea și adaptarea motorului provine din multi-platformă, libertate și deschidere, pe care concurenții - proprietarul Havok și nVidia PhysX - nu le au . În comparație cu cel mai apropiat concurent open source , Open Dynamics Engine , Bullet conține un mecanism robust de detectare a coliziunilor pentru obiecte cu carcasă convexă, care este important pentru simularea structurilor distructibile. [treizeci]

Industria jocurilor video

„Bullet” este folosit în multe jocuri pe calculator , atât comerciale, cât și necomerciale.

Numele jocului Dezvoltator Editor Prima dată de lansare Platforme
Regnum Online Studiourile NGD Studiourile NGD 24 mai 2007 PC ( Windows , Linux )
Grand Theft Auto IV [31] Rockstar North , Rockstar Toronto Rockstar Games , Take-Two Interactive , Synergex 29 aprilie 2008 PC ( Windows ), PlayStation 3 , Xbox 360
Crayola Colorful Journey [32] Crave Entertainment Crave Entertainment 31 martie 2009 Wii
Tărâmuri Libere[33] [34] SOE San Diego Sony Online Entertainment 28 aprilie 2009 PC ( Windows , Mac ), PlayStation 3
Încercări HD[35] [36] RedLynx Microsoft Game Studios 12 august 2009 Xbox 360
Gravitronix[37] Studiourile Medaverse Nintendo ( WiiWare ) 12 octombrie 2009 Wii
Hot Wheels: Battle Force 5[38] Mattel Activision 17 noiembrie 2009 Wii , Nintendo DS
Madagascar Kartz[39] Sidhe Interactive, Virtuos Activision 27 octombrie 2009 PlayStation 3 , Xbox 360 , Wii , Nintendo DS
Red Dead Redemption Rockstar San Diego , Rockstar North Jocuri Rockstar 18 mai 2010 PlayStation 3 , Xbox 360
Dimensiunea puzzle-ului Doctor Entertainment Doctor Entertainment 26 august 2010 PC ( Windows , Mac )
Cars 2: The Video Game [40] Software Avalanche , Jocuri Firebrand Disney Interactive 21 iunie 2011 PC ( Windows , Mac OS X ), Nintendo DS , PlayStation 3 , Wii , Apple iOS , Xbox 360
Riptide GP [40] Unitate vectorială Unitate vectorială iulie 2011 Android
Max Payne 3 Rockstar Vancouver Jocuri Rockstar 18 mai 2012 PC ( Windows ), PlayStation 3 , Xbox 360
Scania Truck Driving Simulator Software SCS Software SCS 13 iunie 2012 PC ( Windows )
Red Dead Redemption II Studiourile Rockstar Jocuri Rockstar 26 octombrie 2018 PlayStation 4 , Xbox One , PC ( Windows )

Industria cinematografică

„Bullet” a fost prezentat în următoarele filme:

Programe de modelare 3D

Următoarele programe de modelare 3D folosesc motorul Bullet ca plug-in pentru calculele fizice:

Motoare de joc

Următoarele motoare de joc folosesc „Bullet” ca motor fizic:

Motoare grafice

Următoarele motoare grafice au un mijloc de a comunica cu „Bullet”:

Diverse

Note

  1. textul original al licenței zlib (link descendent) . Consultat la 25 iulie 2008. Arhivat din original la 30 mai 2008. 
  2. bulletphysics/bullet3 GitHub . Preluat la 17 septembrie 2021. Arhivat din original la 17 septembrie 2021.
  3. „Bullet” este tradus din engleză ca „ bullet
  4. Bullet a clasat a treia bibliotecă de fizică la 10% în sondajul Game Developers Magazine  (în engleză)  (link nu este disponibil) . Site-ul oficial Bullet Physics Library (3 septembrie 2009). Consultat la 24 septembrie 2009. Arhivat din original pe 16 februarie 2012.
  5. RPGman. AMD va sprijini dezvoltarea versiunii OpenCL a Bullet (link indisponibil) . GameDev.ru (18 septembrie 2009). Consultat la 23 septembrie 2009. Arhivat din original pe 9 februarie 2011. 
  6. Konstantin Hodakovski. AMD acceptă motorul de fizică Bullet dezvoltat pe GeForce (link indisponibil) . World of nVidia (26 septembrie 2009). Consultat la 26 februarie 2010. Arhivat din original pe 15 martie 2012. 
  7. AMD anunță o inițiativă de fizică deschisă concepută pentru a aduce noi niveluri de realism jocurilor, simulărilor, aplicațiilor populare deschise și tehnologia ATI Stream bazată pe standarde industriale eliberează industria de implementările proprietare  (  link inaccesibil) . Site-ul oficial AMD (30 septembrie 2009). — Comunicat de presă original. Consultat la 1 octombrie 2009. Arhivat din original pe 13 august 2011.
  8. Konstantin Hodakovski. NVIDIA menține și motorul Bullet Physics (link indisponibil) . nVidia World (11 octombrie 2009). Consultat la 26 februarie 2010. Arhivat din original pe 15 martie 2012. 
  9. DrEvil. Bullet Physics se pregătește pentru accelerarea OpenCL (link indisponibil) . nVidia World (26 februarie 2010). Consultat la 26 februarie 2010. Arhivat din original pe 15 martie 2012. 
  10. 1 2 DrEvil. Bullet Physics acceptă acum accelerarea hardware (downlink) . World of nVidia (23 septembrie 2010). Consultat la 29 septembrie 2010. Arhivat din original pe 15 martie 2012. 
  11. Erwin Coumans. Bullet 2.77 este lansat! Pânză OpenCL și DX11, plugin 3ds Max  (engleză)  (link descendent) . Site-ul oficial Bullet Physics (22 septembrie 2010). Consultat la 29 septembrie 2010. Arhivat din original pe 15 martie 2012.
  12. 1 2 Konstantin Hodakovski. AMD și Autodesk au prezentat API-ul OpenCL și pluginul Bullet Physics pentru Maya 2012 . 3DNews (14 august 2011). Preluat la 14 august 2011. Arhivat din original la 17 septembrie 2011.
  13. „Bullet Physics” pentru Maya (downlink) . UralDev (13 august 2011). Preluat la 20 august 2011. Arhivat din original la 20 august 2011. 
  14. Lansarea Bullet 2.79 și materialul de curs SIGGRAPH disponibil  (engleză)  (downlink) . Site-ul oficial al motorului (16 septembrie 2011). Preluat la 21 septembrie 2011. Arhivat din original la 15 martie 2012.
  15. Bullet 2.79 (link descendent) . UralDev.ru (19 septembrie 2011). Preluat la 21 septembrie 2011. Arhivat din original la 15 martie 2012. 
  16. Forme de coliziune (link descendent) . Arhivat din original pe 15 martie 2012. 
  17. Previously_Done (link descendent) . Arhivat din original pe 15 martie 2012. 
  18. algoritm generic de detectare a coliziunilor cu sfera măturată (link indisponibil) . Arhivat din original pe 15 martie 2012. 
  19. A fost lansat Bullet 2.68 Physics SDK: Soft Bodies, Cloth, iPhone! (link indisponibil) (14 aprilie 2008). Arhivat din original pe 15 martie 2012. 
  20. Bullet 2.73 SP1 lansat: rapid btCudaBroadphase, solutor SSE (downlink) (16 noiembrie 2008). Arhivat din original pe 15 martie 2012. 
  21. Fizica GPU: ramură separată OpenCL (link indisponibil) (10 septembrie 2009). Arhivat din original pe 15 martie 2012. 
  22. Bullet 2.75 lansat: GPU, fluide SPH, îmbunătățiri generale (downlink) (10 septembrie 2009). Arhivat din original pe 15 martie 2012. 
  23. Bullet 2.67 lansat: COLLADA Physics export, SPU raycast (downlink) . Arhivat din original pe 15 martie 2012. 
  24. Bullet 2.71 lansat: Disney Maya Plugin (link indisponibil) (5 septembrie 2008). Arhivat din original pe 15 martie 2012. 
  25. Bullet 2.53 Multithreaded (link descendent) . Arhivat din original pe 15 martie 2012. 
  26. nou format de fișier binar .bullet cu suport pentru instrumentele de autor Maya și Blender (downlink) . Arhivat din original pe 15 martie 2012. 
  27. Portul Java al Bullet (downlink) (11 ianuarie 2008). Arhivat din original pe 15 martie 2012. 
  28. JBullet - portul Java al bibliotecii Bullet Physics (link indisponibil) (19 mai 2009). Arhivat din original pe 15 martie 2012. 
  29. Bullet on XNA (link indisponibil) (13 septembrie 2006). Arhivat din original pe 15 martie 2012. 
  30. 1 2 3 4 5 6 Mike Seymour. Bullet Open Source Physics Engine  (engleză)  (link nu este disponibil) . fxguide (3 ianuarie 2011). Preluat la 26 iulie 2011. Arhivat din original la 15 martie 2012.
  31. Titluri AAA folosind Bullet (link în jos) . Erwin Coumans (5 ianuarie 2009). „Există câteva jocuri AAA lansate de Sony Computer Entertainment , Disney și Rockstar și alții. [...] Ne este permis să menționăm că unele părți ale Bullet au fost co-dezvoltate și optimizate cu Rockstar și fuzionate în motorul lor de joc Rage , folosit pe Xbox 360 , PC și PLAYSTATION 3 în Midnight Club: Los Angeles și Grand Theft Auto 4. ". Data accesului: 5 ianuarie 2009. Arhivat din original la 18 februarie 2012. 
  32. Crayola Colorful Journey pentru Wii (link indisponibil) . eric777 (28 ianuarie 2009). - „Am folosit în mod special Bullet pentru a permite jucătorului să deseneze liber noi obiecte statice și dinamice, să modifice nivelurile și să rezolve puzzle-uri.” Consultat la 14 noiembrie 2009. Arhivat din original la 15 martie 2012. 
  33. FreeRealms folosește Bullet (link în jos) . Roy Eltham (15 aprilie 2009). — „Folosim coliziunea și dinamica Bullet. Îl folosim pentru controlerul de caractere (propriul nostru personalizat), verificări ale liniei de vedere și așa mai departe, precum și pentru fizica vehiculelor în cazurile Racing și Demolition Derby. Consultați versiunea beta aici. Înscrie-te, le lăsăm pe oameni să intre în beta în valuri în săptămâna viitoare. Roy Eltham, Senior Engine Programmer, Sony Online Entertainment, http://www.freerealms.com/".+ Consultat la 20 aprilie 2009. Arhivat din original pe 15 martie 2012. 
  34. Free Realms (Sony Online Entertainment) folosește Bullet Physics Library  (  link inaccesibil) . Site-ul oficial Bullet (6 mai 2009). Consultat la 1 octombrie 2009. Arhivat din original pe 15 martie 2012.
  35. Dale Nardozzi - „Legba”. Interviu pentru dezvoltatori Trials HD (link indisponibil) . TeamXbox (6 august 2009). - „De asemenea, folosim o versiune modificată a unui motor de fizică open source numit Bullet Physics Library pentru a calcula simularea fizică și coliziunea în interiorul jocului.” Consultat la 15 decembrie 2010. Arhivat din original la 15 martie 2012. 
  36. Trials HD (XBox 360) folosește Bullet  (ing.)  (link indisponibil) . Site-ul oficial Bullet (23 septembrie 2009). Consultat la 1 octombrie 2009. Arhivat din original pe 15 martie 2012.
  37. Gravitronix lansează pe WiiWare, folosește Bullet (link nu este disponibil) . Wavesonics (12 octombrie 2009). — „Motorul a fost dezvoltat 100% de la zero și folosește pe scară largă Bullet pentru toate aspectele fizice, detectarea coliziunilor și multe altele.” Consultat la 14 noiembrie 2009. Arhivat din original la 15 martie 2012. 
  38. HotWheels: Battle Force 5 pentru Wii folosește Bullet (link nu este disponibil) . Kester Maddock (13 noiembrie 2009). - „HotWheels: Battle Force 5 pentru Wii folosește Bullet pentru detectarea coliziunilor, dinamica și simularea vehiculelor.” Consultat la 14 noiembrie 2009. Arhivat din original la 15 martie 2012. 
  39. Madagascar Kartz folosește Bullet (link nu este disponibil) . Kester Maddock (14 octombrie 2009). - Madagascar Kartz pentru Wii, PS3 și Xbox360 folosește Bullet. http://nzgamer.com/all/news/3515/madagascar-kartz-announced-dated.html Madagascar Kartz este un pilot de kart cu 4 jucători. Simularea vehiculului său se bazează pe btRaycastVehicle de la Bullet.”. Consultat la 14 noiembrie 2009. Arhivat din original la 15 martie 2012. 
  40. 1 2 Jocul Disney's Cars 2 și Riptide GP pentru Android folosind Bullet  (eng.)  (link nu este disponibil) . Site-ul oficial Bullet Physics (27 iunie 2011). Preluat la 26 iulie 2011. Arhivat din original la 15 martie 2012.
  41. 2012 Pas cu pas (13 noiembrie 2009). Consultat la 24 noiembrie 2009. Arhivat din original pe 20 noiembrie 2009.
  42. Sherlock Holmes (link indisponibil) . Arhivat din original pe 15 martie 2012. 
  43. 1 2 Glonț în cursul de detectare a coliziunilor SIGGRAPH, joc Toy Story 3, film A-Team (downlink) . Arhivat din original pe 15 martie 2012. 
  44. 1 2 Pluginul Disney Dynamica pentru Bullet Physics (link în jos) . Arthur Shek (26 septembrie 2008). — „Sunt managerul de software de la Walt Disney Animation Studios, care a început acest proiect și a aprobat lansarea open source.” Consultat la 21 februarie 2010. Arhivat din original pe 15 martie 2012. 
  45. OpenCL Game Physics (link în jos) . Erwin Coumans (12 noiembrie 2009). - „Unele filme care folosesc Bullet Physics sunt Bolt, Hancock și 2012”. Consultat la 21 februarie 2010. Arhivat din original pe 15 martie 2012. 
  46. 1 2 PDI Dreamworks Megamind, Shrek 4 și „Cum să-ți antrenezi dragonul” folosesc Bullet  (  linkul este în jos) . Site-ul oficial al motorului (27 octombrie 2010). Consultat la 15 decembrie 2010. Arhivat din original la 15 martie 2012.
  47. PDI Dreamworks Megamind, Shrek 4 și „How to train your dragon” folosesc Bullet (link nu este disponibil) . Arhivat din original pe 6 iunie 2012. 
  48. LightWave - Prezentare generală a caracteristicilor 11.5 . www.lightwave3d.com. Consultat la 14 octombrie 2017. Arhivat din original la 14 octombrie 2017.
  49. Noul sistem de dinamică pentru mișcare uimitoare și realistă (link nu este disponibil) . Maxon (3 septembrie 2009). — „MoDynamics se bazează pe biblioteca dovedită de fizică Bullet”. Consultat la 14 noiembrie 2009. Arhivat din original la 15 martie 2012. 
  50. Hellard, Paul DAZ 3D-Gizmoz Carrara 8 Pro oferă Bullet Physics Library, suport pe 64 de biți și motor de joc FBX Export to Unity. (link indisponibil) (19 mai 2010). - „Artiștii profesioniști care folosesc setul de instrumente Carrara 8 Pro vor avea acces la […] Biblioteca Bullet Physics.” Preluat la 2 iulie 2010. Arhivat din original la 15 martie 2012. 
  51. bandă adezivă » Motor  (link descendent)
  52. Godot 3.0 trece la Bullet pentru fizică . Preluat la 5 decembrie 2017. Arhivat din original pe 6 decembrie 2017.
  53. Anunțarea osgBullet (link descendent) . Paul Martz (11 noiembrie 2009). — „Sunt încântat să anunț osgBullet, un nou proiect open source bazat pe Bullet.” Consultat la 14 noiembrie 2009. Arhivat din original la 15 martie 2012. 

Link- uri externe