2009-10-02 13:43
Autor: Sebastian Wiśniewski (NetCop)
45

Gry z PhysX - Tylko dla GeForce

Strona 1 - Wstęp

Wstęp


PhysX, to jedno z haseł marketingowych, obok CUDA, wykorzystywanych do promowania kart marki GeForce. Zapewne większość naszych czytelników wie, że za hasłem tym kryje się obliczanie fizyki na kartach graficznych NVIDII. Minęło już dobre półtora roku od czasu kiedy PhysX zaczął być kojarzony z NVIDIĄ i GeForce'm. Powstało też kilka gier promujących PhysX, między innymi Mirror's Edge, Sacred 2, Cryostasis czy też świeżutki Batman Arkham Asylum i właśnie nim przyjrzałem się bliżej, pod kątem wydajności przetwarzania fizyki przez karty GeForce. Do testów zaprzęgnąłem modele GeForce GTX 295, GTX 285, GTX 275, GTX 260, GTS 250 i 9800GT, a także weterana akceleracji fizyki, dedykowaną kartę AGEIA PhysX. Żeby było ciekawiej utworzyłem też zestaw tandemów kart składających się z karty renderującej (tej silniejszej) oraz karty dedykowanej do PhysX (tej słabszej). Oto przed Wami efekt kilku tygodni pracy.

O PhysX


PhysX to zbiór bibliotek programistycznych nazywanych zwyczajowo silnikiem fizyki lub silnikiem fizycznym. Silnik ten dba o odwzorowanie zjawisk fizycznych w grach poprzez serię skomplikowanych, równoległych obliczeń matematycznych i logicznych. Jego efektem jest nadawanie masy, prędkości i przyspieszenia obiektom występującym w grze i ich realistycznej interakcji z otoczeniem. Odwzorowywane jest na przykład realistyczne zachowanie cieczy, mgły czy ognia. Interakcja i detekcja zderzeń różnych obiektów uwzględniająca efekty grawitacji, tarcia czy wiatru. Mamy też odwzorowywanie zachowania tkanin powiewających na wietrze, realistycznie się rozdzierających czy też efekty rozbijania różnych materiałów na drobniejsze części np. szkła, drewna, betonu. To wszystko i jeszcze więcej wpływa na lepsze doznania z gier ale też wymaga odpowiedniej mocy obliczeniowej.

Historia PhysX


Nazwą PhysX pierwotnie określano kartę rozszerzeń na której znajdował się procesor PPU (Physics Processing Unit) dedykowany tylko do obliczeń efektów fizycznych w grach. Procesor ten wykorzystywał silnik fizyki NovodeX. Z czasem mianem PhysX zaczęto określać zarówno kartę PPU jak i silnik fizyki. Właścicielem PhysX była firma AGEIA jednak w lutym 2008 roku została ona przejęta przez NVIDIĘ. Od tego momentu NVIDIA rozpoczęła prace nad zaimplementowaniem obliczeń silnika fizyki poprzez karty graficzne GeForce zgodne z GPGPU CUDA. Prace te doprowadziły do zastąpienia dedykowanej karty rozszerzeń PPU przez karty graficzne GeForce 8 i nowsze. Jednocześnie NVIDIA udostępniła PhysX w wersji binarnej bez opłat dla wszystkich zainteresowanych jego wykorzystaniem (dla platform PC, Xbox360, Playstation 3 oraz Wii). Kod źródłowy jest jednak płatny.

Co i jak testujemy ?


W niniejszym artykule skupiłem się wyłącznie na pokazaniu jak silnik fizyki PhysX zachowuje się na różnych kartach graficznych. Sprawdzałem zarówno samodzielnie działające karty, które renderowały grafikę i wykonywały obliczenia PhysX, a także w tandemach z dodatkową kartą GeForce służącą wyłącznie obliczeniom fizyki. Dodatkowo, udało się zdobyć kartę AGEIA z procesorem PPU, która także została wykorzystana w testach, za co chciałbym podziękować naszemu czytelnikowi qjakowi.
Dodatkowo pokażę też co się dzieje, gdy obliczeniami zajmował się tylko procesor CPU i jak był on wykorzystywany. W testach nie znajdziecie kart z serii ATI Radeon, gdyż nie obsługują one PhysX, a w takim przypadku zajmuje się tym procesor, więc uprzedzając testy, efekty byłyby identyczne jak w przypadku kart GeForce z CPU (na wykresach wyniki te będą oznaczone kolorem czerwonym). Planowane było wykonanie testów na kartach Radeon w połączeniu z kartami GeForce służącymi do obliczania fizyki (teoretycznie jest taka możliwość w systemie Windows XP i Windows 7) jednak NVIDIA postanowiła zablokować taki tandem, co wywołało sporo kontrowersji. W efekcie posiadaczom kart ATI Radeon pozostaje wyłączenie efektów PhysX ale to już nie jest przedmiotem tego artykułu.

Strona 1 z 7 12345...7>>>