DirectX 10 - z czym to się je?

Dostosuj

DirectX 10 - z czym to się je?

DirectX jest czymś o czym przeciętny gracz właściwie nie ma większego pojęcia. Kupując grę praktycznie zawsze mamy dodaną na płytce najnowszą wersje DirectX, która po prostu bezmyślnie instalujemy. Artykuł ten ma na celu przybliżenie wszystkim, również laikom, wiedzy na temat DirectX 10, zwanym też D3DX10. Dlaczego jest on tak ważny, nie bójmy się napisać rewolucyjny i co on takiego daj nam, czyli graczom. DirectX 10 nie jest po prostu kolejną wersją i nie da się jej od tak po prostu zainstalować. No to do dzieła. Każdy z was na pewno słyszał o DirectX 10, który jest dostępny tylko z systemem operacyjnym Windows Vista.

I pewnie na samym słyszeniu o DirectX 10 wasza wiedza się zakończyła. Wielu z was zapewne zastanawia się dlaczego Microsoft nie wypuści DirectX 10 np. dla Windowsa XP, ale o tym później. Na razie zajmijmy się zagadnieniem czym tak właściwie jest ten DirectX.

Jeszcze nie tak dawno temu, kiedy to obsługa grafiki 3D dopiero uczyła się chodzić, a jedynymi sposobami na jej wyświetlanie był OpenGL i Glide 3dfx, firma Microsoft postanowiła wykorzystać to całe zamieszanie. Wraz z nowym Windowsem 95 wprowadzili oni coś co nosiło dumna nazwę Windows API, czyli interfejsu programu użytkownika. Była to pewnego rodzaju rewolucja, która za zadanie miała ułatwić programistom pracę. Nie musieli oni już odwoływać się bezpośrednio do sterowników danego urządzenia, ale mogli to robić poprzez specjalne funkcje i procedury API. W skład WinAPI wchodzi właśnie coś, co nazywamy DirectX. DirectX to po prostu zbiór funkcji WinAPI odpowiedzialnych ze generowanie grafiki 2D/3D, dźwięku oraz innych rzeczy związanych z grami i aplikacjami multimedialnymi. Obecny DirectX składa się z:

  • DirectX Graphics:
    • DirectDraw (obsługuję grafikę bitmapową)
    • Direct3D (obsługuję grafikę 3D)
  • DirectInput (przetwarza dane pochodzące z klawiatury, myszki i innych kontrolerów)
  • DirectPlay (wykorzystywany w grach sieciowych)
  • DirectSound (służy do odtwarzania i nagrywania dźwięku)
  • DirectMusic
  • DirectShow (służy do odtwarzania plików audio i wideo)
  • DirectSetup (obsługuje instalację poszczególnych komponentów DirectX)
  • DirectX Media Objects (spełnia podobne zadania, jak DirectShow)

DirecX z biegiem lat ewoluował i powoli stawał się coraz lepszy. DirectX 3, DirectX 5, DirectX 6, DirectX 7, DirectX 8. Każdy nowy DirectX wnosił ze sobą nowe możliwości. Zatrzymajmy się jednak na DirectX 8, bo właśnie ten DirectX zapoczątkował erę programowalnych shaderów. Shaderów czyli krótkich programów pisanych w specjalnym języku (shader language), które w grafice 3D odpowiadają za cieniowanie obiektów. Dzięki takiemu rozwiązaniu możliwe było modelowanie bardziej skomplikowanego oświetlenia, a co za tym idzie, gry stawały się coraz bardziej rzeczywiste. Wymusiło to stworzenie przez producentów kart graficznych nowego procesora graficznego, który mógł być programowalny. Pojawiła się era GPU. Poprzednie procesory graficzne miały ograniczoną liczbę stanów, czyli programiści mogli pisać jedynie takie efekty 3D, które obsługiwał dany układ graficzny. GPU znosiło te ograniczenia i programiści mogli tworzyć prawie dowolne efekty 3D. Nie myślmy sobie jednak, że DX 8 był aż tak fantastyczny. Niestety, również on miał pewne ograniczenia związane z liczbą stałych, rejestrów czy też długości programu, który miał być wykorzystany jako pewien efekt.

Dopiero DirectX 9 pozwolił na pełniejsze wykorzystanie GPU i całkowicie go usamodzielnił. DX 9 wyposażony był w Shader Model 2.0 co było ogromnym krokiem naprzód w stosunku do DirectX 8 i 8.1, które obsługiwały Shader Model od 1.1 do 1.4. Możliwe stało się załamywanie światła, dynamiczne oświetlanie obiektów, odbicia lustrzane, zmiana kolorów, rozmycie, mapy przemieszczeń itd. To jeszcze nie wszystko co oferował DirectX 9, gdyż pojawiła się jego nowsza wersja, czyli DirectX 9c wraz z Shader Model 3.0, która oferowała niemal nieograniczone długości programów i możliwości jakich nigdy wcześniej programiści GPU nie byli sobie w stanie nawet wyobrazić. Niestety jak to w życiu bywa, sprzęt cały czas stanowi pewne ograniczenie i tym razem jest tak samo. API daje więcej niż sprzęt potrafi obsłużyć.

