artykuły

GeForce 8800 GTX i 8800 GTS - nadchodzi era kart graficznych DirectX 10

365 10 listopada 2006, 01:53 S. Stolarczyk, R. Sobkowski

DirectX 10 - co nowego?

GeForce 8800 to pierwszy układ graficzny, który sprzętowo obsługuje DirectX 10. Nowy interfejs Microsoftu wprowadza kilka istotnych usprawnień, o których krótko powiemy. Pakiet w jeszcze większym stopniu od swojego poprzednika zwiększa możliwości programisty, dzięki wprowadzeniu Shader Model 4.0 i Geometry Shader. Ewolucję modeli cieniowania doskonale oddaje poniższa tabela, zawierająca m.in. dopuszczalną liczbę instrukcji różnych typów.

Jak już wspomnieliśmy, w DirectX 10 pojawia się nowe pojęcie - Geometry Shader. W potoku danych znajduje się pomiędzy jednostką vertex shader a jednostką rastrującą i pixel shaderem. Możliwości Geometry Shader stanowią doskonałe uzupełnienie funkcjonalności dotychczasowych jednostek - jednostka potrafi przeprowadzać operacje łączenia wierzchołków, symulacje fizyczne (np. poruszające się włosy), tworzyć paski trójkątów i linii, czy automatycznie generować cienie szablonowe. Wracając na moment do techniki generowania włosów, dzięki shaderowi geometrii algorytmy odpowiedzialne za ten element zyskały znacznie większe możliwości - GPU może teraz zapisywać pocięte na wielokąty fragmenty owłosienia do pamięci i przeprowadzać symulacje fizyczne na ich punktach kontrolnych (wcześniej te operacje wykonywał procesor główny). Znacznie zwiększają się również możliwości w zakresie tworzenia cieni. Układ graficzny ma możliwość animowania postaci oraz zapisywania do lokalnej pamięci animacji geometrycznych. W przypadku G7x za te funkcje również odpowiedzialny był CPU.

Niezwykle istotną zmianą jest dodanie fazy Stream Out, czyli zapisu do pamięci zaledwie w połowie procesu przetwarzania grafiki 3D - tuż po wstępnej obróbce danych przez mechanizmy vertex- i geometry shader. Dzięki temu otrzymano możliwość przechowywania wynikowych danych pracy wspomnianych jednostek w buforze pamięci, co z kolei umożliwia przeprowadzanie wieloprzebiegowych operacji na danych geometrycznych. Jedną z nowych możliwości jest Instancing 2.0. Technika ma umożliwić układowi graficznemu wielokrotne powtarzanie tych samych obiektów (geometrycznych, sekwencji animacji, tekstur). W swojej pierwszej wersji zadebiutowała wraz z DirectX 9.0c. Pierwszym tytułem, który wykorzystywał tę technikę był Far Cry (wraz z łatką 1.3). W Far Cry wykorzystano Instancing do powielenia odległych elementów krajobrazu - np. drzew. Obecnie każda instancja ma swoje atrybuty "stanu" - kolor, shader, teksturę.

NVIDIA podeszła do DirectX 10 przedstawiając układ posiadający zunifikowaną architekturę. W przypadku G80 nie mamy zatem do czynienia z GPU wyposażonym we wszystkie jednostki, które składają się na potok renderowania DX10 - zamiast tego mamy wiele jednostek ogólnego przeznaczenia (SP). Jak można się więc domyśleć, jednolite shadery nie są wymagane przez Microsoft do uzyskania zgodności z Shader Model 4.0 - do tego wystarczy tradycyjny zestaw specjalizowanych modułów pixel-, vertex- i geometry shader. Oczywiście każda z tych jednostek musi być odpowiednio zmodernizowana, aby obsługiwała wszystkie nowe instrukcje SM 4.0.

4