PhysX Pack #1: Milník herních dějin?

0

Fyzika v počítačových hrách

Akcelerace fyzikálního enginu představovaného technologií PhysX na GPU má rozsáhlé souvislosti a zajímavé pozadí vývoje. Vrátíme se nejdříve někam na poslední přelom století.

Synonymem pro průkopníka fyziky v počítačových hrách se stala společnost Havok. Stejnojmenný engine jsme obdivovali nejen v podobě loga ve starších verzích 3DMarku, ale hlavně třeba ve hrách jako Painkiller. Vrcholem fyziky byla tehdy simulace „padajícího hadrového panáka“ známá pod anglickým jménem ragdoll.

Další kultovní hrou, která používala jednu z prvních verzí Havoku, byl Max Payne 2. Kromě ragdoll efektu mělo mnoho objektů své definice hmotnosti a dalších vlastností a mohly být posunuty, odhozeny výbuchem apod.

http://www.rockstargames.com/maxpayne2/

V praxi, tedy například hře Painkiller (Havok 2.0), se vše projevovalo tak, že když jste odstřelili oběšenou mrtvolku z provazu, nespadla jen tak obyčejně, ale třeba vám po šikmé střeše udělala pár kotrmelců, prohnula se přitom všelijak v kolenou a loktech a nakonec jinak deformovaná spadla. Zbraní, která vystřelovala hřebíky, jste mohli nepřátele efektně přišpendlit ke zdi, nebo sledovat chování těl odhozených výbuchem. Realita na dosah ruky, říkali jsme si (v roce 2004).

http://www.painkillergame.com/  

Ragdoll
   Ragdoll fyzika se ve hrách používá k simulaci chování těla, nejčastěji lidského a nejčastěji mrtvého či umírajícího. Systém pracuje na principu těles (rigid bodies) spojených s nějakým uzlem a na základě definovaných vzájemných vztahů těchto těles se simuluje jejich možné chování. Ragdoll fyzika je založena na Featherstonově algoritmu zveřejněném v jeho knize z roku 1987 a zdrojový kód jeho implementace můžete najít třeba na http://www.kuffner.org/james/software/.
   Přestože se pojem ragdoll physics stal oficiálním, pochází z hovorové řeči. Postavy, pro něž je použita simulace ragdoll, často umírají velmi teatrálně a popis hadrová panenka (panák) to velmi trefně vystihoval.

Další novátorství přinesl ještě před Vánoci roku 2004 Half-Life 2 se zbrusu novým Source enginem. Ten k fyzikálním výpočtům opět využíval Havoku a poprvé jste v áčkovém titulu potřebovali herní fyziku k dalšímu postupu ve hře. „Fyzikální puzzle“ neskončila jen u vymlácení slabých míst v dřevěném zátarasu páčidlem a s gravity gun si mnozí dokázali jen tak hrát celé hodiny.

http://galerie.half-life2.cz

Proč už fyzika na GeForce a Radeonech dávno nebyla?

V historii se posuneme sice jen o kousek dále, zato o podstatný kus blíže k hlavnímu tématu článku. V roce 2006 už byla prakticky hotova úplně nová verze Havoku: Havok FX. Havok měl využívat velký paralelní potenciál moderních GPU a přinést komplexnější fyziku s malými ztrátami výkonu. Mezi velkými myšlenkami bylo využívat GPU, když čeká na procesor, nebo využít vícero konektorů pro grafické karty a Multi-GPU (SLI/CrossFire). Ve stejném roce fyziku na GPU přes Havok FX prezentovala nejen společnost Nvidia, ale také ATI.

Ve druhém případě, tedy u Kanaďanů, bylo vše ještě pikantnější. Živé demonstrace si totiž společnost přichystala na podzimní Intel Developer Forum 2006 v San Franciscu, kde patřila i mezi hlavní partnery. Jenže chvíli předtím Kanaďany koupila společnost AMD a společnost Havok mezitím směřovala pod křídla Intelu.

