Bliżej sprzętu i artysty

Najnowsze karty graficzne pozwalają osiągnąć bardzo dużą wydajność oraz niemal fotograficzny realizm, a producenci kart muzycznych wciąż wprowadzają “kolejne wymiary” dźwięku. Projektanci gier potrzebują zatem coraz większych możliwości i większej swobody w kreowaniu wirtualnych światów. Microsoft poczynił kroki, aby kolejna edycja (patrz: CHIP 9/99, s. 154) sterowników DirectX umożliwiła wykorzystanie wszystkich efektów oferowanych przez najnowsze karty graficzne. Jedynym sposobem na osiągnięcie tego celu było przeprowadzenie poważnych zmian w architekturze blibliotek.

Dotychczasowe możliwości oświetlenia tekstur.

Największą nowością, jaka została wprowadzona w stosunku do poprzedniej wersji sterowników DirectX, jest całkowita przebudowa interfejsu 3D API, odpowiadającego za wszystkie operacje wykonywane na trójwymiarowej grafice. Projektanci postawili na jak największą integrację sterowników z kartą graficzną oraz procesorem (techniki 3DNow! – AMD i Streaming SIMD – Intel). Wprowadzono obsługę równoległego sprzętowego przetwarzania punktów geometrycznych, co pozwala lepiej wykorzystać potencjał najnowszych chipsetów graficznych. Całkowitą nowością jest możliwość sterowania samymi obliczeniami – wszelkie transformacje na warstwach przeliczeniowych, które dotychczas wykonywane były automatycznie, bez możliwości ingerencji ze strony projektantów gier, mogą być teraz modyfikowane. Bez wątpienia wpłynie to na urozmaicenie gier dzięki możliwości wprowadzenia nowych i nieznanych dotąd efektów specjalnych, jakie tylko wyobrażą sobie artyści. Na poziomie sprzętowym wykonywane są również wszelkie efekty nakładania tekstur, które znacznie poprawiają jakość obiektów o małej liczbie wielokątów, oraz obrazowania cząsteczek wody czy gazu.

Takie zmiany umożliwią lepsze wykorzystanie możliwości kart graficznych. DirectX 8.0 jest niemal dwukrotnie “szybszy” od swojego poprzednika i pozwala na przetworzenie 1,2 miliarda pikseli w ciągu sekundy. Może także obsłużyć wyświetlenie prawie trzykrotnie większej liczby wielokątów – z 25 (DirectX 7.0) do 60 milionów w ciągu sekundy.

Podczas projektowania bibliotek powstał specjalny zespół programistów-fizyków, których zadaniem było zachowanie realizmu obrazu, przy utrzymaniu jak największej wydajności sterowników. Było to duże wyzwanie, gdyż bardzo trudno osiągnąć realizm wyświetlania obiektów w świecie grafiki prymitywów, bazującej na najprostszych figurach geometrycznych. Zmieniono wiele algorytmów samego procesu renderowania, przez co grafika w scenach 3D stała się jeszcze bardziej “rzeczywista”. Również programiści Microsoftu nie próżnowali i znacznie poprawili stabilność sterowników oraz wewnętrznego API, dzięki czemu niezależnie od posiadanej karty czy procesora użytkownik nie powinien mieć żadnych problemów z ich instalacją i obsługą. Sama edycja Pre-Release nie sprawiała problemów w trakcie testów, co stanowi dobrą zapowiedź ostatecznej wersji.

Kolejną radykalną zmianą, wprowadzoną w edycji 8.0 Pre-Release, jest połączenie API DirectMusic i DirectSound. DirectX Audio zawiera w sobie funkcje przeznaczone do miksowania dźwięku oraz jego syntezy, co pozwoliło zmniejszyć fizyczną wielkość interfejsu muzycznego. Tutaj, podobnie jak w przypadku 3D API, artyści i projektanci gier mogą bardziej dopasować dźwięk 3D do trójwymiarowego obrazu w każdym z trzech wymiarów wirtualnego świata. Dosłownie wszystkie obliczenia, które było można, “skierowano” na warstwę sprzętową, aby jak najbardziej odciążyć procesor. Dla DirectX Audio powstał “język” Audio Scripting, ułatwiający edycję interaktywnej ścieżki dźwiękowej w grach, dzięki czemu proces łączenia efektów pracy muzyków stał się mniej skomplikowany.

Nowe metody nakładania tekstur: dzięki nowym sterownikom udało się znacznie poprawić realizm wirtualnego świata.

Microsoft położył również nacisk na ułatwienie programistom pisania programów z użyciem DirectX. Dla przykładu: kod źródłowy aplikacji napisanej przy użyciu DirectDraw w języku C++ miał wielkość 67 KB źródła, a ten sam kod napisany z wykorzystaniem biblioteki DirectDraw 8.0 zajmuje tylko 14 KB. Jednak projektanci DirectX 8.0 poszli jeszcze dalej, dzięki czemu możliwe jest korzystanie z bibliotek bez utraty efektywności także z poziomu Visual Basica. Zapewne dzięki temu nawet mniej doświadczeni programiści będą mogli tworzyć aplikacje wykorzystujące możliwości nowych bibliotek, a pisanie programów prezentacyjnych, w których kładzie się nacisk głównie na czas ich tworzenia oraz efektywność wykonywania, stanie się łatwiejsze.

DirectX w wersji 8.0 wydaje się lepszy od swoich poprzedników. W znacznie większym stopniu niż wcześniejsze edycje wykorzystuje możliwości sprzętu, ale jeżeli nie dysponujemy kartą graficzną, która potrafi zrealizować dany efekt, to zrobi to za nią (niestety znacznie wolniej) sama biblioteka. Dzięki temu nie jesteśmy narażeni na “czarne dziury” w grafice i jakiekolwiek braki jakościowe ze strony oprogramowania.

Na powstanie nowej wersji DirectX złożyło się doświadczenie projektantów i programistów nie tylko z Microsoftu. W przedsięwzięciu brali również udział inżynierowie z firm Intel, AMD, Nvidia, 3dfx, ATI, Matrox, S3 Graphics, Silicon Integrated Systems, Creative Labs, Cyrix, ESS Technology, Logitech, Guillemot Corporation, Infinite Machine, Inter-Act Accessories, Shibari, TMicroelectronics, CenterSpan Communications, Trident Microsystems, Yamaha Corporation. Jak widać, jest to naprawdę wielki sztab ludzi. Bez wątpienia założenia projektantów zostały zrealizowane, ale czas pokaże, czy spełnią one oczekiwania graczy i programistów.

Info
Grupy dyskusyjne
Uwagi i komentarze do artykułu:
#
Pytania techniczne:
#
Internet
Microsoft DirectX Developer Day
http://msdn.microsoft.com/Events/directx/dev/ sessions.asp
Meltdown 2000 – warsztaty DirectX Day
http://www.microsoft.com/hwdev/meltdown/
GDC 2000 – grafika na Game Developers Conference
http://www.gamasutra.com/features/20000329/ gfx_pfv.htm
Więcej:bezcatnews