GeForce PhysX, és ami mögötte van

Bevezetés a PhysX rejtelmeibe

Manapság a grafikus processzorok piacán az aktuális DirectX verzió mellett a PhysX technológia előnyeit ecseteli talán legtöbbször a média. A márkanév mára összenőtt az NVIDIA-val, ám ez nem volt mindig így, ugyanis a jól hangzó nevet a néhai Ageia Technologies alkotta meg. A 2002-ben alapított vállalatnak feltett szándéka volt az új PC-s őrület felvirágoztatása, melynek következtében a felhasználók a videokártyák mellett az újonnan megszületett fizikai társprocesszornak is hasonló figyelmet szentelnek majd.

Az első PPU, azaz fizikai processzor 2006 tavaszán jelent meg, PhysX P1 néven. Magáról a termékről egy korábbi írásunkban már beszámoltunk, így a részletesebb elemzés helyett csak azokat a pontokat elevenítjük fel, amelyek elengedhetetlenül fontos részét képezik jelen cikkünknek. Rögtön az elején érdemes tisztázni azt, hogy a PhysX technológia gyakorlatilag egy API-nak (alkalmazásprogramozási felület) tekinthető, melyhez a fejlesztők egy hardvert is készítettek. A rendszer programozását a NovodeX néven ismert fejlesztőkörnyezet segítségével lehetett kivitelezni. Ez a felület képes volt a központi- és a saját tervezésű fizikai processzornak emészthető kódot fordítani. Ennek megfelelően a PhysX API-t használó játékok nem feltétlenül követelték a méregdrága PhysX P1 kártyát, sőt a többségük még akkor is a CPU-n számította a fizikát, ha volt megfelelő célhardver a számítógépben.

A kezdeti fellángolás hamar elapadt a PhysX P1 iránt, ami annak volt köszönhető, hogy az Ageia kevés játékot prezentált a hardver megjelenésekor, ráadásul ezek a minőség szempontjából többnyire nem ütötték meg a megfelelő szintet. Ennek hatására a vállalat jelentősen csökkentette a PhysX fejlesztőkörnyezetének licencdíjait, sőt pár hónappal később a teljes csomag ingyenes lett mindenki számára. Ez természetesen a PhysX API terjedésének jót tett, de a hardveres gyorsítás lehetőségét még mindig kevesen használták ki.

A fejlesztők érdeklődése nem volt meglepő, hiszen a PhysX technológia felvette a versenyt a konkurens Havokkal szemben, sőt az ingyenes licenc hatására az anyagiakban szűkösködő stúdiók egyből lecsaptak rá. Bár az Ageia rendszere nem mondható totális bukásnak, az ambiciózus cég számításai egyértelműen nem jöttek be, így csak idő kérdése volt, hogy mikor veti ki a hálóját a technológiákra egy nagyobb vállalat. Az NVIDIA nem várt túl sokáig, és 2008 tavaszán felvásárolta az Ageia Technologies-t, így a PhysX API hivatalos tulajdonosa lett. Bár nem kapcsolódik szorosan a történethez, de a Havokot is bekebelezte az Intel, ennek megfelelően a két legjobb fizikai számításokra tervezett rendszer mamutcégek birtokába került.

PhysX újratöltve

Az NVIDIA terveiben nem szerepelt az Ageia dedikált gyorsítóinak alkalmazása, így a fizikai számításokat a népszerű GeForce termékcsaládon kívánták alkalmazni. A vállalat rendszerprogramozói neki is álltak a technológia integrálásának, aminek tökéletes táptalajt biztosított a CUDA. A GeForce PhysX névre keresztelt megoldást bármilyen CUDA platformot támogató videokártya képes futtatni, mely rendelkezik 256 MB fedélzeti memóriával és 32 darab stream processzorral.

GeForce PhysX a gyakorlatban

Hirdetés

