Uživatel:Madrvojt

Z HPM wiki
Přejít na: navigace, hledání

Obsah

Herní fyzikální akcelerátory - PhysX

Pod pojmem PhysX si můžeme představit revoluční čip pro akceleraci fyziky, který v současnosti využivají karty NVIDIA. Tento nástroj byl vyvinut firmou AGEIA v roce 2006. Tato technologie funguje na bázi procesorové jednotky PPU. Jeho jediným schopným konkurentem je engine Havok (viz. níže).

Základní pojmy

CPU - Central Processing Unit je v informatice základní součást počítače, která vykonává strojový kód spuštěného počítačového programu.

GPU - Graphic Processing Unit je v informačních technologiích specializovaný řídící procesor umístěný na grafické kartě uvnitř počítače.
Zajišťuje vykreslování dat uložených v operační paměti na zobrazovacím zařízení (monitor, projektor, braillský řádek a podobně).

PPU - Physics processing unit (viz. níže)

CUDA - Compute Unified Device Architecture - jde o způsob, jakým nVidia využívá své grafické čipy k počítání.

SLi - Scalable Link Interface - umožňuje propojení více grafických karet a získat tak vyšší výkon.
PhysX

Úvod k fyzice ve hrách

Už od počátku vývoje hraní je přítomná fyzika a přítomná bude i nadále, s rozdílem, že dříve záleželo na rychlosti výpočtu grafiky a kvalita zobrazení byla druhořadá. V těchto dnech je nutné aby byl efekt vypočten nejen rychle, ale také v absolutní vizuální kvalitě (Dnešní procesory to sami nedokážou splnit). Ani dnešní superrychlé procesory nejsou dostatečně rychlé k výpočtům náročných efektů. Nutnost je tedy fyziku počítat externě a to je v našem případě pomocí GPU grafické karty.

Herní fyzika se rozděluje na dvě hlavní skupiny :

a) Globální fyzika prostředí (Newtonovská fyzika) - Veškeré prostředí a dění ve hře musí být v rámci tří fyzikálních zákonů tj. Základní gravitace, nemožnost procházení zdmi, nemožnost létat, dosazení obecně známých hmotností předmětů (nemožnost např. auto posunout pohybem postavy).

b) Fyzika "efektová" - Mezi ní řadíme oheň, kouř, destrukce objektů a mnoho dalších vizuálních událostí. Je to "bonus", který dělá hry hezčí, zajímavější a realističtější. O tuto část fyziky se stará právě náš rozebíraný PhysX popř. Havok a další enginy.

Spousta "fyzikálních událostí" je už ve hrách implementovaná a není je nutné nijak více zpracovávat ani pomocí PPU ani GPU. S tímto si poradí samotné CPU počítače a na výkonu počítače to nepůjde poznat. PhysX a Hawok se soustředí pouze na některé efekty. Tím můžeme vidět, že herní fyzika není o tom zobrazit super reálné prostředí, ale spíše efektně zobrazit klíčové události ve hrách. A právě tyto události jsou akcelerované.

Historie fyzikálních akcelerátorů

Projekt "SPARTA"

Vůbec první externí akcelerátory podobné jako PPU, vytvořili vědci již v roce 1999. Projekt s názvem "SPARTA", dokázal počítat a zároveň zobrazit reálné chování některých předmětů a bylo možné simulovat jejich reálné kolize a chování.

SPARTA

PlayStation

Následující využití akcelerátorů byly console. Playstation 2 obsahoval dvě vektorové jednotky, které se nacházely uvnitř hlavního procesoru "EmotionEngine". I když se jednalo o základní akceleraci fyziky, určité operace jednotka zvládala rychleji. Následných krokem byl procesor "CELL", který obsahuje PlayStation 3. Jeho architektura je tvořena mnoho jádrovým čipem a proto je ideální komponenta pro výpočet a akceleraci fyziky. Procesor "CELL" je velice podobný jádru GPU, ale bohužel jeho využití je kvůli opomíjení tvůrců velmi málo využit.

Havok FX

V polovině roku 2005, byl oznámen Havok pro grafické karty. Systém, ve kterém jedna grafická karta bude určena pouze pro akceleraci fyziky ve hrách. Tento systém měl původně fungovat u karet ATi i NVIDIA a jeho funkčnost měla být zaručena také při Multi-GPU řešeních.Na internetu se objevila spousta článků, které tuto záležitost popisovaly. Bohužel realizace této myšlenky se stále odkládala a situace na trhu, která nastala hlavně příchodem karty Ageia, tyto aktivity zcela utlumila. Koncept v této podobě byl zcela mrtvý a myšlenka se přesunula do modernější roviny - výpočet fyziky skrze hlavní GPU, ne na další kartě.