Jeden obraz wyraża więcej niż tysiące słów


DirectX 9 (Halo: Combat Evolved)


DirectX 10 (Crysis)


Po wstępie i krótkiej lekcji historii dotarliśmy wreszcie do miejsca, w którym wypadałoby napisać w końcu coś o DirectX 10. Jak już wcześniej wspomniałem D3DX10 nie jest po prostu kolejną wersją DirectX. Microsoft zbudował go całkowicie od podstaw.


DirectX 9 (Microsoft Flight Simulator X)


DirectX 10 (Microsoft Flight Simulator X)


DirectX 10 został zaprojektowany tak by w jak najlepszym stopniu wspomagał wymianę danych pomiędzy procesorem umieszczonym na płycie głównej komputera (CPU), a procesorem umieszczonym na karcie graficznej (GPU). W DirectX 9c jak i w poprzednich jego wersjach najbardziej negatywnym zjawiskiem był tzw. narzut obiektów API, które zajmowały duże części cyklu CPU. Co to znaczy? Aplikacja odwołuje się najpierw do API, API następnie do sterowników, a dopiero na samym końcu do procesora graficznego GPU. Wszystkie te czynności wykonywane są za pośrednictwem procesora centralnego (CPU) marnując tym samym jego cykle, a co za tym idzie spowalniając cały proces. DirectX 10 zmniejsza ilość nagłówków API o 50%, co jest wybawieniem dla producentów gier, którzy wcześniej byli bardzo ograniczeni przez ten proces. Jak to się przekłada dla nas użytkowników? A przekłada się bardzo dobrze, gdyż wolne cykle CPU można wykorzystać do obsługi sztucznej inteligencji (AI) lub fizyki, zwiększając tym samym jeszcze bardziej stopień realności gier i animacji.



DirectX 10 (World in Conflict)


W chwili obecnej twórcy gier muszą uważać by nie przekroczyć pewnej liczby obiektów, która może być w danym czasie wyświetlona na ekranie. Możliwości sprzętowe dla DX9c pozwalały na ok. 500 takich obiektów w danej chwili. Obiektem może być wszystko, drzewo, krzak, kamień. Wiąże się to z tym, że gry stają się przez to mniej realistyczne, np. lasy w obecnych grach to po prostu jedno drzewo skopiowane N-razy posiadające tylko inną liczbę liści i ewentualnie nieco inny kolor. DirectX 10 znosi takie ograniczenia, pozwala on na stworzenie prawdziwego matrixowego lasu, w którym każde drzewo może być inne. To jeszcze nie wszystko, DX10 pozwala na zmianę istniejącego otoczenia np. poprzez wegetację roślin w miarę upływu czasu gry. DirectX 9 ani jego poprzednie wersje nie oferowały takich możliwości.







Teraz będzie trochę bardziej skomplikowanie, bo technicznie. Jednak żeby nie było krzywienia się, ostrzegałem o tym wcześniej. Kolejną ciekawą rzeczą związana z DirectX 10 jest nowa faza w przetwarzaniu potokowym shaderów, mowa o Pixel Shader (programowalna jednostka odpowiedzialna za wyliczanie koloru pikseli) i Vertex Shader (jednostka odpowiadająca za wyliczenie wierzchołków wielokątów w przestrzeni). Pomiędzy te dwie jednostki została jeszcze wpakowana jedna, a mianowicie Geometry Shader. Ma ona za zadanie brać trójkąty z Vertex Shadera, traktować je jako obiekty oraz kontrolować ich wierzchołki. Może je również rozbijać na mniejsze wygładzając tym samym jeszcze bardziej krawędzie. Następnie podstawowe dane mają zostać przekazane do Pixel Shadera, który już odpowiednio się nimi zajmie i wytworzy pożądany efekt. To właśnie Geometry Shader odpowiada za cześć fizyczną. Dzięki niemu rośliny mogą rosnąć, woda wygląda bardziej realistycznie, twarze mają doskonała mimikę, a włosy falują na wietrze. Wcześniej za wszystkie te funkcje odpowiedzialny był CPU, a dzięki DX10 zostanie on bardziej odciążony, przez co będzie mógł zajmować się naprawdę ważnymi funkcjami. To jeszcze nie wszystko co nam oferuje D3DX10. Owe jednostki Pixel Shader, Geometry Shader jak i Vertex Shader zostały połączone w jedną całość o nazwie Shader Unit. Dzięki takiemu rozwiązaniu API obsługuje wszystkie te jednostki w ciągu jednej fazy GPU, zamiast kilku jak działo się to do tej pory.


DirectX 10 (Crysis)


