PhysX aneb akcelerovaná fyzika ve hrách
20.8.2008, Petr Štefek, článek
V poslední době se živě diskutuje o fyzikálních výpočtech ve hrách. Nvidia koupila Ageiu, Intel má Havok a AMD/ATI nic. Je zřejmé, že fyzikální hrátky ve hrách budou stále častější a dočkáme se propracovaných efektů. Pojďme si shrnout vývoj a současný stav.
Kapitoly článku:
Úvod do fyziky
Náš příběh začneme před třemi lety, kdy se na trhu objevila do té doby neznámá společnost Ageia s převratným nápadem. Vyvinula software (API) a hardware pro akceleraci fyziky v počítačových hrách. První akcelerátor PhysX nám v technologických demech ukazoval pokročilé simulace kapalin, částicové efekty a reálnou fyziku při interakci objektů. Obyčejný hráč si liboval, že se blýská na dobré „herní“ časy, ale bohužel pro Ageiu se zázrak nestal. Vývojáři her a potažmo celý herní trh nebyli na příchod podobné technologie připraveni.
Velkou roli sehrál fakt, že v té době nebyla na trhu jediná herní pecka, která by opodstatnila nákup hardwarového akcelerátoru fyziky. Největší výrobci se společnosti Ageia posmívali, ale tajně spřádali plán na svou vlastní technologii, kterou vypustí na trh, jakmile přesvědčí dostatek vývojářů o jejích přínosech a budou na trhu vlajkové hry pro tuto novou technologii.
ATI pracovala v té době na akceleraci fyziky svými GPU (Graphics Procesor Unit). Opět ovšem nebylo k dispozici více než technologická dema. Nvidia stála opodál a do světa volala prohlášení o zbytečnosti akcelerace fyziky, ale ve skutečnosti její karty nezvládaly akceleraci fyziky a po výkonnostní stránce vykazovaly často pouze zlomek výkonu tehdejších čipů ATI (R520 a R580) při využití enginu Havok FX.
Horečka ve „fyzikálním“ zbrojení ovšem odešla stejně rychle, jako přišla. Vývoj se přesunul do undergroundu a na nějaký čas jakoby byla akcelerace fyziky zasunuta do technologického šuplíku. Ageia se svým hardwarovým PhysX neuspěla, ale engine byl pevným základem pro další vývoj. Důvodem neúspěchu akcelerátoru byla především vysoká cena, poměrně těžkopádné hardwarové řešení s aktivním chlazením na procesoru PhysX a v neposlední řadě nepřipravený trh.
Nvidia vycítila velmi dobře, jaký má Ageia se svým PhysX engine potenciál, vyčkávala na vhodný okamžik pro akvizici této společnosti a zařazení technologie PhysX do svého portfolia. Přechod technologie PhysX pod křídla zelených byl ukázkou toho, co dokáže skvělá marketingová strategie ve spolupráci se silnou značkou Nvidie. Společnost ovšem s propagací sečkala do doby, než získá pro svou věc alespoň několik silných hráčů z oblasti herního průmyslu a pro prezentaci schopností „své“ nové technologie si velmi chytře vybrala velmi rychlý Unreal Engine 3, kde lze prezentovat pokročilou fyziku v podobě částicových efektů a destrukcí při akceptovatelném framerate. To byl také hlavní důvod, proč Nvidia vyškrtla možné technologické demo založené na CryEngine 2 alias Crysis.
Dnes se tedy podíváme nejen na prezentovaný fyzikální engine Nvidia PhysX, ale také zběžně na konkurenci v podobě Havoku FX, který je v současnosti pod křídly Intelu, jenž pracuje na jeho vylepšení. Nvidia se poučila z chyb společnosti Ageia a vyloučila samostatný hardwarový akcelerátor. Využila PhysX jako další lákadlo ke koupi svých grafických karet GeForce 8/9/GTX, jež promyšleně doplňuje platformu CUDA. Bude zajímavé sledovat, co se stane standardem v nadcházejících letech, vylepšený Havok pod vlajkou Intelu za přispění ATI nebo PhysX Nvidie.
Proč akcelerovat fyziku ve hrách
Když se řekne herní fyzika, vybaví se většině hráčů destrukce a kolize, které samozřejmě značnou měrou přispívají k obrazu reálného světa, ale rozhodně nejsou alfou a omegou celé „herní“ fyziky. V reálném světě fungují veškeré činnosti podle obecně platných fyzikálních zákonů. Dům například nezboříte zapřením se do jeho konstrukce a nemůžete letět spolu s hejnem hus na jih (aspoň dle platných fyzikálních zákonů a anatomie člověka).
Stejně je tomu ve většině her, které mají svůj jednoduchý fyzikální model, který počítá s tím, že budou respektovány alespoň základní zákony (např. gravitační zákon). Většinou je ale model velmi primitivní. Automobil se o překážku prostě zastaví, ale rozhodně není počítáno se silami, které při nárazu působí na zeď nebo auto. Pokud bychom chtěli vytvořit opravdu reálný model podobné kolize, tak musíme vzít v úvahu nejen hmotnost objektu, ale také jeho strukturu. To znamená například v případě automobilu model šasi (jeho materiál) v návaznosti na směru kolize a následných deformacích. U samotné zdi by zase mělo hrát roli to, z čeho je postavena a jakou má strukturu. To vše je nesmírně výpočetně náročné a obtížné na implementaci do herního prostředí.
Dalším příkladem mohou být válečné hry, kde výstřel z tanku často znamená jen černé vypálené místo na zdi, ale žádnou destrukci jako by tomu bylo v reálném světě. Právě toto by měly změnit fyzikální enginy nové generace, které budou mít patřičnou výpočetní podporu právě v podobě samostatných grafických karet nebo vícejádrových procesorů. Čím větší bude dostupná výpočetní síla, tím jednodušší bude realizovat například zhroucení budovy, kde budou tisíce různých částí kopírovat chování podobné akce v reálném světě.
Další velmi efektní věcí je simulace chování různých látkových materiálů na modelu postav, což ostatně vidíme i v technologickém demu Nvidia Nurien. To dává vývojářům prostor pro vylepšování modelu až do té míry, že budeme moci sledovat, jak se například chová plášť ve větru nebo šaty při tanečních kreacích modelů.
Vezměme si například ragdoll efekt, který známe již delší dobu, ale v budoucnu může být doplněn o takové „featury“ jako lámání kostí při pádu ze schodů nebo budovy. A také chování měkkých tkání při střetu s jinými materiály. Možnosti jsou obrovské a záleží skutečně jen na rychlosti o ochotě, s jakou budou vývojáři implementovat tyto novinky v závislosti na dostupném výpočetním výkonu.
Další libůstkou mohou být simulace reálných kapalin, což se týká například vodních hladin, které jednak reagují na poryvy větru a jednak ovlivňují například plování předmětů na jejich hladinách. V reálné simulaci by tak měla být brána v potaz hustota kapaliny stejně jako některé další specifické vlastnosti. Abychom povinnosti učinili zadost, je zde krátký výčet toho, co můžeme již dnes „akcelerovat“ (přesněji řečeno učinit reálnějším):
- dynamické změny tvaru objektů (Morphing)
- teselace a reálné zakřivení objektů (TIN)
- reálný model pohybujících se strojů a vozidel
- simulace vlivu kinetické energie nebo dynamiky
- reálný kolizní model objektů (např. srážka tanku s jeepem)
- chování kapalin a plynů ve specifickém prostředí (např. uvnitř a vně budov)
- chování textilních materiálů (např. trhání látky nebo lana)
- reálné chování částic v interakci s herním prostředím
- reálné pohybu organických struktur
- chování lidského těla v interakci s objekty ve hře
- simulace reálných povrchů (dřevo, kov, plasty atd.)