artykuły

PhysX by NVIDIA – analiza techniki i testy praktyczne

Physikoterapia

183
10 września 2010, 14:20 Mieszko Krzykowski
Czego wymagamy od gier? To trudne pytanie, na które nie da się udzielić jednoznacznej odpowiedzi, ponieważ – co może zabrzmieć trochę banalnie – każdy ma odmienny gust. Niektórzy na pierwszym miejscu wymienią zakręconą fabułę, inni – wartką akcję, ktoś zapewne wspomni o klimacie czy humorze. Nie mniej ważne mogą być grafika i realizm, które potrafią istotnie wpłynąć na część z wcześniej wspomnianych aspektów. Właśnie w realizm celuje PhysX – technika, którą bardzo stara się wypromować NVIDIA i o której od dłuższego czasu nie można było przeczytać na łamach PCLab.pl. Zdecydowaliśmy się załatać w końcu tę poważną lukę i przedstawić obecny stan PhysX-a, a także odkurzyć swoją kryształową kulę.

Spis treści

A cóż to takiego ten PhysX?

Dawno, dawno temu, za siedmioma dolinami krzemowymi i siedmioma piaskowymi mostami... No dobrze, nie aż tak dawno temu, bo w roku 2006, i nie aż tak daleko firma Ageia postanowiła zrewolucjonizować rynek gier. Inżynierowie firmy uznali, że epoka uproszczeń i sztywnych skryptów dobiegła końca i nadszedł czas symulacji fizyki najwyższych lotów. Ta rewolucja miała nastąpić dzięki ich nadzwyczajnym bibliotekom oraz dodatkowej karcie rozszerzeń, nazywanej przez nich PPU (ang. Physics Processing Unit), która miała zawrzeć z GPU i CPU swoiste trójporozumienie oraz stać się nowym elementem ekosystemu gracza entuzjasty.

Plany firmy były bardzo ambitne, obietnice przypominały rozmachem przedwyborcze tyrady polityków, a możliwości i potencjalne korzyści na papierze wyglądały zachęcająco. Do gier w końcu miał zawitać realizm z prawdziwego zdarzenia, a gracz miał mieć możliwość wchodzenia w interakcję z otoczeniem. Początkowe dema techniczne czy gry pokroju CellFactora robiły spore wrażenie. Padały nawet stwierdzenia, że Ageia chce powtórzyć sukces firmy 3Dfx, której to udało się przekonać świat, że akcelerator grafiki to jest to, czym uda się popchnąć rozwój gier do przodu. No i w pewnym sensie Agei udało się powtórzyć „sukces” twórców kart Voodoo, ponieważ tak samo jak 3Dfx została... wykupiona przez NVIDI-ę. Nastąpiło to w roku 2008. Nie pomogło nawet to, że z bibliotek PhysX korzysta tak popularny silnik gier jak Unreal Engine 3.

Krótko mówiąc, coś poszło nie tak, jak miało pójść, a technika nie przyjęła się. „Zielonemu” gigantowi było to na rękę, bo obniżało koszt inwestycji. Z punktu widzenia NVIDI-i był to bardzo ważny strategiczny ruch, ponieważ w tym czasie pierwsze niepewne kroki stawiała machina o imieniu CUDA. Po miesiącach wytężonej pracy udało się przenieść technikę stworzoną przez Ageię z PPU na GPU kart GeForce serii 8000. PhysX miał udowodnić, że CUDA jest fajne, jest ważne i daje wymierne korzyści nie tylko w zastosowaniach profesjonalnych. Poza tym PhysX miał być ważnym elementem marketingu NVIDI-i i wyraźnie wyróżniać ją na tle AMD. O PhysX znowu zrobiło się głośno za sprawą wielkiej kampanii uruchomionej przez korporację z Santa Clara, a na horyzoncie pojawiły się pierwsze naprawdę ważne tytuły korzystające z akceleracji fizyki, mające na nowo zdefiniować pojęcie realizmu w grach.