A jak známo, Intel vyrábí a prodává hlavně procesory, vývoj Havok FX se zastavil a engine se zdokonaluje pouze ve směru lepšího využití více jader CPU. A to v době, kdy Nvidia ukazovala 10× vyšší výkon fyziky (demo s 15 000 balvany, GeForce 7900 GTX vs. Intel Pentium D 955) díky už připravené SLI Physics. Stejně tak ATI na zmíněném IDF 2006 přivezla PC se třemi Radeony X1900, z nichž dva měly pracovat v CrossFire a třetí zatím počítal efektní fyziku s tisícovkami míčků.

Ageia PhysX: software chtěli všichni, hardware nikdo

Mezitím na pole herní fyziky s velikánskou pompou vstoupil úplně nový hráč s úplně novou filozofií. Mluvíme o společnosti Ageia. Ta na rozdíl od Havoku nabízela svůj zřejmě už v té době daleko komplexnější fyzikální engine vývojářům zdarma, ale chtěla vydělávat na hardwaru. Její engine, PhysX, měl být totiž dostatečně rychle akcelerován pouze na specializovaném akcelerátoru s čipem nazývaným PPU (Physics Processing Unit).

Ageia se brzy domluvila s prvními herními studii a poté odtajnila i svou kartu. Akcelerátor PhysX P1 se však v době uvedení stal fiaskem. Karta i čip jakoby přišly z doby GeForce 3, odpovídal tomu jak výrobní proces, tak i celý vzhled včetně ne zrovna tichého větráčku. Alespoň ne na dvou kartách, které se rozšířily od výrobců Asus a BFG.

Co bylo ale na kartě nejtragičtější, to byla cena ve spojení s počtem herních titulů, které Ageia PhysX skutečně obohacoval. Už si přesně nepamatuji vlastní recenzi z doby uvedení, ale bylo to myslím tři hry, z nichž fyzika nejvíce lákala v Ghost Recon: Advanced Warfighter (GRAW). I přes přítomnost fyzikálního akcelerátoru však po zapnutí extrémní fyziky docházelo ke zpomalení, akcelerace nebyla taková, aby to s PPU bylo, jak se říká zadarmo. To u jinak zbytečné karty za nějakých 6000 Kč vyvolalo další zklamání.

Pár PhysX P1 karet se přece jen prodalo a to především díky drahým hráčským strojům od výrobců jako Dell nebo Falcon Northwest, které měly za úkol nabídnout prostě úplně vše dostupné. Ageia však stále měla výborný software a ještě za něj na rozdíl od Havoku nechtěla po vývojářích peníze. A tak engine PhysX pronikl do kompletního herního enginu Unreal 3, tedy asi vůbec nejrozšířenějšího multiplatformního enginu moderních her současnosti.

Cena karet PhysX nakonec spadla na přijatelnější peníze, ale společnost jaksi neměla recept jak vydělávat. Myslím, že nebudu daleko od pravdy, když řeknu, že v podstatě jen čekala na to, až ji někdo odkoupí a kolem jejího schopného fyzikálního engine postaví stejně schopný obchodní model.

A když Intel koupil Havok, tak Ageiu koupila Nvidia. To dá ve válce CPU vs. GPU vedené právě těmito soupeři rozum. Kdyby Nvidia chtěla udělat novou kartu čistě pro fyziku, dopadla by zřejmě podobně jako Ageia a nepomohl by jí ani vynikající program podpory vývojářů. Ale zajistit akceleraci PhysX vlastními grafickými kartami by znamenalo věnovat jim přidanou hodnotu.

Přidanou hodnotu přesně tak velkou, jak moc úžasné a nezbytné budou PhysX efekty a do kolika (a kolika klíčových) herních titulů PhysX pronikne.

PhysX od Nvidie, balíček první

12. sprna 2008 je datem, které má začít pronikání komplexní herní fyziky do světa PC. Od tohoto data je oficiálně k dispozici ke stažení ovladač ForceWare 177.79 (na Expreview můžete už dnes), který GPU PhysX zapíná nejen na nejnovějších GeForce GTX 280/280, ale rovněž na všech kartách GeForce série 9 a 8, tedy všech které podporují rozhraní Nvidia CUDA.

