czwartek, 24 maj 2012
NEXT / Artykuły / NEXT 11/2008 / Artykuły z NEXT 11/2008 / Rewolucja w renderingu

NEXT 11/2008 - Rewolucja w renderingu

Rewolucja w renderingu - ikonka DirectX 11

Data: 21 październik 2008

Microsoft przedstawił pierwsze informacje dotyczące opracowywanych przez swoich inżynierów nowych bibliotek graficznych DirectX 11. Zasadniczo zmienią one sposób renderowania grafiki.

Strona 1 z 2
< Poprzednia 1 2 Następna >
Rewolucja w renderingu - rozkładówka

Najważniejsze zmiany wprowadzone w DirectX 11

  • obsługa sprzętu przez system operacyjny na znacznie niższym poziomie
  • udoskonalenie przetwarzania wielowątkowego
  • nowy, sprzętowo realizowany etap teselacji
  • shader powłoki
  • shader dziedziny
  • udoskonalona kompresja tekstur,
  • nowy model cieniowania – Shader Model 5.0
  • wprowadzenie shaderów obliczeniowych

Zapowiedziane zmiany są na tyle duże, że nowe biblioteki graficzne Microsoftu bez przesady można nazwać kolejną graficzną rewolucją. Najważniejsze modyfikacje dotyczą przetwarzania wielopotokowego oraz wprowadzenia do potoku renderingu trzech nowych etapów, które wymagać będą wprowadzenia w kartach graficznych sprzętowych modułów: shadera powłoki (ang. hull shader), teselatora oraz shadera dziedziny (ang. domain shader).

Marnowany potencjał

Większość współczesnych gier nie jest przystosowana do pracy wielowątkowej na procesorach wielordzeniowych. Dlatego wciąż znacznie ważniejszym parametrem dla wydajności jednostki centralnej w grach jest częstotliwość zegara taktującego procesor oraz zaimplementowane w mikroarchitekturze układu mechanizmy pozwalające na efektywne i jednoczesne przetwarzanie kilku instrukcji należących do jednego wątku (tzw. superskalarność) niż liczba rdzeni znajdujących się w jądrze układu.

Podobnie mają się sprawy z wykorzystywaniem systemów Nvidia SLI i ATI CrossFire (w tym kart z podwójnymi chipami z serii X2). Okazuje się bowiem, że gry również nie korzystają z możliwości jednoczesnego generowania wielu elementów na tej samej scenie przez np. dwa układy. Podziałem obowiązków obliczeniowych zajmują się tutaj co prawda sterowniki, ale sprowadza się to wyłącznie do naprzemiennego generowania na jednej bądź drugiej karcie kolejnych klatek animacji 3D albo liczenia dwóch półobrazów należących do tej samej klatki. Inna stosowana obecnie metoda przyspieszenia obliczeń w systemach z wieloma kartami (ATI CrosFire) polega na podzieleniu klatki sceny 3D na szereg kwadratowych fragmentów i naprzemiennego kalkulowania przez obie karty kolejnych części renderowanej sceny – sterowniki i CPU zajmują się również połączeniem całego obrazu.

Realizacja zadań w DirectX 11

W DirectX 11 wprowadzono dwa typy zadań: do natychmiastowego wykonania i zadania odroczone, które są wykonywane równolegle na pozostałych rdzeniach procesora. Dzięki temu karta graficzna po skończeniu jednej porcji zadań może natychmiast przystąpić do wykonywania następnej, obliczonej równolegle przez drugi z rdzeni procesora.

Naprzemienne obliczenia graficzne prowadzone w opisany powyżej sposób nie są jednak tak wydajne jak mogłyby być, gdyby karty były w stanie podzielić się renderowaniem jednej klatki w taki sposób, że jedna z kart generowałaby jeden z obiektów znajdujących się na danej scenie, a druga w tym czasie drugi – np. jedna odpowiada za drzewa, a druga za postacie na scenie 3D. Jeszcze większe przyspieszenie osiągnąć można, wykorzystując potencjał procesorów wielordzeniowych.