Mamy drugą połowę roku 2010. Czy rewolucja nastąpiła? W pewnym sensie PhysX osiągnął sukces, ale nie do końca taki, jakiego chciałaby NVIDIA. Nazwę PhysX przeważnie wymienia się w kontekście akceleracji fizyki przy użyciu dodatkowej karty rozszerzeń (PPU) albo karty graficznej GeForce. Ale PhysX to nie tylko to. Przede wszystkim są to rozbudowane i zaawansowane biblioteki umożliwiające twórcom gier łatwe korzystanie z symulacji fizyki w swoich grach. Dzięki nim jest możliwe nadawanie obiektom w grach takich właściwości jak masa czy przeprowadzanie symulacji zderzeń. A wszystkie związane z tym obliczenia wykonuje „staromodny” procesor. W dość krótkim okresie bibliotekom PhysX udało się wyprzedzić weterana tego rynku, czyli biblioteki Havok. W dużej mierze przyczyniła się do tego popularność silnika Unreal Engine 3. Jest to naprawdę duże osiągnięcie. Ale znakomita większość z tych gier nie wykorzystuje ani linijki kodu, który można by wykonać na GPU. Warto o tym pamiętać, ponieważ często ludzie mylą tak zwany GPU PhysX (akcelerację niektórych efektów fizyki z użyciem GPU) z CPU PhysX („zwykłymi” procesorowymi bibliotekami PhysX). Częściowo do tego zamieszania przyczynia się sama NVIDIA, ponieważ często mówi o tym, że PhysX jest super, bo korzysta z niego już ponad 100 gier. Jest to oczywiście prawda, ale przyspieszać niektóre efekty PhysX na GPU umie bardzo niewielka część z nich. W tym momencie z akceleracji na GPU umie korzystać około 15 gier. A jeśli odrzucimy te niedostępne w Polsce (jak Startales) lub te, w które nikt nie gra (Warmonger?), zostaje około 10 tytułów. Nie jest to zbyt pokaźna liczba, więc sukces PhysX jest tylko połowiczny, bo o ile udało się wywalczyć mocną pozycję na rynku bibliotek fizyki, o tyle na rynku akceleracji fizyki nie udało się zdziałać zbyt wiele. Ale NVIDIA nie poddaje się.

Warto tutaj wymienić jeszcze jedno trudne słowo, które bywa wykorzystywane, szczególnie ostatnio, w niezbyt właściwym kontekście. Chodzi o APEX. Czym jest APEX? Jest to zestaw narzędzi ułatwiających twórcom gier implementowanie efektów PhysX w swoich grach. Składa się on z takich modułów, jak: APEX Destruction, APEX Cloth, APEX Turbulence. Dzięki tym narzędziom można szybko i bezboleśnie zaimplementować zaawansowane efekty fizyczne bez napisania ani jednej linijki kodu. To dlatego, że te efekty nie są umieszczane w grze przez programistę, a przez artystów i projektantów. Na przykład projektant poziomów może określić, które elementy środowiska mogą zostać zniszczone, jak będą się zachowywać, jeśli gra będzie miała do dyspozycji zwykły procesor, a co się stanie, jeśli będzie można skorzystać z mocy obliczeniowej GPU. Całą resztą zajmuje się „automatyka”, która generuje odpowiednie modele zniszczeń. NVIDIA wkłada wiele pracy w przygotowanie takich ułatwień przeznaczonych dla twórców gier, ponieważ oczywiste jest, że im łatwiej i – przede wszystkim – taniej projektanci będą mogli implementować efekty PhysX w grach, tym więcej będzie takich gier.

Przyjrzymy się teraz, co obecnie oferuje PhysX, na przykładzie popularnych gier korzystających z akceleracji fizyki na kartach GeForce.

Strona:
GilasZobacz profil
Poziom ostrzeżenia: 0%
Gilas2010.09.10, 14:26
Piękny Art w dobie mojej polemiki z Promilusem na temat fizyki w grach (http://pclab.pl/kom56271--0.html#c412038).
Pozdrawiam wszystkich bez wyjątku, proponuje troszkę ogłady w wyciąganiu pochopnych wniosków i sądów.

AMEN :-)
fajny RafałekZobacz profil
Poziom ostrzeżenia: 0%
fajny Rafałek2010.09.10, 14:39
Wielka szkoda, że PhysX nie ratuje tych gierek przed byciem nudnymi. Może poza UT3, ale tam krytyka się należy, bo jakoś zaprzęgneli do fizyki GeoModa w Red Faction i jakoś to nie ustępowało możliwościami PhysXowi. Czekam na rozwiązanie, które działa wszędzie.

Z fajnych gier z GPU PhysX to jeszcze bym polecał Cell Factor i Crazy Machines II.
SuLac0Zobacz profil
Poziom ostrzeżenia: 0%
SuLac02010.09.10, 14:44
-4#3
nowe physx sdk wprowadza obsluge m.in.SSE2 ogolnie sporo zmian
http://physxinfo.com/news/3744/physx-sdk-2...ystem-software/
btw: gdzie Sacred 2 ????
IgloczekZobacz profil
Poziom ostrzeżenia: 0%
Igloczek2010.09.10, 14:53
12#4
fajny Rafałek @ 2010.09.10 14:39  Post: 412042
Wielka szkoda, że PhysX nie ratuje tych gierek przed byciem nudnymi


