PhysX | |
---|---|
| |
Sorts | Fysik motor |
Utvecklare |
Nvidia (nuvarande) NovodeX AG , Meqon Research AB , Ageia (tidigare) |
Nyckelprogrammerare _ | Manju Hejd |
Hårdvaruplattformar | IBM PC-kompatibla datorer , PlayStation 3 , Xbox 360 , Wii , PlayStation 4 , Xbox One |
OS som stöds | Windows , Linux , macOS , Android , iOS |
Licens | BSD-3 |
senaste versionen | 9.21.0713 |
developer.nvidia.com/obj… nvidia.com/de-de/ |
PhysX ( MFA: [ˈfɪzɛks] , uttalas [physiks]) är middleware ( engelska middleware ), en plattformsoberoende fysikmotor för att simulera ett antal fysiska fenomen, samt ett utvecklingskit ( SDK ) baserat på den. Ursprungligen utvecklad av Ageia för deras PhysX fysiska processor . Efter att Ageia köptes upp av nVidia blev motorn nVidias egendom , som fortsätter sin vidareutveckling. Nvidia anpassade motorn för att påskynda fysikberäkningar på sina CUDA - arkitekturgrafikchips . PhysX kan också utföra beräkningar med en konventionell processor . PhysX är för närvarande tillgängligt på följande plattformar: Windows , Linux , macOS , Wii , PlayStation 3 , Xbox 360 , PlayStation 4 , Xbox One , Android , iOS (maskinvaruacceleration är endast möjlig på Windows -plattformen ). Motorn används i många spel och erbjöds aktivt till försäljning (licensiering) till alla, för olika plattformar [1] [2] [3] [4] [5] [6] .
Från och med den 3 december 2018 har PhysX-källkoden återlicensierats under BSD-3- licensen för öppen källkod [7] [8] .
Underprogramvaran PhysX SDK tillåter spelutvecklare att undvika att skriva anpassad kod för att hantera komplexa fysikinteraktioner i dagens PC-spel . Den 20 juli 2005 licensierade Sony PhysX SDK för användning i sin sjunde generation PlayStation 3 -spelkonsol . [9] PhysX SDK kan användas inte bara på Microsoft Windows utan även på Linux , men PhysX- processorstöd är för närvarande endast tillgängligt för Windows.
Till skillnad från de flesta andra fysikmotorer som levereras och installeras med spelet, måste PhysX SDK installeras separat. Den är installerad som en separat drivrutin . Om ett PhysX- kort är installerat på datorn kommer PhysX SDK-drivrutinen att använda sina resurser under drift. Om PhysX är frånvarande, kommer beräkningsuppgifter att överföras till den centrala processorn . [tio]
PhysX SDK-fysikmotorn består av tre huvudsakliga fysikbearbetningskomponenter:
När PhysX SDK-drivrutinen är installerad kan du se dessa tre komponenter i motorn i aktion.
Den 13 februari 2008 förvärvade NVIDIA Ageia , vilket gör PhysX SDK proprietärt för NVIDIA . [11] Stöd för PhysX SDK har integrerats i CUDA- ramverket, som redan har många Linux- drivrutiner . Därmed har behovet av en dedikerad fysisk PhysX- processor försvunnit. PhysX SDK-stöd är tillgängligt för alla Nvidia -grafikkort från 8xxx-serien. PhysX SDK-fysikmotorn är nu känd som NVIDIA PhysX SDK . [12]
I mars 2008 meddelade Nvidia att de skulle göra PhysX SDK till en öppen standard tillgänglig för allmänheten. [13] Den 24 juli 2008 rapporterades det att Nvidia skulle släppa en WHQL-certifierad ForceWare-drivrutin med stöd för fysikacceleration den 5 augusti 2008 . [14] [15]
På grund av slutet på stödet för Havok FX var PhysX SDK-fysikmotorn fram till 2010 den enda hårdvaruaccelererade tekniken. [16] En annan fysikmotor , Bullet , fick initialt stöd för hårdvaruaccelerationsteknik med OpenCL , tack vare aktivt stöd från AMD .
Även om PhysX SDK är designad för användning i datorspel, kan den också användas i andra applikationer.
Den 15 augusti 2008 släppte NVIDIA ForceWare 177.83-drivrutin med PhysX-stöd i grafikkort i GeForce 8, 9 och 200. Detta utökade omedelbart användarbasen till över 70 miljoner människor världen över. [17] [18]
Den 4 mars 2015 tillkännagav NVIDIA tillgången på fullständiga PhysX-källor. Motorkoden tillhandahålls som en del av den kostnadsfria PhysX SDK förberedd för Windows , Linux , macOS och Android [19]
Den 28 juni 2008 lanserade Eran Badit från NGOHQ.com Arkiverad den 7 juli 2008 på Wayback Machine PhysX SDK-hårdvarustöd på Radeon HD 3870 -grafikkortet . [20] Inledningsvis reagerade NVIDIA negativt på Eran Badits initiativ och sa att det var omöjligt. Men den 9 juli 2008 erbjöds Badit att gå med i nVidias utvecklingsteam , öppnade åtkomst till dokumentation, SDK , hårdvara och gav kontakter till ingenjörer. [21] Det utlovades att modifierade drivrutiner för ATI-kort snart skulle vara tillgängliga för nedladdning. Enligt andra källor stödde ATI i sin tur inte officiellt Badits initiativ . [22] För att skriva officiella (omodifierade) ATI- drivrutiner med PhysX-stöd, erbjuder nVidia att licensiera CUDA -hårdvarustöd , som inkluderar PhysX. CUDA - tekniken konkurrerar dock med AMD:s FireStream-teknik .
I nVidia grafikdrivrutiner version 186 är möjligheten att arbeta tillsammans mellan två grafikkort som har GPU från olika tillverkare ( AMD och nVidia ) installerad. Således, om det tidigare var möjligt att separera beräkningar för olika grafikkort (till exempel kan ett kort med en nVidia -processor beräkna spelfysik, och ett kort med en AMD-processor kan rendera bilder ) , så från version 186, om en GPU från en annan tillverkare upptäcks i systemet (även integrerad i chipsetet), då är den här funktionen inaktiverad. Dessutom stöder den nya versionen av PhysX-motorn inte PhysX dedikerade fysiska acceleratorer (PPU) , utvecklade av Ageia , om en icke- NVIDIA GPU upptäcks i systemet .
En nVidia- representant förklarade situationen på följande sätt:
PhysX är en öppen mjukvarustandard och alla företag är fria att utveckla hårdvara eller mjukvara som stöder den. NVIDIA stöder NVIDIA GPU fysikacceleration när NVIDIA GPU också används för grafik... Av många anledningar - dels på grund av utvecklingskostnader, dels på grund av testkostnader, och dels av affärsskäl kommer NVIDIA inte att stödja fysikacceleration av GPU :n , om grafik bearbetning utförs av en GPU från en annan tillverkare.
APEX är ett tillägg på hög nivå som NVIDIA har för avsikt att göra det lättare att integrera PhysX i spelprojekt och påskynda utvecklingsprocessen. APEX låter konstnärer och designers skapa fysiska effekter med minimal programmering. Istället för PhysX API på låg nivå förses utvecklaren med en uppsättning verktyg för att skapa vissa fysiska effekter baserade på färdiga APEX-moduler. Användningen av dessa moduler säkerställs genom integrationen av APEX-ramverket i spelmotorer.
Spelmotorer som använder PhysX SDK-komponenter som ett fysikundersystem:
Nvidia | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
GPU:er ( jämförelse ) _ |
| ||||||||||
Moderkortschipset ( jämförelse ) _ _ |
| ||||||||||
Övrig |
|
Spelmotorer | |||||||
---|---|---|---|---|---|---|---|
Grafisk | Fri GLScene Horde3D Irrlicht TROLL OpenSceneGraph Proprietär Outra | ||||||
Fysisk | Fri Box2D Kula Jordekorre newton ODE. Tokamak Proprietär DMM Havok Fysik PhysX | ||||||
generell mening |
| ||||||
Specialiserad |
| ||||||
Lista över spelmotorer |