Stream Output to nowa funkcja w DirectX 10, która pozwala na to aby dane wygenerowane przez Geometry Shader lub Vertex Shader były przesłane prosto do pamięci, a następnie wczytane na początek potoku renderującego i ponownie przetwarzane. Ma to bardzo ważne znaczenie dla przetwarzania geometrii, zaawansowanych obliczeń świetlnych oraz symulacji fizyki przez GPU.
in4.pl

Wszystko ładnie pięknie, ale …
A no właśnie jak coś jest piękne to i musi kosztować. I kosztuje, nawet nie mało. Żeby móc w pełni cieszyć się z możliwości DirectX10 musimy posiadać 3 rzeczy:
  • Windowsa Vistę
  • kartę graficzną z obsługą D3DX10
  • grę, która korzysta z DirectX 10

Wielu z was zapewne zastanawia się dlaczego DirectX 10 będzie dostępny tylko na platformie Windows Vista. Wszystko przez WDDM (Windows Display Driver Model), czyli nowy sterownik graficzny obsługujący systemy wysokiej rozdzielczości, który jest zamontowany w systemie Windows Vista i który ściśle współpracuje z DirectX 10. Tak więc na próżno czekać na DirectX 10 pod Windows XP, bo takich prac gigant z Redmond nawet nie prowadzi i prowadzić nie zamierza. I nie chodzi pewnie o to, że wymagałoby to dużo pracy ale o to, że wprowadzili oni w tej chwili nowy system operacyjny i to on się ma sprzedawać, a nie jego poprzednik. Zawsze chodzi o pieniądze.

No dobra ale ja już mam Vistę i mam D3DX10, to w co mogę pograć? Tytułów jak na razie bardzo niewiele, ale zawsze coś. Oto niektóre z nich:

Na totalną zmianę będziemy musieli jeszcze trochę poczekać. Nie każdego przecież stać na modernizacje prawie całego komputera. Ale wizja niedalekiej przyszłości kreuje się nam znakomicie. Wystarczy tylko czekać i zbierać pieniądze na nowy sprzęt.

Jeśli przeczytaliście ten artykuł i macie ogromną ochotę na zakup Windowsa Visty oraz karty graficznej obsługującej DirectX 10, to wstrzymajcie się jeszcze. Po pierwsze trzeba poczekać, aż Vista stanie się bardziej stabilna i kiedy wyjdzie pod nią więcej sterowników do przeróżnych urządzeń. Druga sprawa jest taka, że jak na razie nie ma zbyt dużego wyboru kart graficznych, bo są tylko 2 na rynku. Po trzecie, dopiero 10 gier obsługuje DirectX 10 z czego ponad połowa z nich jest jeszcze w fazie testów.

windowsvistablog.com; pugetsystems.com; benchmark.pl; in4.pl

KomentarzeKomentarze

  • 1
  • 2
  • bekoo

    #0 | Melkor

    2007-04-03 08:08:24

    MS MS MS MS super dx 10 i jego system driverow ktory uwalnia część procka od obliczeń normlanie nie normalne ale szkoda że autora zapomniał dodać iż apple już wcześniej zastosowało takie rozwiązenie
  • Koras

    #0 | Koras

    2007-04-12 23:32:44

    BOZE CO ZA BZDURY O_O

    co ma screen z HALO gdzie jedyny shader w wersji 2.0 to kamuflaz covenant? A sama gra byla pisana na xkloca z grafa pochodna geforce 4?
    co ma do tego render z ms flight simulator?
    World in conflict? Kto widzial to na zywo wie, jak bardzo rozni sie od screenow prezentowanych w sieci.

    BELKOT MARKETINGOWY.
  • mavv

    #0 | niuss

    2007-04-13 01:08:27

    true
  • Dodawanie komentarzy dostępne jest jedynie dla zalogowanych użytkowników.
    Jeżeli nie jesteś jeszcze użytkownikiem eSports.pl, możesz się zarejestrować tutaj.
  • 1
  • 2
Komentarze pod artykułami są prywatnymi opiniami użytkowników serwisu eSports.pl oraz serwisów pokrewnych, który nie ponosi odpowiedzialności za treść opublikowanych opinii. Jeżeli którykolwiek z postów łamie zasady, zawiadom o tym redakcję eSports.pl.
Dołącz do redakcji portalu eSports.pl!

Ostatnio publikowane

Napisz do redakcji

W tej chwili żaden z naszych redaktorów nie jest zalogowany.

Ostatnie komentarze

Ostatnio na forum

Statystyki Online

2365 gości

0 użytkowników

0 adminów

Ranking Użytkowników

WynikiAnkieta

Co było dla Ciebie największym zaskoczeniem podczas WCG Polska?

  1. 0%

    Słaba postawa Fear Factory

  2. 0%

    Dobra gra UF Gaming

  3. 14%

    Tłumy widzów na sali kinowej

  4. 14%

    Mało miejsca

  5. 71%

    Nie byłem i nie interesuje mnie to

Nasi partnerzy

  • Shooters.pl
  • Cybersport

Wszelkie prawa zastrzeżone (C) eSports.pl 2003-2024

Publikowanie materiałów tylko za zgodą autorów.