Chodzi tutaj o to, aby np. wszystkie cztery rdzenie zajmowały się w danej chwili jednoczesnym generowaniem grafiki, przy czym wyniki obliczeń jednego z rdzeni są wykonywane przez kartę graficzną natychmiast, zaś rezultaty kalkulacji pozostałych dotyczące tej samej sceny 3D oczekują w kolejce na wprowadzenie ich do przetwarzania przez układ graficzny natychmiast po skończeniu operacji zadanych przez pierwszy rdzeń. W ten sposób karta graficzna nie ma przestojów związanych z oczekiwaniem na dane, a rdzenie procesorów w stu procentach wykorzystane są w procesie generowania grafiki, dzieląc się z wyprzedzeniem graficznymi zadaniami do wykonania.

Przetwarzanie wielopotokowe

Biblioteki graficzne DirectX 11 przewidziane zostały właśnie do wspomagania opisanego powyżej sposobu przetwarzania wielopotokowego i to zarówno w wypadku procesorów wielordzeniowych, jak i systemów z dwoma lub trzema układami graficznymi. W swoich założeniach twórcy DX 11 postanowili bowiem od początku postawić największy nacisk na maksymalne wykorzystanie możliwości obliczeniowych związanych z wielowątkowym generowaniem grafiki przez sprzęt znajdujący się obecnie na rynku oraz ten, który pojawi się w najbliższej przyszłości. Wprowadzone w DX 11 ulepszenia dotyczące wielowątkowości pojawiły się zarówno w warstwie sterowników, jak i samego graficznego API (ang. Application Programming Interface).

Dzięki nim programiści będą w stanie dość łatwo zapanować nad przydzielanymi dla karty graficznej zadaniami w systemach z procesorami wielordzeniowymi, w których poszczególne wątki programu są wykonywane niezależnie na kilku jądrach CPU.

Najważniejszą wprowadzoną w tym celu zmianą w stosunku do DirectX 10 i 10.1 jest możliwość wywoływania w DX 11 funkcji graficznego API przydzielających zasoby sprzętowe przez wielowątkowy program w sposób asynchroniczny, a więc bez bezczynnego oczekiwania na odpowiedź lub wykonanie zadania – w tym czasie, tzn. zanim nadejdzie odpowiedź, wielowątkowy program może swobodnie zarezerwować kolejne potrzebne mu zasoby.

Kolejną istotną modyfikacją jest wprowadzenie rozróżnienia dwóch typów zadań. Pierwsze z nich przeznaczone są do natychmiastowego wykonania, drugie są zadaniami odroczonymi, które mogą być wykonane przez procesor graficzny później, po wykonaniu zadań natychmiastowych, niemniej przez CPU są one realizowane od razu np. na drugim rdzeniu. Gdy tylko układ graficzny przestanie przetwarzać pierwszy z wątków, wówczas zaczyna realizować kolejny, ten, który przed chwilą obliczył drugi rdzeń procesora – jest to dokładnie realizacja opisanego przed chwilą postulatu umożliwiającego maksymalne wykorzystanie mocy obliczeniowej wielordzeniowego procesora.


Ocena: +++++    (aby ocenić, musisz się zalogować w serwisie)

< Poprzednia 1 2 Następna >

Podobne artykuły:

Komentarze:

Redakcja nie ponosi odpowiedzialności za treść komentarzy.
Nikt jeszcze nie skomentował.
Niezalogowany

Aby mieć dostęp do niektórych części serwisu NEXT (np. forum dyskusyjnego, oceny numeru, newslettera), musisz posiadać konto w naszym serwisie. Zachęcamy do darmowej rejestracji!

Jeżeli posiadasz już konto w serwisie, to zaloguj się.