Ještě to má jednu podmínku, a to alespoň 256MB videopaměť (framebuffer). CUDA by snad měla být zprovoznitelná i na Radeonech HD 4800, na starších z důvodu absence nějaké funkcionality však ne. Předchozí větu neberte jako fakt, ale jako naprosto neověřenou informaci. Korektní PhysX na nejnovějších kartách by v případě nevyhnutelnosti mohla AMD po dohodě s Nvidií nabídnout také.

Důležité přitom je, že tak výkonný fyzikální engine umožňuje do her přinést více než jen ochutnávku v podobě rozštípnutí dveří, umírání postav s pomocí ragdoll nebo odhození krabice tlakovou vlnou výbuchu. Fyzikální enginy (obecně) se dají využít pro tyto úlohy:

  • výbuchy vytvářející prach a trosky
  • postavy s propracovanou animací pohybu
  • efekty realistických i sci-fi zbraní
  • animace šatů, interakce textilní látky sdalšími objekty nebo větrem
  • realistické chování mlhy nebo kouře i vpřípadě složitých objektů, snimiž přijdou do interakce (například puklina vzemi, postava procházející kouřem apod.)
  • simulace povětrnostních podmínek
  • simulace chování kapalin
  • animace částicových systémů
  • umělá inteligence

Z tohoto pravděpodobně neúplného výčtu možností fyzikálního enginu jste už s některými efekty setkali ve starších hrách, nebo hrách používajících Havok. Fyzika však má typickou vícevláknovou úlohou velmi vhodnou pro paralelní architektury. A procesor (CPU) je navzdory čtyřjádrové současnosti ve srovnání s GPU přece jen pořád spíše pomalý čip s univerzálním využitím.

Společnost Nvidia popisuje rozdíl mezi Havokem a PhysX metaforou: jestliže s Havokem můžete realistickou řeku, s PhysX jste schopni přidat ještě vodopády s tisícovkami malých spršek vody. Zatímco Havok s lepším procesorem kromě lepšího výkonu už nenabídne nic více, PhysX díky paralelnímu potenciálu GPU (či PPU) s lepším hardwarem otvírá možnosti daleko složitější fyziky (v praxi tomu odpovídají třeba tři stupně složitosti fyzikálních efektů ve hře Ghost Recon: Advanced Warfighter 2).

Z toho už vyplývá, co může uživatel od PhysX očekávat. PhysX samozřejmě poběží i na CPU, ale budete si schopni užít efekty v menším měřítku. Pro plné využití PhysX za současné plynulosti hry budete potřebovat GPU. A už máme obchodní model.

Následující schéma vám PhysX ještě více přiblíží. V horním patře jsou nadstavby: APEX od Nvidie nebo třeba Natural Motion (bude využita ve hře BackBreaker), jež mají práci s API a tvorbu her usnadnit. I ty však staví na SDK PhysX, tedy souboru nástrojů (knihoven) určených pro vývojáře her (připadně nadstaveb PhysX).

Stejně jako třeba grafické API (DirectX/OpenGL) komunikuje PhysX s hardwarem přes HAL (Hardware Abstraction Layer). Jak už z názvu vyplývá, jedná se o vrstvu, která pomáhá API domluvit se s různým hardwarem.

Nadstavba PhysX – Natural Motion

Radek Bábíček, 27. 5. 2008

Pamatujete si např. reklamu na Pepsi, kde se chlapík spouští s přísavkami na rukou po stěně mrakodrapu dolů? Tak i tuto reklamu mají na svědomí nástroje od Natural motion.

Základní stavební kameny této společnosti jsou tři – euphoria (používá se k reálnému generování pohybu ve hrách), morphene (animační engine) a endorphin (umožňuje adaptivní chování animovaného objektu). Všechny tyto tři nástroje se pak používají v moderních hrách pro PC, XboX i PS3.



Asi nejlepším způspbem, jakým si můžete udělat představu, jak jednotlivé nástroje fungují, bude shlédnutí 11minutového videa z Editor’s Day.

 

Obrázek o tom, jak funguje euphoria v praxi, si pak můžete udělat z tohoto oficiálního videa:

Testy, obrázky a videa: Unreal Tournament 3

Unreal Tournament 3

