PhysX | |
---|---|
Logo oficial | |
Tip de | Motor de fizică |
Dezvoltatori |
Nvidia (actuală) NovodeX AG , Meqon Research AB , Ageia (fostă) |
Programator cheie | Manju Hejd |
Platforme hardware | Calculatoare compatibile cu PC IBM , PlayStation 3 , Xbox 360 , Wii , PlayStation 4 , Xbox One |
Sistem de operare acceptat | Windows , Linux , macOS , Android , iOS |
Licență | BSD-3 |
ultima versiune | 21.9.0713 |
developer.nvidia.com/obj… nvidia.com/de-de/ |
PhysX ( MFA: [ˈfɪzɛks] , pronunțat [physiks]) este middleware ( middleware în engleză ), un motor fizic multiplatform pentru simularea unui număr de fenomene fizice, precum și un kit de dezvoltare ( SDK ) bazat pe acesta. Dezvoltat inițial de Ageia pentru procesorul fizic PhysX . După ce Ageia a fost achiziționată de nVidia , motorul a devenit proprietatea nVidia , care își continuă dezvoltarea ulterioară. Nvidia a adaptat motorul pentru a accelera calculele fizice pe cipurile sale grafice cu arhitectura CUDA . PhysX poate efectua, de asemenea, calcule folosind un procesor convențional . PhysX este disponibil în prezent pe următoarele platforme: Windows , Linux , macOS , Wii , PlayStation 3 , Xbox 360 , PlayStation 4 , Xbox One , Android , iOS (accelerarea hardware este posibilă numai pe platforma Windows ). Motorul este folosit în multe jocuri și a fost oferit în mod activ spre vânzare (licențiere) tuturor, pentru diverse platforme [1] [2] [3] [4] [5] [6] .
Începând cu 3 decembrie 2018, codul sursă PhysX a fost relicențiat sub licența open source BSD-3 [7] [8] .
Sub-software-ul PhysX SDK permite dezvoltatorilor de jocuri să evite să scrie cod personalizat pentru a gestiona interacțiunile fizice complexe în jocurile pentru PC de astăzi . Pe 20 iulie 2005, Sony a licențiat PhysX SDK pentru a fi utilizat în a șaptea generație a consolei de jocuri video PlayStation 3 . [9] PhysX SDK poate fi folosit nu numai pe Microsoft Windows , ci și pe Linux , dar suportul pentru procesor PhysX este disponibil în prezent numai pentru Windows.
Spre deosebire de majoritatea celorlalte motoare de fizică care sunt livrate și instalate împreună cu jocul, PhysX SDK trebuie instalat separat. Este instalat ca un driver separat . Dacă o placă PhysX este instalată pe computer , atunci driverul PhysX SDK își va folosi resursele în timpul funcționării. Dacă PhysX este absent, sarcinile de calcul vor fi transferate la procesorul central . [zece]
Motorul fizic PhysX SDK constă din trei componente principale de procesare fizică:
Odată ce driverul PhysX SDK este instalat, puteți vedea aceste trei componente ale motorului în acțiune.
Pe 13 februarie 2008 , NVIDIA a achiziționat Ageia , făcând PhysX SDK proprietarul NVIDIA . [11] Suportul pentru PhysX SDK a fost integrat în cadrul CUDA , care are deja multe drivere Linux . Astfel, nevoia unui procesor fizic PhysX dedicat a dispărut. Suportul PhysX SDK este disponibil pentru toate plăcile grafice Nvidia din seria 8xxx. Motorul de fizică PhysX SDK este acum cunoscut sub numele de NVIDIA PhysX SDK . [12]
În martie 2008, Nvidia a anunțat că va face din PhysX SDK un standard deschis disponibil publicului. [13] Pe 24 iulie 2008, a fost raportat că Nvidia va lansa un driver ForceWare certificat WHQL cu suport pentru accelerarea fizică pe 5 august 2008 . [14] [15]
Datorită sfârșitului suportului pentru Havok FX, motorul de fizică PhysX SDK a fost până în 2010 singura tehnologie accelerată de hardware. [16] Un alt motor de fizică , Bullet , a primit suport inițial pentru tehnologia de accelerare hardware cu OpenCL , datorită suportului activ de la AMD .
Deși PhysX SDK este proiectat pentru a fi utilizat în jocuri pe calculator, poate fi folosit și în alte aplicații.
Pe 15 august 2008, NVIDIA a lansat driverul ForceWare 177.83 cu suport PhysX pe plăcile grafice din seriile GeForce 8, 9 și 200. Acest lucru a extins imediat baza de utilizatori la peste 70 de milioane de oameni din întreaga lume. [17] [18]
Pe 4 martie 2015, NVIDIA a anunțat disponibilitatea surselor PhysX complete. Codul motorului este furnizat ca parte a SDK-ului PhysX gratuit, pregătit pentru Windows , Linux , macOS și Android [19]
Pe 28 iunie 2008, Eran Badit de la NGOHQ.com Arhivat pe 7 iulie 2008 la Wayback Machine a lansat suport hardware PhysX SDK pe placa grafică Radeon HD 3870 . [20] Inițial, NVIDIA a reacționat negativ la inițiativa lui Eran Badit, spunând că este imposibil. Cu toate acestea, pe 9 iulie 2008, lui Badit i sa oferit să se alăture echipei de dezvoltare nVidia , a deschis accesul la documentație, SDK , hardware și a oferit contacte inginerilor. [21] S-a promis că driverele modificate pentru cardurile ATI vor fi disponibile în curând pentru descărcare. Potrivit altor surse, la rândul său, ATI nu a susținut oficial inițiativa lui Badit . [22] Pentru a scrie drivere ATI oficiale (nemodificate) cu suport PhysX, nVidia oferă licență pentru suport hardware CUDA , care include PhysX. Cu toate acestea, tehnologia CUDA concurează cu tehnologia FireStream de la AMD .
În driverele grafice nVidia versiunea 186, este instalată capacitatea de a lucra împreună între două plăci grafice care au GPU-uri de la diferiți producători ( AMD și nVidia ). Astfel, dacă mai devreme era posibil să se separe calculele pentru diferite plăci grafice (de exemplu, o placă cu procesor nVidia poate calcula fizica jocului, iar o placă cu procesor AMD poate reda imagini ) , atunci din versiunea 186, dacă un GPU de la un alt producător este detectat în sistem (chiar integrat în chipset), apoi această caracteristică este dezactivată. În plus, noua versiune a motorului PhysX nu acceptă acceleratoarele fizice dedicate (PPU) PhysX , dezvoltate de Ageia , dacă în sistem este detectată un GPU non- NVIDIA .
Un reprezentant nVidia a explicat situația după cum urmează:
PhysX este un standard de software deschis și orice companie este liberă să dezvolte hardware sau software care îl acceptă. NVIDIA acceptă accelerarea fizică a GPU-ului NVIDIA atunci când GPU -ul NVIDIA este folosit și pentru grafică... Din multe motive - parțial din cauza costurilor de dezvoltare, parțial din cauza costurilor de testare și parțial din motive de afaceri, NVIDIA nu va accepta accelerarea fizică de către GPU , dacă grafica procesarea este efectuată de un GPU de la alt producător.
APEX este un supliment de nivel înalt pe care NVIDIA intenționează să faciliteze încorporarea PhysX în proiectele de jocuri și să accelereze procesul de dezvoltare. APEX permite artiștilor și designerilor să creeze efecte fizice cu o intrare minimă de programare. În locul API-ului PhysX de nivel scăzut, dezvoltatorului i se oferă un set de instrumente pentru crearea anumitor efecte fizice bazate pe module APEX gata făcute. Utilizarea acestor module este asigurată de integrarea cadrului APEX în motoarele de joc.
Motoare de jocuri care folosesc componente PhysX SDK ca subsistem fizic:
Nvidia | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
GPU-uri ( comparație ) _ |
| ||||||||||
Chipset-uri plăci de bază ( comparație ) _ |
| ||||||||||
Alte |
|
Motoare de joc | |||||||
---|---|---|---|---|---|---|---|
Grafic | Gratuit GLScene Horde3D Irrlicht CĂPCĂUN OpenSceneGraph Proprietate Outerra | ||||||
Fizic | Gratuit Box2D Glonţ Chipmunk newton ODĂ. Tokamak Proprietate DMM Havok Fizica PhysX | ||||||
scop general |
| ||||||
De specialitate |
| ||||||
Lista motoarelor de joc |