PhysX - PhysX

PhysX
NVIDIA PhysX -logo.png
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 ( 2021-10-12 )
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

Mafia II: n fysiikan tasojen vertailu.
(PC) Ylimmässä kuvakaappauksessa näkyy, kuinka roskat simuloidaan Mafia II: ssa, kun PhysX käännetään korkeimmalle tasolle peliasetuksissa. Alemmassa kuvakaappauksessa on samanlainen kohtaus, jossa PhysX on käännetty alimmalle tasolle.

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:

Katso myös

Viitteet

Ulkoiset linkit