Oprogramowanie

DirectX 10 i Shader Model 4.0

przeczytasz w 3 min.

Minęły cztery lata od wprowadzenia DirectX9 i dwa od zaprezentowania sprzętu zgodnego z Shader Model 3.0. Tak po prawdzie nawet nie posmakowaliśmy jeszcze pełnych możliwości DirectX9c i tej 'kinowej j

Od chwili premiery pierwszych kart graficznych zgodnych ze standardem DirectX 9 i cieniowania 2.0 (Shader Model 2.0) jesteśmy kuszeni obietnicami gier o "kinowej grafice". Już w roku 2002 nVidia w swojej premierowej serii GeForce FX szczyciła się 'potęgą grafiki kinowej jakości'. Co zabawne, hasło to padało również przy okazji kart FX 5200. Podejrzewamy, że żaden z dziesiejszych posiadaczy FX 5200 nie podziela tego optymizmu, jakim trzy lata tryskała nVidia ;)

Nie mniej spektakularne obietnice serwowała nam firma ATi jeszcze za czasów premiery kart Radeon X800 - The future of PC gaming, Hollywood style.

"Kinowa' Ruby w makijażu z ShaderModel 2.0

Mamy tymczasem rok 2006, minęły cztery lata od wprowadzenia DirectX9 i dwa od zaprezentowania sprzętu zgodnego z Shader Model 3.0. Tak po prawdzie nawet nie posmakowaliśmy jeszcze pełnych możliwości DirectX9c i tej 'kinowej jakości grafiki'.

Mimo to przemysł przygotowuje się na nadejście kolejnej odsłony DirectX. Premiera 'dziesiątki' niesie ze sobą olbrzymi potencjał dla graczy, ale także i spore koszty jakie musi ponieść, jeżeli weźmie się pod uwagę maksymalne możliwe wrażenia, które DirectX 10 jest w stanie nam zaoferować.

Krótka historia DirectX

Dawno dawno temu w komputerowym średniowieczu istniało kilka sposobów na osiągnięcie sprzętowej akceleracji grafiki trójwymiarowej. Dwie najbardziej powszechne metody obejmowały OpenGL i Glide 3dfx. Glide wymagał użycia specjalnego sprzętu 3dfx, podczas gdy OpenGL stanowił otwartą platformę obsługiwaną przez społeczność, która działała także pod Linuxem.

Za sprawą Windowsa, Microsoft postanowił skorzystać na nowych multimediach. Opracował zestaw API (interfejsów programowych aplikacji), które pozwalały twórcom oprogramowania i sterowników, odwoływać się do sprzętu i jego konkretnych funkcji. DirectX stał się ogólnym pojęciem, które obejmowało określone składniki takie jak Direct Sound, Direct Input, Direct 3D i inne.

DirectX ewoluował. DirectX 3, DirectX 5 (nie było DirectX 4 od razu przeskoczono na 5), DirectX 6, 7, 8, a teraz 9. Każda wersja oferowała nowy zestaw funkcji i większe możliwości.

DirectX 8 uznawany jest za początek programowalnych shaderów. Zanim nadszedł, wszystkie programowane funkcje były funkcjami ustalonymi, co oznaczało, że twórcy gier mogli korzystać jedynie z efektów 3D, które obsługiwał dany układ graficzny. Na przykład, jeśli układ graficzny (nie nazywamy stało-funkcyjnych procesorów graficznych procesorami GPU, ponieważ nie są one programowalne) nie obsługuje 'dot3 product bump mapping', nie ma możliwości, aby producent wykorzystał w swojej grze taki efekt.

Wszystko zmieniło się za sprawą programowalnych procesorów graficznych. Od tej chwili producenci gier mogli korzystać z dowolnego efektu, który tylko przyszedł im do głowy. Jednakże w pierwszych wersjach DirectX istniały pewne ograniczenia dotyczące liczby stałych, rejestrów i długości programu, który mógł być wykorzystany. DirectX 8 i 8.1 wprowadziły nas w świat GPU, czyli graficznych jednostek przetwarzania i zawierały Shader model 1.1 - 1.4. (tylko DX8.1 miał SM 1.4). Shader Model odnosił się do cech i możliwości programowania API.

dawno dawno temu, podczas premiery kart Radeon 8500, porównywaliśmy różnicę pomiędzy Shader Model 1.3 a 1.4 :)

DirectX 9 usamodzielnił GPU. W chwili wprowadzenia, DirectX 9 zawierał Shader Model 2.0. Stanowił on milowy krok w porównaniu do Shader Model 1.4. Mimo tego, DirectX 9 ma jeszcze większy zapas. Wraz z nim 9.0c nadszedł Shader Model 3.0. Nowsza wersja oznaczała w zasadzie nieograniczone długości programów i możliwości, o których można było dotąd tylko marzyć w przypadku GPU. Jednakże nigdy nie widzieliśmy, aby ten potencjał był w pełni wykorzystany w grach, ze względu na ograniczenia w wydajności sprzętu. API wciąż zapewnia większe możliwości niż sprzęt jest w stanie obsłużyć.

Mimo, że wciąż w DirectX 9 i Shader Model 3.0 pozostawiono zapas funkcji, które można wykorzystać w grach, pora, aby przedstawić kolejną odsłonę oprogramowania, mianowicie...

DirectX 10

W przeciągu ostatnich kilku lat nazywano go w różny sposób, co wywoływało sporo nieporozumień. API był znany jako DirectX Next, Windows Graphics Foundation 1.0 i 2.0, ale także pod przezwiskiem DX10. Teraz, skoro wiemy już co i jak się nazywa, powstaje pytanie gdzie go można dostać?

DirectX 10 będzie dostępny dla użytkowników systemu Windows Vista w momencie jego premiery. Na próżno szukać wersji wypuszczonej dla Windowsa XP. DirectX 10 jest głęboko osadzony w sposobie działania Windowsa Vista i z tego co wiemy Microsoft nie ma planów, które obejmowałyby oficjalną obsługę nowego API przez Windows XP.

W Windows Vista wbudowano także DirectX 9.0L, który ma zapewnić kompatybilność ze składnikami DirectX 9. Należy o nich myśleć jak o dwóch odrębnych systemach. DirectX 9.0L otrzymamy dla sprzętu zgodnego z DirectX 9, a DirectX 10 dla sprzętu kompatybilnego z DirectX 10.
To oznacza, że jeśli chcecie korzystać z DirectX 10, prawdopodobnie będziecie musieli zdecydować się na Windows Vista. Rzecz jasna konieczny będzie sprzęt zgodny z DirectX 10 i oczywiście gry napisane pod jego kątem.

Oczywiste pytanie, które nasuwa się graczom, brzmi: czy ten wyjątkowo drogi i uciążliwy proces 'upgrade'u' dostatecznie wyraźnie poprawi doznania, aby zrównoważyć koszty modernizacji? To niestety dopiero się okaże. Póki co, możemy bazować tylko na istniejących grach. Możemy za to przeanalizować możliwości DirectX 10 oraz zunifikowanej architektury i zastanowić się jak mogą one przysłużyć się graczom.