Technologie i wydarzenia
Artykuł
Marcin Bieńkowski, Środa, 20 czerwca 2007, 09:30

Krótka historia DirectX

Wróćmy jednak z powrotem do bibliotek DirectX. Pierwsza ich wersja zadebiutowała w sierpniu 1995 roku wraz z premierą systemu Windows 95. DX 1.0 porządkowała sposób wyświetlania grafiki w ówczesnych zaawansowanych programach graficznych takich jak np. AutoCAD i wprowadzał możliwość pisania gier dla systemu Windows, a trzeba pamiętać, że ówczesne gry korzystały przede wszystkim z DOS-u i własnych procedur tworzenia grafiki. Z naszego punktu widzenia przełomowe okazały się dopiero biblioteki DirectX w wersjach 6.1 i 7.0. Obie zadebiutowały w 1999 roku – pierwsza w lutym, a druga we wrześniu. Dlaczego okazały się one przełomowe? Otóż wprowadzono w nich najważniejsze elementy klasycznego już dzisiaj modelu generowania trójwymiarowej grafiki, a mianowicie obsługę potoków renderujących oraz sprzętowe wspomaganie operacji geometrycznych i kalkulacji oświetlenia T&L (Transform and Lighting). Od momentu premiery bibliotek DX 6.1 i DX 7.0, i przede wszystkim zgodnych z nimi kart graficznych, można już mówić o akceleratorach 3D (dla porównania, słynny S3 ViRGE często nazywany był złośliwie "deceleratorem", bo w wielu grach zamiast przyspieszać... spowalniał grafikę 3D). Karty takie przejęły bowiem główne elementy procesu generowania grafiki 3D, odciążając jednocześnie procesor (CPU) od zadań związanych z tworzeniem trójwymiarowych scen.

Wraz z pojawieniem się obsługi T&L w DirectX 7.0 i premierą układu NVIDIA GeForce 256 ze sprzętowym wsparciem dla T&L, NVIDIA ukuła termin GPUGraphics Processing Unit (analogicznie do akronimu określającego procesor - CPU, Central Processing Unit). Nazwa GPU dla układów graficznych miała sugerować, że są to już jednostki przetwarzające samodzielnie większość operacji strumienia graficznego (w gestii CPU – o czym za chwilę – pozostało ich tylko kilka).

Następną istotną wersją bibliotek DirectX była wersja 8.0. Zadebiutowała ona we wrześniu 2000 roku i wprowadziła shaderowy model przetwarzania grafiki. Co ciekawe, powstała ona przede wszystkim na potrzeby pierwszej wersji Xbox – konsoli Microsoftu do gier. Najważniejszą nowością w akceleratorach 3D zgodnych z DX 8.0 było pojawienie się programowalnych jednostek Vertex i Pixel Shader. Moduły te potrafią zmodyfikować szkielet sceny oraz użyte do jej budowy tekstury i pojedyncze piksele obrazu już w trakcie przetwarzania ich w potoku graficznym. Co więcej, modyfikacje obiektów mogą być również przeprowadzane na gotowej scenie 3D. Do zrealizowania takich operacji wykorzystuje się krótkie programy, nazywane programami shaderowymi. To, co ujrzymy na ekranie, zależy już od fantazji i umiejętności programisty piszącego grę. Za pomocą programów shaderowych można na przykład stworzyć własne efekty graficzne niedostępne w standardowych procedurach DirectX. Koniecznie trzeba tu zaznaczyć, że niezależnie od programów shaderowych, programiści cały czas mogą korzystać z gotowych funkcji zaimplementowanych w bibliotekach DirectX, a kolejne wersje bibliotek są zawsze, niezależnie od wersji, kompatybilne wstecz ze wszystkimi starszymi graficznymi interfejsami programowymi.

Kolejne wersje DirectX, a mianowicie 8.1, 9.0, 9.0a, 9.0b i 9.0c, wprowadzały ulepszenia do shaderowego modelu programowania kart 3D, a programiści zaimplementowali szereg nowych graficznych funkcji, niemniej sama architektura bibliotek DirectX nie uległa zmianie.

Ocena artykułu:
Ocen: 2
Zaloguj się, by móc oceniać
Artykuły spokrewnione
Facebook
Ostatnio komentowane