Először is fontos megjegyezni, hogy a PhysX továbbra is API-ként funkcionál, tehát minden olyan program, ami ezt a fizikai motort alkalmazza – függetlenül attól, hogy a számítások a CPU-t, a PPU-t vagy a GPU-t terhelik – telepíti a megfelelő PhysX drivert. A fejlesztők szabadon dönthetnek, hogy az előbb említett erőforrások közül mely processzorok erejét használják fel. Mivel a központi egységek, a fizikai társprocesszorok és a grafikus lapkák eltérő kódot futtatnak, így natív támogatást kell nyújtani az összes rendszerre. Éppen ezért a PhysX technológiát használó játékok zöme a fizikai hatásokat csak a processzoron használja, míg egy kis részük a PPU vagy a GPU, esetleg mindkettő erejét tudja hasznosítani.

A PhysX API-t több mint 150 darab, PC-re is elérhető játékprogram támogatja, ám ennek a számnak csak töredéke alkalmaz hardveres gyorsítást. Az eddig bejelentett, GeForce PhysX támogatással megjelent vagy érkező játékokat az NVIDIA az alábbi linken részletezi, mi azonban az informálódásra a sokkal több adatot tartalmazó PhysXInfo.com néven bejegyzett, nem hivatalos rajongói oldalt ajánljuk, mely rendkívül részletesen foglalkozik a témával.

Természetesen az API képességeit is folyamatosan fejlesztik a zöldek, így újabb és szebb effektek kerülnek a rendszerbe. Az idei évben debütált az APEX technológia is, mely egy olyan kiterjesztésnek fogható fel, amely megkönnyíti a fejlesztőnek a PhysX eljárások integrálását. Ez annyit tesz, hogy az NVIDIA konkrétan beépíthető eljárásokat tervezett, melyek felhasználhatók az egyes jelenetekhez. Ezenkívül az APEX modul skálázhatóságot is nyújt, vagyis az alkalmazott effektek számításigényét, azaz a jelenetben résztvevő objektumok számát a lassabb és a gyorsabb rendszerekhez lehet igazítani.

A PhysX és az SLI

Függetlenül attól, hogy az NVIDIA az Ageia-féle termék további forgalmazásának ötletét elvetette, nem mondott le arról, hogy igény esetén dedikált GeForce kártya számolja a programok fizikáját, mely akár más típusú is lehet a grafikán munkálkodó társhoz képest. Ez a megoldás akár több, SLI-be kötött grafikus gyorsító mellett is működhet.

Az SLI-be kötött kártyák esetén az úgynevezett SLI PhysX mód működik. Legyen szó 2-way, 3-way vagy Quad-SLI rendszerről, a fizikát minden esetben az a kártya számolja, amelyre a monitor van kötve. Ez persze az AFR (Alternate Frame Rendering) feldolgozás mellett hatalmas probléma, ugyanis az egymás után következő képkockák hiába vannak kiosztva a rendelkezésre álló grafikus processzoroknak, a monitort vezérlő kártyának minden jelenethez ki kell számolnia a fizikai hatásokat. Ebből rögtön látható, hogy a rendszer teljesítményét az elsődleges GPU erősen befolyásolja, így a megfelelő skálázódás gyakorlatilag lehetetlen. Az NVIDIA erre még nem talált ki hatékony megoldást, így teljesítményproblémák esetén az SLI mód kikapcsolását javasolják.

Mindenképp érdemes beszámolni az EVGA, nemrég bemutatott GeForce GTX 275 CO-OP PhysX Edition névre keresztelt kártyájáról, mely egy dedikált PhysX gyorsítót alkalmaz a grafikus processzor mellett. Ezzel a felépítéssel áthidalható a fentebb tárgyalt, SLI-t érintő probléma, mivel mindegyik GPU külön társchipet kapott a fizikai számításokra.

Tesztkonfig, megjegyzések