Havok FX v podání ATi
Havok FX v podání NVIDIA

Ageia PhysX

Vývoj první prodejní verze trval dlouhé roky a společnost velmi vyčerpal. Když už se karta konečně dostala na trh, a výrobce očekával návratnost svých investic, ale čekalo ho další zklamání. Nedostatkem titulů a její slabé podpoře se z karty stal neprodejný a hlavně celkem drahý výrobek. Výrobce totiž udělal zásadní chybu v marketingu. Měl hardware, ale neměl nasmlouvané žádné kvalitní hry.

Bez her a AAA titulů se ani sebelepší hardware prostě prodávat nebude, a na tuto skutečnost Ageia doplatila. Tragická také byla podpora ovladačů, kde v několika prvních verzích bylo fps s kartou dokonce horší, než bez ní. Po čase společnost koupila firma NVIDIA a akceleraci fyziky skrze externí "PPU" kartu zcela zavrhla. Standard fyziky zůstal stejný, ale počítá se skrze GPU grafických karet GeForce.

Havok vs PhysX

Havok

Engine Havok dokáže plně akcelerovat a zpracovat :

a) AI postav (Havok Behavior)

b) Herní fyziku (Havok Physics)

c) Simulaci textilií (Havok Cloth)

d) Kolizi objektů

e) Destrukce (Havok Destruction)

Nejpoužívanější je základní verze "Havok Physics" pro herní fyziku. Tato verze obsahuje základní herní fyziku v podobě kolizních algoritmů základních objektů, automobilů, postav atd. Základní modul je velmi jednoduchý a neobsahuje téměř nic z pokročilé "efektové" fyziky. Pokud ji chceme využít, je nezbytné si pořídit další rozšíření. Široká je také použitelnost na různých platformách, Havok lze využít od PlayStation 1,2,3 přes Xbox 360, po Wii až k PC.

Základní nevýhoda toho enginu je "zastaralost" ve stávající verzi. Ani kdyby vývojář použil všechny SDK moduly Havok, možnosti, které nabízí konkurenční engine PhysX nelze dosáhnout. Možnosti fyziky skrze Havok omezené a od prvotní verze použité ve hře "Half Life" 2 se mnoho nezměnilo.Naopak velkou výhodou tohoto výrobku je jeho technická vyladěnost a perfektní dokumentace spolu s nástroji pro snadnou implementaci fyziky tohoto formátu. Havok je zkrátka "sázka na jistotu" a proto spousta herních studií jej licencuje pro své tituly.

Veškerá fyzika v Havoku počítána procesorem, Havok Physics neumí akcelerovat žádnou část fyziky skrze GPU.

PhysX

Možnostmi i koncepcí je mnohem lepší a modernější než nabízí konkurenční Havok. Efekty a ztvárnění fyziky je na mnohem vyšší úrovni. Herní fyzika PhysX samozřejmě umožňuje zpracování některých efektů také postaru "procesorem CPU", ovšem zde se neukáží všechny možnosti efektů. S přídavnou kartou "PPU" se možnosti teprve ukazují naplno. Kompletní balík SDK PhysX je mnohem komplexnější než Havok. Všechny možnosti herní fyziky najdete v jediném balíku a není nutné zvláštní doplňky (textilie, destrukce atd.) licencovat zvlášť. S PhysX dostanete naprosto vše v jednom jediném vývojářském kitu.V současné době je na trhu třetí generace balíků SDK PhysX 3.Možnosti využití PhysX na různých platformách jsou stejné, jako u Havok, dokonce s technologii CUDA se tento koncept dostává do vědecké roviny software pro fyzikální simulace a CAD, stejně jako tomu je u Havok.

Díky firmě NVIDEA, která odkoupila technologii byla odstraněna i hlavní nevýhoda v podobě nutnosti mít v počítači další kartu, protože karty GeForce fungují i jako plnohodnotný PhysX hardwarový akcelerátor.

V případě PhysX je téměř veškerá herní fyzika počítána GPU a efekty jsou mnohem kvalitnější, než u konkurenčního enginu.

Pyramida funkce CPU , PPU a GPU

Bližší popis PhysX

PPU

Physics processing unit (PPU) je specializovaný mikroprocesor navržený k výpočtu fyziky a to zejména ve fyzikálních enginech pro videohry. Předpokládá se, že ve specializovaných procesorech složí k časově náročným úlohám, podobně jako GPU, které pomáhá při grafických operacích hlavnímu procesoru.

