PhysX | |
---|---|
| |
Tyyppi | Fysiikka moottori |
Kehittäjät |
Nvidia (nykyinen) NovodeX AG , Meqon Research AB , Ageia (entinen) |
Avainohjelmoija _ | Manju Hejd |
Laitteistoalustat | IBM PC -yhteensopivat tietokoneet , PlayStation 3 , Xbox 360 , Wii , PlayStation 4 , Xbox One |
Tuettu käyttöjärjestelmä | Windows , Linux , macOS , Android , iOS |
Lisenssi | BSD-3 |
uusin versio | 9.21.0713 |
developer.nvidia.com/obj… nvidia.com/de-de/ |
PhysX ( MFA: [ˈfɪzɛks] , lausutaan [physiks]) on väliohjelmisto ( englanniksi middleware ), useiden fysikaalisten ilmiöiden simulointialustojen välinen fysiikan moottori sekä siihen perustuva kehityspaketti ( SDK ). Alunperin Ageia on kehittänyt fyysiselle PhysX - prosessorilleen . Kun nVidia osti Ageian , moottorista tuli nVidia , joka jatkaa edelleen kehitystään. Nvidia mukautti moottorin nopeuttamaan fysiikan laskelmia CUDA - arkkitehtuurin grafiikkasiruilla . PhysX voi myös suorittaa laskelmia käyttämällä perinteistä prosessoria . PhysX on tällä hetkellä saatavilla seuraaville alustoille: Windows , Linux , macOS , Wii , PlayStation 3 , Xbox 360 , PlayStation 4 , Xbox One , Android , iOS (laitteistokiihdytys on mahdollista vain Windows -alustalla ). Moottoria käytetään monissa peleissä ja sitä tarjottiin aktiivisesti myyntiin (lisensointi) kaikille eri alustoille [1] [2] [3] [4] [5] [6] .
3. joulukuuta 2018 alkaen PhysX-lähdekoodi on lisensoitu uudelleen BSD-3 avoimen lähdekoodin lisenssillä [7] [8] .
PhysX SDK -aliohjelmiston avulla pelien kehittäjät voivat välttää mukautetun koodin kirjoittamisen käsitelläkseen monimutkaisia fysiikan vuorovaikutuksia nykypäivän PC-peleissä . 20. heinäkuuta 2005 Sony lisensoi PhysX SDK:n käytettäväksi seitsemännen sukupolven PlayStation 3 -videopelikonsolissa . [9] PhysX SDK:ta voidaan käyttää paitsi Microsoft Windowsissa , myös Linuxissa , mutta PhysX - prosessorituki on tällä hetkellä saatavilla vain Windowsille.
Toisin kuin useimmat muut pelin mukana toimitettavat ja asennettavat fysiikan moottorit, PhysX SDK on asennettava erikseen. Se asennetaan erillisenä ohjaimena . Jos tietokoneeseen on asennettu PhysX -kortti , PhysX SDK -ohjain käyttää resurssejaan käytön aikana. Jos PhysX puuttuu, laskentatehtävät siirretään keskusprosessorille . [kymmenen]
PhysX SDK -fysiikkamoottori koostuu kolmesta pääasiallisesta fysiikan käsittelykomponentista:
Kun PhysX SDK -ohjain on asennettu, voit tarkastella näitä kolmea moottorin osaa toiminnassa.
13. helmikuuta 2008 NVIDIA osti Ageian ja teki PhysX SDK:sta NVIDIA :n omaisuuden . [11] Tuki PhysX SDK:lle on integroitu CUDA -kehykseen, jossa on jo monia Linux - ajureita . Näin ollen fyysisen PhysX -prosessorin tarve on kadonnut. PhysX SDK -tuki on saatavilla kaikille 8xxx-sarjan Nvidia -näytönohjainkorteille. PhysX SDK - fysiikkamoottori tunnetaan nyt nimellä NVIDIA PhysX SDK . [12]
Maaliskuussa 2008 Nvidia ilmoitti tekevänsä PhysX SDK:sta avoimen standardin yleisön saataville. [13] 24. heinäkuuta 2008 ilmoitettiin, että Nvidia julkaisee WHQL-sertifioidun ForceWare-ohjaimen fysiikan kiihdytyksen tuella 5. elokuuta 2008 . [14] [15]
Havok FX:n tuen päättymisen vuoksi PhysX SDK -fysiikkamoottori oli vuoteen 2010 asti ainoa laitteistokiihdytetty tekniikka. [16] Toinen fysiikan moottori , Bullet , sai alustavan tuen laitteistokiihdytysteknologialle OpenCL :n avulla AMD :n aktiivisen tuen ansiosta .
Vaikka PhysX SDK on suunniteltu käytettäväksi tietokonepeleissä, sitä voidaan käyttää myös muissa sovelluksissa.
NVIDIA julkaisi 15. elokuuta 2008 ForceWare 177.83 -ohjaimen PhysX-tuella GeForce 8-, 9- ja 200-sarjan näytönohjaimissa. Tämä laajensi käyttäjäkunnan välittömästi yli 70 miljoonaan ihmiseen maailmanlaajuisesti. [17] [18]
NVIDIA ilmoitti 4. maaliskuuta 2015 täydellisten PhysX-lähteiden saatavuudesta. Moottorikoodi toimitetaan osana ilmaista PhysX SDK:ta, joka on valmistettu Windowsille , Linuxille , macOS :lle ja Androidille [19]
28. kesäkuuta 2008 Eran Badit NGOHQ.comista Arkistoitu 7. heinäkuuta 2008 Wayback Machinessa käynnisti PhysX SDK -laitteistotuen Radeon HD 3870 -näytönohjaimella . [20] Aluksi NVIDIA reagoi kielteisesti Eran Baditin aloitteeseen sanoen, että se oli mahdotonta. Kuitenkin 9. heinäkuuta 2008 Baditille tarjottiin liittymistä nVidia -kehitystiimiin , hän avasi pääsyn dokumentaatioon, SDK :hen , laitteistoon ja antoi kontakteja insinööreille. [21] Lupattiin, että ATI-korttien muunnetut ajurit olisi pian ladattavissa. Muiden lähteiden mukaan ATI ei puolestaan virallisesti tukenut Baditin aloitetta . [22] Virallisten (muokkaamattomien) ATI -ajureiden kirjoittamiseksi PhysX-tuella nVidia tarjoaa CUDA -laitteistotuen lisensoinnin , joka sisältää PhysX:n. CUDA -tekniikka kilpailee kuitenkin AMD :n FireStream-tekniikan kanssa .
nVidia - näytönohjaimien versiossa 186 on asennettu mahdollisuus työskennellä yhdessä kahden näytönohjaimen välillä, joissa on eri valmistajien GPU:ita ( AMD ja nVidia ). Jos siis aiemmin oli mahdollista erottaa laskelmat eri näytönohjainkorteille (esimerkiksi nVidia -prosessorilla varustettu kortti voi laskea pelin fysiikan ja AMD-prosessorilla varustettu kortti renderöidä kuvia ) , niin versiosta 186 alkaen, jos GPU järjestelmässä havaitaan toinen valmistaja (jopa integroitu piirisarjaan), tämä ominaisuus poistetaan käytöstä. Lisäksi PhysX-moottorin uusi versio ei tue Ageian kehittämiä PhysX:lle omistettuja fyysisiä kiihdyttimiä (PPU) , jos järjestelmässä havaitaan muu kuin NVIDIA GPU .
nVidian edustaja selitti tilanteen seuraavasti:
PhysX on avoin ohjelmistostandardi, ja jokainen yritys voi vapaasti kehittää sitä tukevaa laitteistoa tai ohjelmistoa. NVIDIA tukee NVIDIA GPU:n fysiikan kiihdytystä, kun NVIDIA GPU : ta käytetään myös grafiikkaan ... Monista syistä - osittain kehityskustannuksista, osittain testauskustannuksista ja osittain liiketoiminnallisista syistä NVIDIA ei tue grafiikkasuorittimen fysiikan kiihdytystä , jos grafiikka on käsittely suoritetaan toisen valmistajan GPU :lla.
APEX on korkean tason lisäosa, jonka NVIDIA aikoo helpottaa PhysX:n sisällyttämistä peliprojekteihin ja nopeuttaa kehitysprosessia. APEXin avulla taiteilijat ja suunnittelijat voivat luoda fyysisiä tehosteita minimaalisella ohjelmointipanostuksella. Matalan tason PhysX API:n sijaan kehittäjällä on joukko työkaluja tiettyjen fyysisten tehosteiden luomiseen valmiiden APEX-moduuleiden pohjalta. Näiden moduulien käyttö varmistetaan integroimalla APEX-kehys pelimoottoreihin.
Pelimoottorit, jotka käyttävät PhysX SDK -komponentteja fysiikan alajärjestelmänä:
Nvidia | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
GPU ( vertailu ) _ |
| ||||||||||
Emolevyn piirisarjat ( vertailu ) _ |
| ||||||||||
Muut |
|
Pelien moottorit | |||||||
---|---|---|---|---|---|---|---|
Graafinen | Vapaa GLScene Horde3D_ Irrlict OGRE OpenSceneGraph Omistusoikeus Outerra | ||||||
Fyysinen | Vapaa Box2D Luoti Maaorava_ newton OODI. Tokamak Omistusoikeus DMM Havok fysiikka PhysX | ||||||
yleinen tarkoitus |
| ||||||
Erikoistunut |
| ||||||
Luettelo pelimoottoreista |