PhysX - PhysX
Alkuperäinen kirjoittaja | NovodeX AG ( ETH Zürich ) |
---|---|
Kehittäjä (t) |
Nvidia Corporation (2008-nykyinen) Ageia (2004-2008) NovodeX AG (2001-2004) |
Vakaa julkaisu | 9.21.0713 / 12. lokakuuta 2021
|
Varasto | https://github.com/NVIDIAGameWorks/PhysX |
Käyttöjärjestelmä | Microsoft Windows , macOS , Linux , PlayStation 2 , PlayStation 3 , PlayStation 4 , Xbox 360 , Xbox One , Wii , iOS , Android |
Tyyppi | Fysiikan simulointi |
Lisenssi | BSD-3 |
Verkkosivusto | Nvidia PhysX -kehittäjäsivusto |
PhysX on avoimen lähdekoodin reaaliaikainen fysiikkamoottorin väliohjelmisto- SDK, jonka Nvidia on kehittänyt osana Nvidia GameWorks -ohjelmistopakettia .
Aluksi, videopelit tukee PhysX oli tarkoitus kiihdytetään mukaan PhysX PPU ( laajennuskortit suunnitellut Ageia ). Kuitenkin, kun Ageia osti Nvidian omistettu PhysX kortit on lopetettu hyväksi API ajetaanko CUDA -yhteensopivan GeForce GPU . Molemmissa tapauksissa laitteistokiihdytys mahdollisti fysiikkalaskelmien lataamisen suorittimesta , jolloin se pystyi suorittamaan muita tehtäviä.
PhysX: ää ja muita väliohjelmistofysiikan moottoreita käytetään suuressa osassa nykypäivän videopelejä, koska ne vapauttavat pelikehittäjät joutumasta kirjoittamaan omaa koodiaan, joka toteuttaa klassista mekaniikkaa (Newtonin fysiikka) esimerkiksi pehmeän kehon dynamiikan tekemiseksi .
Historia
Mikä nykyään tunnetaan nimellä PhysX, sai alkunsa fysiikan simulointimoottorista nimeltä NovodeX. Moottorin kehitti sveitsiläinen NovodeX AG, ETH Zürichin spin-off. Vuonna 2004 Ageia osti NovodeX AG: n ja aloitti laitteistotekniikan kehittämisen, joka voisi nopeuttaa fysiikkalaskelmia ja auttaa CPU: ta. Ageia kutsui tekniikkaa PhysX: ksi, SDK nimettiin uudelleen NovodeX: stä PhysX: ksi ja kiihdytinkortit nimettiin PPU: ksi (Physics Processing Units).
Ensimmäinen peli, jossa käytettiin PhysX: ää, oli Bet On Soldier: Blood Sport (2005).
Vuonna 2008 Ageia osti itse grafiikkatekniikan valmistaja Nvidia. Nvidia alkoi ottaa PhysX -laitteistokiihdytyksen käyttöön GeForce -näytönohjaimissaan ja lopulta luopui Ageian PPU -laitteiden tuesta.
PhysX SDK 3.0 julkaistiin toukokuussa 2011, ja se edusti SDK: n merkittävää uudelleenkirjoitusta, joka toi mukanaan parannuksia, kuten tehokkaamman monisäikeistyksen ja yhtenäisen koodiperustan kaikille tuetuille alustoille.
At GDC 2015 , Nvidia teki lähdekoodin varten PhysX saatavilla GitHub , mutta tarvittava rekisteröinti developer.nvidia.com. Oma SDK toimitettiin kehittäjille ilmaiseksi sekä kaupallisiin että ei-kaupalliseen käyttöön Windows , Linux , MacOS , iOS- ja Android- alustoille.
3. joulukuuta 2018 PhysX tehtiin avoimen lähdekoodin 3-lausekkeen BSD-lisenssillä , mutta tämä muutos koski vain tietokone- ja mobiilialustoja.
PhysX 5.0 julkistettiin joulukuussa 2019, mutta sitä ei ole julkistettu COVID-19-pandemian vuoksi .
ominaisuudet
PhysX moottori ja SDK ovat käytettävissä Microsoft Windows, MacOS, Linux, PlayStation 3 , PlayStation 4 , Xbox 360 , Xbox One , Wii , iOS ja Android.
PhysX on monisäikeinen fysiikan simulointi-SDK. Se tukee kehon jäykkää dynamiikkaa , pehmeää rungon dynamiikkaa (kuten kangassimulaatio , mukaan lukien repiminen ja paineistettu kangas), ragdoll -nukkeja ja merkkiohjaimia , ajoneuvon dynamiikkaa, hiukkasia ja tilavuusnesteensimulaatiota.
Laitteiston kiihdytys
PPU
Fysiikan käsittely-yksikkö (PPU) on prosessori on erityisesti suunniteltu lievittämään laskennan taakkaa CPU, erityisesti laskelmat, joihin liittyy fysiikan. ASUS , BFG Technologies , Dell ja ELSA Technology tarjosivat PhysX PPU -laitteita kuluttajille PCI- tai PCIe -korttien muodossa .
PhysX SDK: n versiosta 2.8.3 alkaen PPU -korttien tuki lopetettiin, eikä PPU -kortteja enää valmisteta. Ageian suunnitteleman erillisen PhysX PPU -kortin viimeisellä inkarnaatiolla oli suunnilleen sama PhysX -suorituskyky kuin omistetulla 9800GTX -kortilla.
GPU
Kun Nvidia osti Ageian, PhysX: n kehitys kääntyi pois PPU -laajennuskorteista ja keskittyi sen sijaan nykyaikaisten GPU: iden GPGPU -ominaisuuksiin.
Nykyaikaiset grafiikkasuorittimet ovat erittäin tehokkaita tietokonegrafiikan käsittelyssä ja näyttämisessä, ja niiden erittäin yhdensuuntainen rakenne tekee niistä tehokkaampia kuin yleiskäyttöiset suorittimet fyysisten simulaatioiden nopeuttamiseksi PhysX: n avulla.
Mikä tahansa CUDA -valmius GeForce -näytönohjain (8 -sarjan tai uudempi GPU, jossa on vähintään 32 ydintä ja vähintään 256 Mt erillistä grafiikkamuistia) voi hyödyntää PhysX: ää ilman erillistä PhysX -korttia.
APEX
Nvidia APEX -tekniikka on monialustainen skaalautuva dynamiikkakehys, joka on rakennettu PhysX SDK: n ympärille. Se esiteltiin ensimmäisen kerran Mafia II : ssa elokuussa 2010. Nvidian APEX sisältää seuraavat moduulit: APEX Destruction, APEX Clothing, APEX Particles, APEX Turbulence, APEX ForceField ja aiemmin APEX Vegetation, joka keskeytettiin vuonna 2011.
Versiosta 1.4.1 alkaen APEX SDK on vanhentunut.
Nvidia FleX
FleX on hiukkaspohjainen simulointitekniikka reaaliaikaisiin visuaalisiin tehosteisiin. Perinteisesti visuaaliset tehosteet tehdään käyttämällä elementtien yhdistelmää, joka on luotu käyttämällä erikoisratkaisijoita jäykille kappaleille, nesteille, vaatteille jne. Koska FleX käyttää yhtenäistä hiukkasesitystä kaikille objektityypeille, se mahdollistaa uusia tehosteita, joissa eri simuloidut aineet voivat olla vuorovaikutuksessa keskenään saumattomasti. Tällainen yhtenäinen fysiikka ratkaisussa ovat katkottua offline tietokonegrafiikan maailmassa, jossa työkalut kuten Autodesk Maya n nCloth ja Softimage n Lagoa käytetään laajalti. FleXin tavoitteena on käyttää grafiikkasuorittimien tehoa tuodakseen näiden offline-sovellusten ominaisuudet reaaliaikaiseen tietokonegrafiikkaan.
Real World Technologiesin kritiikki
Real World Technologies julkaisi 5. heinäkuuta 2010 analyysin PhysX -arkkitehtuurista. Tämän analyysin mukaan suurin osa PhysX-sovelluksissa tuolloin käytetystä koodista perustui x87- ohjeisiin ilman monisäikeistä optimointia. Tämä voi aiheuttaa huomattavia suorituskyvyn laskuja, kun suoritat PhysX -koodia suorittimessa. Artikkelissa ehdotti, että PhysX uudelleenkirjoitussääntöä käyttäen SSE ohjeet voivat olennaisesti vähentää suorituskykyä ristiriita CPU PhysX ja GPU PhysX.
Vastauksena Real World Technologies -analyysiin PhysXin tuotepäällikkö Mike Skolones sanoi, että SSE -tuki oli jäänyt jälkeen, koska useimmat pelit kehitetään ensin konsoleille ja siirretään sitten tietokoneelle. Tämän seurauksena nykyaikaiset tietokoneet suorittavat nämä pelit nopeammin ja paremmin kuin konsolit, vaikka niitä ei optimoida juurikaan. Nvidian vanhempi PR-päällikkö Bryan Del Rizzo selitti, että monisäikeinen lanka oli jo ollut saatavana CPU PhysX 2.x -käyttöjärjestelmässä ja että kehittäjä oli itse velvollinen käyttämään sitä. Hän totesi myös, että PhysX SDK: n version 3 yhteydessä otetaan käyttöön automaattinen monisäikeistys ja SSE.
PhysX SDK 3.0 julkaistiin toukokuussa 2011, ja se edusti SDK: n merkittävää uudelleenkirjoitusta, joka toi mukanaan parannuksia, kuten tehokkaamman monisäikeistyksen ja yhtenäisen koodiperustan kaikille tuetuille alustoille.
Käyttö
PhysX videopeleissä
PhysX -tekniikkaa käyttävät pelimoottorit , kuten Unreal Engine (versio 3 eteenpäin), Unity , Gamebryo , Vision (versio 6 eteenpäin), Instinct Engine, Panda3D , Diesel , Torque , HeroEngine ja BigWorld .
Yksi kourallinen suurista fysiikkamoottoreista sitä käytetään monissa peleissä, kuten The Witcher 3: Wild Hunt , Warframe , Killing Floor 2 , Fallout 4 , Batman: Arkham Knight , Borderlands 2 jne. Useimmat näistä peleistä käyttävät prosessori käsittelemään fysiikan simulaatioita.
Videopelit, joissa on valinnainen tuki laitteistokiihdytetylle PhysX: lle, sisältävät usein lisätehosteita, kuten repeytyvää kangasta, dynaamista savua tai simuloitua hiukkasjätettä.
PhysX muissa ohjelmistoissa
Muita ohjelmistoja, joissa on PhysX -tuki, ovat:
- Active Worlds (AW), 3D -virtuaalitodellisuusalusta, jonka asiakas toimii Windowsissa
- Amazon lautatarha , 3D-peli kehityksen moottori kehittämä Amazonin
- Autodesk 3ds Max , Autodesk Maya ja Autodesk Softimage , tietokoneanimaatio sviittiä
- DarkBASIC Professional (DarkPHYSICS -päivitys), ohjelmointikieli , joka on suunnattu pelien kehittämiseen
- DX Studio , integroitu kehitysympäristö interaktiivisen 3D -grafiikan luomiseen
- Futuremark : n 3DMark06 ja Vantage benchmarking työkaluja
- Microsoft Robotics Studio , ympäristö robotin ohjaukseen ja simulointiin
- Nvidian SuperSonic Sled ja Raging Rapids Ride, teknologiaesitteitä
- OGRE (NxOgre -kääreen kautta), avoimen lähdekoodin renderointimoottori
- Physics HAL-taso , fyysinen simulointi API abstraktion järjestelmän (se tarjoaa COLLADA ja Scythe fysiikka editori tuki PhysX)
- Rayfire, Autodesk 3ds Max -laajennus, joka mahdollistaa murtumisen ja muut fysiikan simulaatiot
- Physics Engine Evaluation Lab, työkalu fysiikan moottoreiden arviointiin, vertailuun ja vertailuun.
- Unreal Engine pelin kehittämiseen ohjelmiston Epic Games . Unreal Engine 4.26 ja uudemmat ovat poistaneet PhysX: n virallisesti käytöstä.
- Unity (pelimoottori) , Unity ApS. Unityn datakeskeinen teknologiapino ei käytä PhysX: ää.
Katso myös
- DirectX
- Bullet (ohjelmisto)
- Havok (ohjelmisto)
- Avaa Dynamics Engine
- Newtonin pelidynamiikka
- OpenGL
- Vortex (ohjelmisto)
- AGX -monifysiikka