V UT3 jsem testoval ve všech třech mapách s podporou PhysX: HeatRay, Lighthouse a nejefektnější Tornado. Řekl bych, že Unreal Tournament 3 je paradoxně asi nejhůře optimalizovaný titul pro GPU PhysX, protože i v 1680 × 1050 px (max. detaily, ale bez anti-aliasingu) dostává i GeForce GTX 280 dost zabrat. Navíc jsem měl nutkavý pocit, že vypínání hardwarové akcelerace fyziky (i přes ovladače) jaksi momentálně nepracuje, jak by mělo. V mapách Lighthouse a hlavně HeatRay novější verze mod packu přinesla daleko širší nasazení fyziky, než vidíte na videosekvencích níže.

Již dříve jsem s ovladači 177.39 a prvním PhysX modem pro Unreal Tournament 3 provedl několik testů a zejména natočil videa s PhysX v UT3, která si můžete stáhnout o něco níže.

Pro Unreal Tournament 3 jsou k dispozici tři mapy s podporou PhysX. V Lighthouse budete pomocí sudu vyhazovat do vzduchu celé zdi, v Heat Ray ničit neony, sledovat krupobití a ustřelovat dřevené rampy nepřátelům pod nohama a největší zábavu si užijete v mapě Tornado. Orkán s bouřkou uprostřed přechází po mapě tam a zpět, trhá plechy ze střech, odmrštuje kontejnery (nebo vás, podle toho, kam se nachomýtnete) a celkově je s ním opravdu legrace.

Klepnutím přehrajete video

Tornado_PhysX (58 MB, WMV, 720p)

Klepnutím přehrajete video

HeatRay_PhysX (44 MB, WMV, 720p)

Klepnutím přehrajete video

Lighthouse_PhysX (14 MB, WMV, 720p)

Klepnutím na obrázek jej zobrazíte v rozlišení 2560 × 1600 px.

Testy a obrázky: Warmonger a GRAW 2

Warmonger

Warmonger je asi nejlákavější hrou z prvního PhysX packu. Jednak proto, že je zdarma a také proto, že její Unreal 3 engine ve spojení s extrémní fyzikou vypadá opravdu dobře a deathmatch společně s destrukcí všeho možného na jeho mapách je docela zábava. Nastaveny maximální detaily a 1680 × 1050 px:

Ghost Recon: Advanced Warfighter 2

První GRAW se používal pro demonstraci Ageia PhysX, druhý opět sice nevyniká grafikou, zato je v něm fyzika použita docela hojně. Mimojiné pro veškeré ploty a zdi, což jsem taky s nastavením Physics na Extreme benchmarkoval v první mapě. Bez akcelerace PhysX nejde v nastavení zvolit vyšší fyziku než Normální, ale v první testované mapě bylo vše jako s extrémní fyzikou: laťky plotu odstřelíte, vítr má vliv na stromy a chuchvalce slámy, … Přesto je snímková frekvence bez akcelerace PhysX velmi nízká.

Ve hře existuje specialitka, Ageia Island, tedy ostrov, kde se můžete s extrémní fyzikou vyřádit (tato mapa je ale netypická a nebyla předmětem benchmarkování).

Testy a obrázky: Nurien a MKZ (alfa)

Nurien (Runway)

Nurien je podle mě vůbec nejzajímavější nasazení fyziky. Jedná se o jakési sociální minihry (tancování, přehlídka na molech, kvízy), kterými Korejci zřejmě osloví hlavně ženy u počítače. Animace pohybu těla, šatů a vlasů je však opravdu parádní a v Unreal 3 enginu pěkně vykreslené lepé děvy s asijskými rysy možná ke hře dostanou i nás, muže.

Alfa verze Nurien běží bohužel jen ve 1280 × 1024 px a zabudovaný interní benchmark měří nesmysly (je tedy třeba použít FRAPS).

Metal Knight Zero

MKZ je alpha, jak se patří a kromě toho, že v polovině případů během testu spadne, tak je distribuován v RARu obsahujícím soubory s čínskými znaky. Hra používá fyziku pro animaci látek, pohupování palem a nějaké ty efekty spojené se střelbou, její grafika ale vypadá jako minimálně pět let zastaralá.

 

Nová dema a test PhysX na slabším PC