Struktura PPU

Architektura PPU je desingnovaná na generování fyzických dat. Skládá se z :

a) PPU control engine (PCE) 

b) Data movement engine (DME) 

c) Floating point engine (FPE)

PCE řídí všechny operace zahrnující paměťové zdroje a vysílá grafické procesové příkazy do FPE a do DME.

FPE zahrnuje mnohonásobný vektor procesů, které pracují paralelně a obdrží od hostující jednotky operace pracující s plovoucí desetinou čárkou, díky kterým je umožněno generovat fyzické simulační data.

DME usnadňuje přenos dat mezi hostující jednotkou a FPE pomocí operací přesunu dat mezi externí a interní paměti na PPU.

Neexistuje žádná cache - hierarchie podobná jako u CPU nebo GPU.

Hardwarová specifikace PhysX1

Vícejádrové architektury MIPS tj.zařízení s integrovanou hardwarovou akcelerací fyziky a paměťový subsystém

125 milionů tranzistorů

Paměť : 128 MB GDDR3 RAM na 128-bitové rozhraní

Rozhraní : 32-bit PCI 3.0 (ASUS také PCI-Express 1x verze karty)

Sphere testy kolizí : 530 milionů za sekundu (maximální možnost)

Konvexní testy kolizí : 530.000 za sekundu (maximální možnost)

Špičková spotřeba energie: 30 W

PhysX v praxi

Následující video popisuje práci PhysX v akci na nejznámějších hrách. Je zde patrná práce s viz. výše zmiňovanými fyzikálními událostmi.

PhysX - ON / OFF

Druhé ukázkové video je ze hry Mafia 2. Je zde ukázána možnost využití karty Nvidea jako PPU jednotky a karty od firmy ATi jako GPU. Na záběrech jde vidět půlka obrazovky se zapnutým PhysXem a druhá naopak s vypnutým.

Mafia2

Poslední ukázka práce PhysX v praxi je popsána na této stránce, na které pomocí Benchmarku se porovnává výkon při jednotlivých hrách.

PhysX karta vliv na výkon

PhysX v obrazech

Nurien
UT3

Na fotkách jsou patrné efekty akcelerátoru. V prvním případě vidíme hru Fluids, ve které vidíme rozpad budovy na tisíce malých kousků. Na dalším obrazu je převedený reálný pohyb šatů ve hře Nurien. Poslední ukázka je ze hry Unreal Tournament 3.

Fluids

Modely PhysX

Realizace

Samotný NVIDIA PhysX má navrhnuté možnosti realizace v počítači, které jsou vidět na obrázku. První zobrazuje jedinou grafickou kartu, která počítá scénu i fyziku PhysX zároveň. Druhá situace je zapojení SLI, kde obě karty počítají scénu a jedna z nich ještě akceleruje PhysX. Poslední myšlenka na posledním obrázku - Multi-GPU PhysX.

Třetí varianta se vrací k původní myšlence konceptu jedné grafické karty pro výpočet scény a levnější pro fyziku. Toto zapojení velice pomůže při akceleraci v novějších hrách a možnosti použití slabších grafických karet i karet od konkurenčního RADEONu.


Shrnutí

PhysX se zatím omezuje na velké množství částicových efektů, výbuchy a efekty ohně a kouře, ale je nutné si uvědomit, že technologie je na počátku rozvoje GPU hardwarově akcelerované fyziky. Největší nevýhodou v počátku rozšíření PhysX ve hrách byla nutnost dokoupení další karty do PCI slotu. Tato je jíž odstraněno, a každý majitel karty GeForce má "PPU" zahrnuté již v grafické kartě. Snad tyto okolnosti, spolu s obrovským nasazením NVIDIA, přinesou na trh více zajímavých titulů a PhysX by se časem mohl stát základním standardem herní fyziky.

Reference

[1] http://wmda.mobi/cs/PhysX#PhysX

[2] http://vernys.zing.cz/clanek/470/nvidia-physx-co-vsechno-prinasi

[3] http://pctuning.tyden.cz/component/content/11344/11344?task=view&limit=1&start=5

[4] http://pctuning.tyden.cz/hardware/procesory-pameti/7084-ageia_physx-prvni_akcelerator_fyziky_v_modernich_hrach?start=3

[5] http://www.svethardware.cz/artp.jsp?doc=AFFA91FDDC04437AC12574A4006DB634

[6] http://myego.cz/item/ageia-physx-je-cesta-do-pekel

[7] http://www.sector.sk/novinka/23552/physx_akceleruje_fyziku.htm

[8] http://developer.nvidia.com/physx

Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje