artykuły

PhysX by NVIDIA – analiza techniki i testy praktyczne

Physikoterapia

183
10 września 2010, 14:20 Mieszko Krzykowski

Batman: Arkham Asylum

Batman: Arkham Asylum to jeden z głośniejszych tytułów ubiegłego roku i jeden z czołowych przedstawicieli gier wykorzystujących GPU PhysX. Lista PhysX-owych dodatków nie jest nadzwyczajna, ale ich jakość i sposób wkomponowania w grę jest ponadprzeciętny. Grę można uruchomić z dwoma poziomami jakości efektów GPU PhysX.

  • Symulacja tkanin. W różnych miejscach są porozwieszane flagi i transparenty, które falują na wietrze i które można podrzeć czy przedziurawić (ale nie wszystkie). Występują tylko wtedy, gdy włączy się najwyższą jakość efektów PhysX.
  • Pajęczyny. W różnych strategicznych miejscach gry (głównie w kanałach wentylacyjnych i jaskiniach) znajdują się pajęczyny, które są dość specyficznymi tkaninami. Są rozciągliwe, prawie niezniszczalne i wkurzające. Ot, jak prawdziwe pajęczyny, tyle że trochę większe niż zwykle.
  • Dające się zniszczyć elementy środowiska. Kafelki pokrywające niektóre ściany i podłogi da się zniszczyć wybuchem lub... upadającym ciałem przeciwnika.
  • Symulacja pary/dymu/mgły. W różnych momentach gry napotykamy na swojej drodze kłęby dymu, które reagują na postacie lub wchodzą w interakcję z otoczeniem. Bez włączonych dodatkowych efektów PhysX wszystkie te kłęby całkowicie znikają.
  • Duże ilości latającego papieru. Fabuła gry prowadzi nas do miejsc, gdzie były trzymane różnego rodzaju kartoteki i zapiski z badań. Dzięki GPU PhysX w tych miejscach na ziemi wala się sporo luźnych kartek papieru, które można kopnąć lub... wysadzić w powietrze. W niektórych momentach gry te latające papiery są wykorzystywane w sposób bardzo fajnie podkreślający klimat.
  • Duże ilości latającego gruzu. Tego nie ma jak opisać, to trzeba zobaczyć!

Jak już wspomnieliśmy, efekty w tej grze same w sobie nie zachwycają, nie są ani nadzwyczajne, ani nowatorskie. To, co je wyróżnia, to ich jakość i naturalność implementacji. Szczególnie spotkania ze Scarecrowem robią spore wrażenie i bez PhysX-a ma się wrażenie, że to tylko wersja demonstracyjna gry.


PhysX wył. CPU PhysX
GPU PhysX
Obciążenie procesora 34%
35%
45%

Powyższa tabelka wymaga krótkiego wyjaśnienia. We wszystkich testowanych grach sprawdzaliśmy, ile wynosi średnie użycie procesora, gdy na ekranie jest wyświetlana spora liczba PhysX-owych efektów. W maszynie testowej był zamontowany procesor czterordzeniowy (Phenom II X4 965), więc każde 25% obciążenia procesora odpowiada 100% obciążenia pojedynczego rdzenia. Na dalszych stronach nie będziemy komentować wyników w poszczególnych grach; zajmiemy się tym trochę dalej, w podsumowaniu, ponieważ wyniki okazały się bardzo powtarzalne.

Testy wydajności

Aby wykorzystać kartę graficzną do tego, by przyspieszała symulacje fizyki, można zrobić dwie rzeczy: albo mając jedną kartę graficzną, zmusić ją do jednoczesnego wykonywania obliczeń związanych z grafiką i fizyką, albo włożyć do komputera drugą kartę, która będzie się zajmowała tylko fizyką. Postanowiliśmy sprawdzić, jak to działa w praktyce, czyli jakiej karty potrzeba, aby skorzystać z pierwszego sposobu, a czego użyć jako akceleratora fizyki.

Ponieważ zjawiska fizyczne często mają charakter bardzo losowy i przez to problemem byłoby stworzenie warunków, dzięki którym moglibyśmy uzyskać powtarzalne wyniki obarczone małym błędem pomiarowym (nie wspominając o tym, że coraz trudniej o grę pozwalającą na zapisywanie stanu gry w dowolnym momencie...), w niektórych sytuacjach wyjątkowo postanowiliśmy skorzystać z wbudowanych benchmarków. Często niezbyt się one nadają do porównywania kart różnych producentów, ale w testach wydajności PhysX-a okazały się dość reprezentatywne.

W tym przypadku użyliśmy wbudowanego testu. Jest on tak zaprojektowany, aby pokazać jak najwięcej PhysX-a, przez co wynik przedstawia najgorszy możliwy przypadek w grze. Krótko mówiąc, niższej wydajności niż w tym teście nie doświadczycie.

Jeszcze mała legenda. Ciemnozielone słupki opisane pogrubioną czcionką oznaczają wynik uzyskany przy wyłączonych efektach PhysX, czyli dana karta graficzna zajmowała się wyłącznie renderowaniem grafiki. Bladozielone słupki dotyczą sytuacji, gdy pojedyncza karta graficzna zajmuje się zarówno obliczeniami związanymi z grafiką, jak i fizyką. Trzeci, najbardziej jaskrawy odcień zieleni wypełnia słupki demonstrujące wydajność, gdy grafiką zajmował się geforce GTX 480, a wymieniona przy słupku karta zajmowała się tylko fizyką.

Z wykresów wynika, że kto nie chce korzystać z dodatkowej karty pełniącej rolę akceleratora fizyki, ten musi się liczyć z około dwukrotnym spadkiem liczby klatek na sekundę. W przypadku Batmana karta pokroju GeForce'a GTX 460 radzi sobie z grafiką i fizyką całkiem nieźle i da się grać. Z drugiej strony wystarczy dorzucić słabiutkiego 8600 GT, aby mieć większą płynność animacji niż w przypadku osamotnionego GTX-a 460. Warto jeszcze zwrócić uwagę na wyniki samotnego GTX-a 280 i GTX-a 460 przed włączeniem PhysX-a i po.

3