Test PhysX na slabším PC

Nová PhysX dema

Nvidia (nebo možná tým Ageia pracující již pro Nvidii) vyvinula i vlastní technologická dema prokazující vyspělost PhysX. Můžete si je stáhnout z webu Nvidie a pohrát si s nimi, první z nich, Fluids, nabízí moře nastavení i možnost srovnání se softwarovým (CPU) počítáním fyziky.

Kapalinu si můžete zobrazit i jako shluk koulí (tak je vlastně počítána) a můžete do níž rovněž házet míče a přesvědčit se, že se nejedná o nic předskriptovaného. Další část dema, do které se dostane přes volbu Screen ukazuje chování kapaliny v obřím logu společnosti.

V Great Kulu můžete chvíli trápit jakéhosi ogloje-chorchoje elektrickým obuškem a sledovat reakce jeho slizkého těla. Za chvíli se něco stane a vy budete před červem prchat až do místnosti s jeho vejci. Tam už vám dá pokoj a vy můžete elektrikou zkoumat fyzikální reakce vajec na elektřinu.

 

 

PhysX s více kartami, závěr

Nvidia pro PhysX asi opravdu dělá co může, a tak si pospíšila s oznámením využití GPU PhysX pro SLI zapojení a hlavně obecně pro další grafickou kartu v počítači. Základní desek se dvěma a více sloty pro grafiky je mezi lidmi více než dost a myslím, že využití druhého slotu pro SLI nebo CrossFire bude dost malé.

Takto si můžete buď přikoupit třeba GeForce 9500 GT ke stávající kartě a mít ji klidně na fyziku (mělo by to být zřejmě možné i v případě, že první karta bude ATI Radeon, ještě jsem to nestihl vyzkoušet). A rozumíte tomu dobře: mělo by to být možné i pro čipové sady Intel či AMD, prostě všechny s více sloty pro grafiky. Ještě to samozřejmě ověříme krátkým praktickým testem, ale takové milé využití jinak nepoužitelného druhého slotu třeba u Intel P35 desek (16/4× PCIe), zní dobře.

Možná výrobce také předpokládá, že třeba svou GeForce 9600 GT povýšíte třeba na GeForce GTX 260. Takto ji ale nevyhodíte, nebo se ztrátou neprodáte, nábrž ji osadíte do druhého slotu a využijete pro fyziku (zatímco nová karta se bude trápit nad grafikou). Samotné SLI zapojení PhysX momentálně výkonnostně nijak nepomůže, spíš naopak a Nvidia pro hraní PhysX her doporučuje SLI vypnout a využívat zatím jednu kartu pro grafiku a druhou pro fyziku. Test Multi-GPU PhysX zveřejnil třeba ComputerBase.

PhysX si už můžete zkusit v těchto hrách:

  • Unreal Tournament 3
  • Ghost Recon: Advanced Warfighter 1 & 2
  • Warmonger

To je jen seznam her, kde díky počítání s akcelerací PhysX jsou efekty „nejmohutnější“, kompletní seznam her s PhysX najdete na http://en.wikipedia.org/wiki/PhysX. PhysX licencovala i Sony pro PlayStation 3, není mi však známo, jak propracované efekty procesor Cell umožní. Softwarově akcelerovanou podobu PhysX najdete i na dalších konzolích a šanci mají i vývojáři pro operační systém Linux.

Nejočekávanější PC hry s PhysX:

Nejsem znalec her a míry jejich očekávanosti, takže si netroufnu říct, zda už do konce roku (většina zmíněných her mí být nejpozději v listopadu uvedena) bude PhysX nutností, nebo se bez něj naopak většina obejde. A to je vlastně i pointa: pokud kvalitní tituly a správné nasazení udělají z GPU PhysX nutnost, tak si Nvidia připíše veliké vítězství. AMD bude asi muset PhysX licencovat, Intelu nevyjde krok s Havokem. Anebo to může být naopak, fyzika ve hrách hráčskou obec nenadchne, tituly s PhysX se nestanou hitem a Nvidia asi prodělá hodně peněz. Na PhysX se ale skoro určitě bude lámat chleba, s určitostí ale zřejmě hlavně v roce 2009.