Videokártya / driver Asus GeForce GTX 260+ 896 MB (576/1242/1000 MHz) / Forceware 191.07
Asus GeForce GTS 250 1024 MB (738/1836/1000 MHz) / Forceware 191.07
Asus GeForce GT 220 1024 MB (625/1360/900 MHz) / Forceware 191.07
Processzor Core i7-870 2,93 GHz túlhajtva 4 GHz-en (20x200)
QPI órajel: 3,2 GHz; NB órajel: 3,6 GHz
EIST / C1E / C-state / Turbo Boost kikapcsolva
Alaplap MSI P55-GD80 – Intel P55 chipset
Memória 2 x 2 GB CSX DDR3-1600, 1600 MHz-en 9-9-9-24-2T időzítésekkel
Merevlemez Samsung SpinPoint T166 500 GB (SATA, 7200 rpm, 16 MB cache)
Tápegység Cooler Master 600 watt
Monitor Samsung Syncmaster 305T Plus (30")
Op. rendszer Windows Vista Ultimate 64 bit SP1

A tesztrendszeren nem változtattunk előző cikkünkhöz képest, továbbra is a beválni látszó Intel Core i7-es processzor és az MSI P55-ös alaplapja szolgál a videokártyák alatt. A 2,93 GHz-es alapórajelű i7-870-es processzort 4 GHz-re tuningoltuk, hogy a CPU-limit lehetőleg ne szóljon bele a végeredményekbe. A rendszert 2 x 2 GB DDR3-as memóriával toldottuk meg. Kicsit viccesnek hat, hogy míg a csúcs-középkategóriás GTX 260-ason 896 MB memória található, addig a két gyengébb VGA-ra 1 GB-ot tettek a gyártók; ennek az lehet az oka, hogy sokan igen helytelenül még mindig a videokártyán található memória mennyisége alapján választanak a boltban. Az AMD-s grafikus kártyák hiányoznak a résztvevők közül, ugyanis a Radeonok – CUDA támogatás hiányában – nem képesek a PhysX gyorsítására, ami azt jelenti, hogy mindent a processzor számol. Ez gyakorlatilag minden esetben játszhatatlanul lassú feldolgozást eredményez, így nem láttuk értelmét sebességmérésnek.

Játékok

  • Batman: Arkham Asylum
  • Cryostasis benchmark
  • Mirror's Edge
  • Sacred 2: Fallen Angel

A játékok kiválasztásánál természetesen az volt a fő szempont, hogy támogassák a PhysX-et, végül két ismerős és két, eddig tesztjeinkben nem szereplő címre esett a választásunk. Az Unreal Engine 3 motorra épülő Batman: Arkham Asylum és a Mirror's Edge az eddig megjelent GeForce PhysX-es alkotások közül a legjobb értékeléseket kapta a médiában, míg a Cryostasis és a Sacred 2: Fallen Angel pusztán az alkalmazott effektek miatt került a tesztbe. A mérésekhez használt programoktól függetlenül minden olyan játékot megnéztünk, amely támogatja a grafikus processzoron történű fizikai gyorsítást, így a lehető legteljesebb képet kaptuk a technológia előnyeiről.

A meghajtóprogramokban a képminőségi beállításokat „legjobb minőség”-re állítottuk, az anizotropikus szűrést 16x-osra, az élsimítást alkalmazásvezéreltre, a V-sync-et pedig kikapcsoltuk.

A négyből három játékban (Batman, Mirror's Edge, Sacred 2) egy begyakorolt útvonalat jártunk be háromszor egymás után, miközben FRAPS-szel mértük az fps-eket. A három lefutott kör után az átlagot jegyeztük fel. A Cryostasis benchmark esetében – amint az a nevéből is következik – a beépített teljesítménytesztet alkalmaztuk a mérések során.

Tesztek I.

Forrás: PhysXInfo.com

A Mirror’s Edge-ben rendkívül jó eredmények születtek. Ahogy a videóban látható, az alkalmazott effektek is látványosak, és kifejezetten illenek a környezetbe. A fizikai számításokra dedikált GeForce gyorsító a sebesség tekintetében sokat jelent, de a játék gépigénye még bekapcsolt PhysX és aktív élsimítás mellett sem nevezhető magasnak, így egy átlagos teljesítményű grafikus processzor elég a program futtatásához.

Forrás: PhysXInfo.com

A Batman: Arkham Asylum eredményei gyakorlatilag a Mirror’s Edge-ben látott sorrendet másolják le, ám fontos megjegyezni, hogy a gépigény érezhetően nagyobb. Ebből kifolyólag érdemes elgondolkodni egy fizikai számításokra dedikált GeForce kártyán, hiszen a várt hatás biztosan nem marad el. Maga a PhysX gyorsítás egy normal és egy high opcióval is rendelkezik, így kevésbé izmos számítógép esetén nem kell teljesen lemondani a vizuális előnyökről, ettől függetlenül az – egyébként mesterien kivitelezett – effektek kevésbé látványosak, sőt az egyes, komoly erőforrásigénnyel rendelkező eljárások (például: talaj menti köd) ki is kapcsolnak.

Forrás: PhysXInfo.com

Kezdeti lelkesedésünk a Cryostasis alatt alábbhagyott. Bár a játék szép számmal tartogat PhysX effekteket, a minőségük valahogy nem meggyőző, sőt helyenként jobban tetszett a gyorsítás nélkül alkalmazott megoldás. Itt gyakorlatilag elmondható, hogy maga a technológia nem sokat ér igényes kivitelezés és kreativitás nélkül. A mért teljesítmény is elszomorító. A játék iszonyatosan gépigényes, és a fizikára kijelölt társkártya nagyobb felbontás mellett már nem tud sokat segíteni.

Tesztek II.

Forrás: PhysXInfo.com

A Sacred 2: Fallen Angel effektjeitől kissé felemás érzéseink voltak. Kifejezetten tetszett a varázslatok környezetre gyakorolt hatása, de a minőség átlagosnak mondható. Persze hozzá kell tenni, hogy a Mirror’s Edge és a Batman: Arkham Asylum igazán magasra tette a lécet. A sebesség sem a legjobb, bár a Cryostasis mélypontjáról szerencsére elmozdultunk. A dedikált kártyával gyorsított PhysX esetében sem tetszetős a kép, nagyobb felbontás mellett nem nagyon éri meg a beruházás.

A tesztben szereplő játékok mellett a többi GeForce PhysX címet is kipróbáltuk. A nemrég megjelent Darkest of Days hasonló érzéseket keltett bennünk, mint a Cryostasis, hiszen amellett, hogy a látvány nem túl erős, még a gépigény is magas. Pozitívan nyilatkozhatunk azonban az Unreal Tournament 3 Extreme Physics Modjáról, a Warmonger: Operation Downtown Destructionról és a Crazy Machines II című logikai játékról. Ez volt az a három program, ahol éreztük, hogy ha csak egy kicsit is, de valóban beleszól a játékmenetbe a GeForce PhysX. Itt el is értünk a teszt csúcspontjához, hiszen az NVIDIA-féle fizikai gyorsítás nevétől eltérően egyáltalán nem az erők valósághű modellezéséről szól, hanem sokkal inkább a látványról. Természetesen a vizuális hatások változnak, illetve javulnak a PhysX aktiválásának hatására, de a játékélmény gyakorlatilag ugyanaz, eltekintve az előbb említett három programtól.

Mindennek természetesen megvan az oka. Az ominózus három játék egyértelműen a GeForce és a néhai Ageia közösségét célozza meg, míg a többi program esetén a fejlesztők keze meg van kötve, ugyanis azokra a potenciális vásárlókra is gondolni kell, akiknek nem áll rendelkezésre CUDA platformot támogató grafikus processzor. A GeForce PhysX, mint technológia gyakorlatilag itt ütközik problémákba, az NVIDIA saját GPGPU programnyelvét semelyik konkurens gyártó sem akarja támogatni, amiből következik, hogy a stúdiók a fizikai gyorsítást csak a látványra használhatják fel. A zöldek ez ellen csak úgy védekezhetnek, hogy a PhysX API-t átportolják az OpenCL platformra. Ha ez nem történik meg, akkor a PhysX nagyon nehéz helyzetbe kerül, hiszen számtalanszor előfordult a PC-s történelemben, hogy a nyílt szabványokra elérhető konkurensek megfojtották a zárt megoldásokat.

Konkurensek, összegzés

A GeForce PhysX vizsgálata után érdemes magáról az API-ról, illetve annak konkurenciájáról is szót ejteni. Kezdésnek rögtön leszögezhetjük, hogy a PhysX nem az egyetlen fizikai motor a piacon, ráadásul a PC mellett elérhető Xbox 360-ra, Playstation 3-ra, Wiire illetve iPhone-ra. Természetesen az utóbbi rendszerek esetében a számítások gyorsítása nem érhető el.

A PhysX legnagyobb konkurense az Intel birtokában lévő Havok, mely szintén multiplatform motor, és a képességeit tekintve bőven egy súlycsoportban van az NVIDIA megoldásával. A rendszer egyik legnagyobb előnye, hogy elképesztően jól használja ki a többmagos processzorok erejét, emellett a Havok FX modulon keresztül a grafikus vezérlőkön is kivitelezhető a fizika számítása. Utóbbi technika az OpenCL platformon keresztül működik. Ez a Havok másik nagy fórja, ugyanis a Khronos Group nyílt programnyelvét minden gyártó azonos feltételek mellett támogathatja.

Bár a Havok FX modult még nem használták játékban, ám idén a Red Faction: Guerrilla című játék olyan fizikai modellezést tett le az asztalra, ami korszakalkotónak tűnik. Az alábbi videón látható, hogy a processzor erejéből számolt fizika nemcsak extra effektek szintjén van jelen, hanem teljesen része a játékmenetnek. Említhettük volna a nemrég megjelent Star Wars: The Force Unleashed játékprogramot is, mely a Havok mellett a Pixelux Entertainment DMM technológiáját is használja. Az utóbbi megoldás az anyagok fizikáját próbálja a valóságnak megfelelően szimulálni. Segítségével az egyes felületek különböző paraméterekkel ruházhatók fel, melyek eltérően fognak viselkedni egyazon virtuális hatás alatt. Ezzel a technológiával megoldható, hogy az objektumok ütközése mindig eltérő hatást fejtsen ki, sőt a teljes szimulációnak hála a felületek a legtöbbször másképp roncsolódnak vagy törnek szét. Az eredmény igazán lenyűgöző lett, és ami még fontosabb: a központi egység segítségével kalkulált fizika érdemi változást visz a játékmenetbe. Valami ilyesmi hiányzik a GeForce PhysX-et támogató játékokból.

A Havok és PhysX erős kihívója még a nyílt forráskódú Bullet Physics motor, melybe az AMD és a Pixelux Entertainment hamarosan integrálja azt a DMM (Digital Molecular Matter) technológiát, amit az előbbi bekezdésben tárgyaltunk. Érdemes ellátogatni a hivatalos honlapra, ahol számos videó mutatja be mi mindenre jó még az anyagok fizikáját szimuláló rendszer.

A Bullet Physics-et régóta fejlesztik, és számos játék használja, többek közt a Grand Theft Auto 4 is. A motor a hardveres gyorsítást is támogatja a CUDA platformon keresztül, de ez a szolgáltatás rövidesen elérhető lesz OpenCL és DirectCompute felületen is, ennek köszönhetően gyakorlatilag gyártófüggetlen megoldással állunk szemben, így nem szól az alkalmazása ellen semmi. Sőt a DMM technológia integrálása a jövőben hatalmas előnyévé válhat.

Végül, de nem utolsósorban érdemes megemlíteni a nyílt forráskódú ODE (Open Dynamics Engine) API-t is, amit a GSC Game World és a Techland licenszel, így olyan alkotásokban gondoskodik a fizikai modellről, mint a S.T.A.L.K.E.R. és a Call of Juarez sorozat. Sajnos a rendszer kapcsán a hardveres gyorsításról még nem eset szó, de lassan időszerű lesz ebbe az irányba vinniük a fejlesztést.

A fentebb bemutatott fizikai motorokon kívül természetesen más megoldások is léteznek, a PhysX konkurenseinek körét azonban a legelterjedtebb rendszerekre szűkítettük. A Havok és a Bullet Physics a képességeket tekintve komoly versenytársa az NVIDIA API-jának, mivel a technikai megvalósításban hasonló szintet képviselnek, ám a hardveres gyorsítás teljesen független a gyártótól, így nemcsak a GeForce kártyák a támogatottak.

Konklúzió

A PhysX értékelését érdemes több oldalról megközelíteni. Maga az API a technológiai oldalt vizsgálva egyértelműen versenyképes. Ahogy azt a tesztek után is említettük, egyetlen problémája van csak: a fizikai gyorsítás a CUDA platformhoz van láncolva, ami megköti a fejlesztők kezét. Gondoljunk bele, ha a játékmenetbe is beleszólnának azok az elemek, amelyek csak a GeForce kártyákon kivitelezhetőek, akkor a népes Radeon tábor egyfajta butított élményben részesülne. Ez konkrétan nem célja a stúdióknak, hiszen a potenciális vásárlóközönség megritkításával bevételtől esnének el. Kisebb projektek mellett bevállalható, hogy a kieső nyereséget az NVIDIA zsebből pótolja, de egy nagyobb címnél ez elképzelhetetlen. Esetleg valami extra tartalom lehetséges, ami például az Unreal Tournament 3 esetében pontosan három pályában ki is merült. Ezek alapján elmondható, hogy a GeForce PhysX technológia a játékélményt nagyon ritkán befolyásolja, ami valamennyire csalódás.

A látvány szempontjából vizsgálva jól teljesít a rendszer, észrevehető különbségek vannak, ezek többnyire emelik a vizuális élményt. Fontos megjegyezni, hogy a GeForce PhysX nincs ingyen, azaz az extra effektek több erőforrást követelnek. Alacsonyabb felbontás mellett egy GeForce 8800GT-hez hasonló megoldás szükséges, míg élsimítás és magasabb felbontás esetén egy GeForce GTS 250 vagy GTX 260 az ajánlott. Sajnos a Cryostasis és a Darkest of Days némileg erősebb kártyát igényel, de ezek az alkotások nem tartoznak a legjobb játékok közé.

A PhysX társkártya alkalmazása érdekes képet fest. A tesztekből kiderül, hogy főleg az Unreal Engine 3-ra alapozó játékok esetén érdemes megfontolni a használatát, mert komoly változást hoz, de nem szabad túlzásokba esni a vásárláskor. A nemrég megjelent GeForce GT 220-hoz viszonyítva alig van előnye a jelentősen erősebb GeForce GTS 250-nek, így bőven elég egy belépőszintű modell a fizikai számításokra. Érdemes figyelembe venni, hogy a fedélzeti memória mérete és sebessége nem túl lényeges tényező a PhysX-nek, így a jelenleg elérhető termékek közül az 512 MB-os verziók bőven elegendőnek bizonyulnak majd. Ettől függetlenül mi a PhysX társkártyát csak akkor ajánljuk, ha a cél kimerül a GeForce PhysX-es játékok gyorsításában, mivel más programra teljesen hatástalan a pluszhardver.

Összességében a GeForce PhysX a jelenlegi állapotában elnyerte a tetszésünket, de a CUDA-hoz kötött API jövője a konkurensek képességeit látva nem biztosított. Az OpenCL-re portolás megoldás lehetne, de nem tudni, hogy az NVIDIA mit tervez a PC-s GPU piacon. Elképzelhető, hogy a szabványok helyett a saját megoldásait szeretné népszerűsíteni a cég.

Abu85, fLeSs

A tesztben felhasznált Asus videokártyákat az Expert Computer Kft. bocsátotta rendelkezésünkre.

Azóta történt

Előzmények

Hirdetés