poniedziałek, 8 lutego 2010

Akceleratory fizyki w wizualizacjach 3D

Już za czasów DirectX 7 w grach obserwowałem z radością pierwsze efekty dynamiki obiektów, które były oparte o obliczenia odwzorowujące oddziaływanie grawitacji, wzajemnych odbić obiektów, czy efekt mgły.
Kolejne wersje DirectX i OpenGL przyciągnęły uwagę deweloperów nowych gier i powstała potrzeba zapewnienia mocy obliczeniowej niezbędnej do symulacji zjawisk fizycznych dla wirtualnych obiektów w wielkiej liczbie i złożonych zależnościach. Rynek wciąż szuka najlepszego sposobu na wykonywanie tego typu obliczeń:
- procesory główne otrzymują nowe zestawy rozkazów, więcej jednostek wykonawczych, więcej rdzeni
- karty graficzne uzyskały zunifikowaną architekturę układów obliczeniowych
- pojawiły się (i zniknęły) dedykowane karty wspomagające obliczenia fizyczne
Największe nadzieje wiążę obecnie z OpenCL (zestandaryzowana i otwarta wersja CUDA czy też DirectCompute), jednak minie jeszcze parę lat nim dopracujemy się skutecznych sposobów wykorzystania tego API w każdym komputerze.
Tymczasem już teraz każda karta graficzna nVidia jest w stanie pracować jako akcelerator obliczeń fizycznych (Physics Processing Unit), udostępniając odpowiednio przygotowanym grom PhysX API do wykorzystania.
Firma E-VGA zaprezentowała właśnie kartę graficzną - EVGA GeForce GTX 275 CO-OP PhysX Edition - posiadającą dwa układy, które nie działają w zintegrowanym trybie SLI, ale właśnie stanowią tandem GPU + PPU. Rozwiązanie faktycznie działa fantastycznie w grach takich jak Batman: Arkham Asylum. Jednak z uwagi na cenę, wysoki pobór prądu i głośność zastosowanie tego rozwiązania to "Pyrrusowe" zwycięstwo.

Stąd też proponuję połączyć koncepcję przełączania pomiędzy zintegrowanym układem graficznym a dyskretnym (np. nVidia Optimus) z używaniem zintegrowanego układu jako akceleratora PPU równolegle z dyskretnym GPU. Dzięki nowemu modelowi sterowników grafiki w MS Windows Vista/7 jest to już możliwe.
Niestety ograniczenia patentowe i licencyjne, powstałe w wyniku przejęcia Ageia przez nVidia wyeliminowały AMD/ATI z rynku akceleratorów PPU, zgodnych z PhysX API. Na polu PPU bardzo przydałoby nam się trochę konkurencji.

Wprowadzenie proponowanego przeze mnie modelu użycia do komputerów stacjonarnych dla graczy przyniosłoby istotne oszczędności energii czy hałasu (w 2D pracujemy tylko na IGP) oraz dodatkowe korzyści w zakresie akceleracji PPU na IGP przy wizualizacjach 3D.
Czekam z niecierpliwością na implementację i pierwsze wyniki testów...

Brak komentarzy:

Prześlij komentarz