Mirror's Edge dobre było!
mirażZobacz profil
Poziom ostrzeżenia: 0%
miraż2010.09.10, 14:56
Mieszko, gratuluję, świetny artykuł!
Bruno@HomeZobacz profil
Poziom ostrzeżenia: 0%
Bruno@Home2010.09.10, 14:56
Gilas @ 2010.09.10 14:26  Post: 412039
Piękny Art w dobie mojej polemiki z Promilusem na temat fizyki w grach (http://pclab.pl/kom56271--0.html#c412038).
Pozdrawiam wszystkich bez wyjątku, proponuje troszkę ogłady w wyciąganiu pochopnych wniosków i sądów.

AMEN :-)


A czytales w ogole caly artykul, bo chyba nie do konca potwierdza prezentowana przez Ciebie opinie? ;-)

cyt:
'Niestety, bardzo nam się nie podoba porównywanie wydajności świetnie zoptymalizowanego i „zwielowątkowionego” kodu wykonywanego na GPU z jednowątkowym i niezoptymalizowanym kodem wykonywanym na CPU. Jest to zabieg czysto marketingowy, który wprowadza w błąd. A bardzo nie lubimy, jak się nas robi w konia.'

'Wszystko wskazuje na to, że znakomitą większość efektów GPU PhysX spotykanych w dzisiejszych grach dałoby się wykonywać na współczesnym wielowątkowym procesorze i zachować przy tym zadowalającą płynność.'
Promilus1984Zobacz profil
Poziom ostrzeżenia: 0%
Promilus19842010.09.10, 14:59
@Bruno - dzięki, widać Gilas nigdy nie nie widział nic poza swoim psiksem na gpu, a potrafi tylko zrzędzić 'bo amd tego nie ma'.
GilasZobacz profil
Poziom ostrzeżenia: 0%
Gilas2010.09.10, 15:04
-1#8
Bruno@Home @ 2010.09.10 14:56  Post: 412050
...


Dość selektywne wybieranie cytatów, ale w tym to już nasz przyzwyczaiłeś, że jesteś mistrzem...

Bruno - nie wiem, czy zauważyłeś, ale raczej nie jesteś tutaj uważany za autorytet. No bo jak możesz być skoro pracujesz dla jednej z firm, o której tu mowa. BTW Twoja firma nie ma tutaj żadnego doświadczenia w tej kwestii, nic ciekawego nie zaprezentowała i nie zapowiada się, żeby w najbliższym czasie to się zmieniło.

@ Promilius - widzę, że u was jak w PiS'ie, kółko wzajemnej adoracji...??? Tylko jedna prawda - moja prawda tak...???
szkoda mi Was, Pozdrawiam.
halflife2004Zobacz profil
Poziom ostrzeżenia: 0%
halflife20042010.09.10, 15:05
-11#9
Dla mnie Batman AA z PhysX oraz w 3d Vision to zupełnie inne doznanie z gry niż bez tego. Gra i tak była chyba najlepszą grą 2009 roku, ale z tymi dodatkami jest po prostu nie do opisania. I teraz kolejne pytanie kto normalny, kto nie chce wydać dużo kupi coś innego niż 460! AMP ? NVIDIA mocno się spóźniła z kartami, ale dla graczy wymagających od razu dała to co trzeba czyli 480 i 470, niestety ATi w tym czasie zakosiło cały rynek low endów które są najczęściej kupowane. Na chwilę obecną jest 460 i tutaj powiedzmy sobie szczerze jest to najlepsza grafika która daje wszystko od DX11 po PhysX do b. dużej wydajności w grach przy cenie bezkonkurencyjnej do reszty.
Chcesz mieć PhysX i najszybszą grafikę w stosunku cena/jakość to kup 460AMP!a :]

PS. to nie była reklama :]
Promilus1984Zobacz profil
Poziom ostrzeżenia: 0%
Promilus19842010.09.10, 15:07
-3#10
@ Promilius - widzę, że u was jak w PiS'ie, kółko wzajemnej adoracji...??? Tylko jedna prawda - moja prawda tak...???

Lepiej się zgadzać z kimś ogarniętym, niż tym niezbyt. Niezależnie dla jakiej firmy pracuje czy w jakiej partii jest. Jeśli w ten sposób podchodzisz do sprawy tj. PiS/AMD bee i srać co gadają to się nie dziwię, że nie potrafisz ogarnąć tego co piszę. Ca wysokie progi dla ciebie.
Zaloguj się, by móc komentować
1