Słowem wstępu...
Wraz z najnowszym systemem operacyjnym Microsoft Windows Vista zadebiutowała
kolejna odsłona DirectX 10. Jest to swego rodzaju interfejs API, pośredniczący
między sprzętem, a aplikacją i stanowi środowisko dla uruchamianych programów.
DirectX jest zbiorem bibliotek odpowiadających za obsługę grafiki 2D i 3D, ale
także dźwięku oraz za połączenia sieciowe. W tym
artykule jednakże postaramy się przybliżyć
Direct3D, czyli moduł obsługujący grafikę w grach komputerowych, a zmiany są
doprawdy rewolucyjne!
DirectX 10 jest składnikiem Windows Vista i Microsoft nie planuje
wprowadzić go na starsze platformy operacyjne. Cóż to oznacza dla użytkowników? Mianowicie to,
iż jeśli komputer jest przez nas wykorzystywany do celów rozrywkowych (np. gry),
to przesiadka do Windows Vista, prędzej czy później, nas nie ominie, jeśli
będziemy chcieli skorzystać z dobrodziejstw dziesiątej wersji DirectX. W Windows
Vista znajduje się także biblioteki w wersji dziewiątej z dodatkowym oznaczeniem L
(od nazwy kodowej systemu, czyli Longhorn). Rozwiązanie takie zastosowano, gdyż
nowe API nie jest
kompatybilne wstecz. DirectX 10 został praktycznie napisany od nowa, w celu
zniesienia ograniczeń związanych z poprzednimi generacjami, stąd też wynika
brak zgodności.

Najważniejsze zmiany w DirectX 10
- Przyspieszone przetwarzanie grafiki 3D
- Nowy model cieniowania (Shader Model 4.0)
- Obsługa zunifikowanych jednostek cieniowania
- Ulepszona technologia HDR
- Zwiększona liczba obiektów w scenie trójwymiarowej
- Brak zgodności z poprzednimi wersjami bibliotek
- Wprowadzenie nowych typów danych, dzięki którym dokładniej można
odwzorować rzeczywiste obiekty
- Lepsze wykorzystanie mocy procesora graficznego (GPU), przy jednocześnie
mniejszym zużyciu CPU
Shader Model 4.0
Nowy model cieniowania, który został wprowadzony wraz z DirectX 10, otrzymał
oznaczenie 4. Shader Model jest zbiorem instrukcji i poleceń, które odpowiadają za
przetwarzanie cieni, obiektów oraz tekstur poprzez jednostki pixel i vertex,
które znajdują się w GPU karty graficznej. Do tej pory DirectX 8 oraz 9
zakładały istnienie obu tych jednostek i był widoczny rozdział pomiędzy nimi.
Kupując nowy akcelerator 3D, mogliśmy się dowiedzieć, iż dysponuje on określoną
ilością jednych i drugich. Dochodziło jednakże wtedy do pewnego
niewykorzystywania w pełni mocy karty, gdyż jedne gry bardziej obciążały pixel
shader, a inne znowu vertex shader, przez co po prostu część procesora
graficznego się marnowała. Wraz z wprowadzeniem Shader Model 4.0 ma się to
diametralnie zmienić poprzez wprowadzenie jednostek zunifikowanych, czyli po
prostu shaderów, które odpowiednio, zależnie od potrzeby, mogą być zarówno
jednostkami pikseli, jak i wierzchołków. Jeśli gra wymaga więcej mocy do
stworzenia struktury za pomocą vertex shader, to zostają one automatycznie
przydzielone do tego zadania. Dzięki takiemu rozwiązaniu znacznie wzrośnie
szybkość przetwarzanych scen 3D. Poszerzeniu także uległa maksymalna ilość
instrukcji, jakie mogą zostać wykonane, obecnie wynosi ona 64000. Kontrola przepływu operacji vertex i pixel shader
odbywa się teraz wyłącznie dynamicznie. Także wielkość tekstury wzrosła szesnastokrotnie.
Te rozwiązania pozwolą na dokładniejsze odwzorowywanie rzeczywistych obiektów.
Zmniejszono zużycie CPU, przerzucając większość operacji związanych z kreowaniem
sceny na rdzeń graficzny, przez co jednostka centralna komputera może w tym
czasie zająć się innymi obliczeniami. Dzięki takiemu rozwiązaniu gry powinny
działać szybciej. Dodanie nowych klas obiektów umożliwia bardziej dokładne i
szczegółowe tworzenie wirtualnego świata. Poniższa tabela przedstawia porównanie Shader Model w wersji 4.0 w stosunku do
3.0.