3dfx Voodoo2, Voodoo3 i Voodoo4

Voodoo2 zajmie pewnego dnia miejsce obok Apple II jako jedna z klasycznych konstrukcji komputerowych. Karta ta spełnia funkcje wyłącznie 3D i wymaga obecności zwyczajnej karty graficznej 2D. Voodoo2 była pierwszą kartą, na której umieszczono podwójny układ renderujący, lecz wadą jej konstrukcji jest bezczynność układu TMU w grach wykorzystujących interfejs Direct3D. Jeśli wzięlibyśmy Voodoo2, zredukowali ją do pojedynczego chipu, dodali funkcje obsługi grafiki 2D i „podkręcili” zegar, otrzymalibyśmy Voodoo3. Choć Voodoo3 wyposażona jest również w inne funkcje, taki sposób jej opisu jest jednak wystarczająco zbliżony do prawdy. 3dfx głośno reklamuje własne rozwiązanie interfejsu API, jakim jest Glide. Choć jest to rozwiązanie efektywne, jego dni są policzone. Glide daje pewien wzrost wydajności, jednak żaden programista nie zrezygnuje dziś ze stosowania Direct3D czy OpenGL. Firma 3dfx zbyt późno zaczęła przystosowywać swoje produkty do współpracy z OpenGL ICD i wciąż nad tym pracuje. Karty Voodoo3/3500 wyposażono w tuner TV i obsługę przechwytywania wideo w formacie MPEG-2.

Chipsety 3D

Mając w pamięci powyższe przestrogi przyjrzyjmy się bliżej kartom 3D, które można obecnie spotkać na rynku. Dostarcza skrótowych informacji na temat podstawowych parametrów tych kart. Chipset Voodoo3 krytykowany był za brak pewnych funkcji, jednak prawdą jest, że do niedawne jedynie niektóre gry stosowały funkcje, takie jak użycie dużych tekstur, rendering 32-bitowy czy odwzorowywanie nierówności. Architektura Voodoo3 jest w zupełności wystarczająca do załadowywania tekstur (przynajmniej w trybie Glide), choć programy obsługi Direct3D nie są już tak wydajne. Natomiast w obliczu ograniczeń 16-bito- wego renderingu nie zachodzi potrzeba użycia dużej objętościowo pamięci. Voodoo3 wykorzystuje pamięć o wielkości 16 MB.

Sprzęt 3D a rzeczywistość

Legendy otaczające niektóre układy graficzne 3D ustępują jedynie pogłoskom na temat szczegółów życia kandydatów na prezydenta. Żadna karta 3D nie jest doskonała, jeśli jednak czytamy pochwały wydrukowane na opakowaniu, może się nam zdawać, że trzymamy w rękach najwspanialszy sprzęt na świecie. Podchodźmy zatem z ostrożnością do obietnic składanych przez producentów. Oto garść faktów, na które warto zwrócić uwagę:
3dfx chełpi się zastosowaniem podwójnych układów TMU (ang. Texture Mapping Unit) na kartach Voodoo2 i Voodoo3. Jednak w przypadku gier wykorzystujących interfejs Direct3D, które nie wspierają multiteksturowania, drugi z układów TMU pozostaje bezczynny. To wyjaśnia słabsze w stosunku do konkurentów osiągi kart Voodoo3 w grach Direct3D.
Lista funkcji widoczna na opakowaniach kart zbudowanych na bazie układu nVidia TNT2 obejmuje między innymi trójliniowe filtrowanie. W rzeczywistości jednak karty z chipami TNT oraz TNT2 jedynie syntetyzują ten typ filtrowania poprzez zastosowanie filtrowania anizotropowego. (Kto chce, może sprawdzić – dane techniczne nie zawierają informacji o trójliniowym filtrowaniu). W porównaniu z rzeczywistym filtrowaniem różnice są łatwo zauważalne. Karty z układem ATI Rage 128 „wspomagają odtwarzanie DVD”. Naprawdę jednak wykonują one funkcje matematyczne stosowane podczas dekodowania plików MPEG-2. Chip nie obsługuje w pełni wszystkich funkcji DVD, a wśród nich regionalizacji i ochrony przed kopiowaniem. Oznacza to, że do oglądania filmów z dysku DVD potrzebujemy dodatkowego oprogramowania. Jeśli natomiast chcielibyśmy uruchamiać gry wykorzystujące pliki wideo DVD, konieczne będzie dokupienie sprzętowego dekodera. Matrox reklamuje swój układ G400 jako wspierający 32-bitowy z-bufor. Jeśli jednak uruchomimy tryb 32-bitowy, G400 użyje 16-bitowego z-bufora, chyba że gra zażąda uruchomienia go w trybie 32-bitowym lub jeśli użytkownik uaktywni odpowiednią funkcję w panelu sterującym karty graficznej. W niektórych grach może to jednak powodować ujemne skutki w postaci „wyskakiwania” obiektów w miarę zbliżania się do nich. Wszystkie wspomniane karty jednak dobrze wykonują zadania renderingu, zatem pojawianie się plotek nie znaczy, że mamy do czynienia ze złym produktem. Każda, nawet najwolniejsza z produkowanych dziś kart daje sobie radę w większości gier przy rozdzielczości do 800×600. Oczywiście, karty szybsze umożliwiają korzystanie z wyższych rozdzielczości, lecz zwykle są droższe. Ostatnio na rynku pojawiła się karta nowej konstrukcji z chipem S3 Savage4 i 32 megabajtową pamięcią pokładową, kosztująca około 400 złotych. Stanowi ona kompromis między ceną a wydajnością. Wybierając jednak ten model musimy pamiętać, że obecnie gry stawiają poprzeczkę wyżej, niż kiedyś.
Programiści rozwijają gry tak, by wyglądały coraz bardziej realistycznie. W procesie tym wzrastają więc wymagania względem procesorów i układów graficznych.

Uwagi do karty graficznej

Wiele spośród wytwarzanych obecnie kart graficznych zezwala użytkownikom na wprowadzanie zmian szybkości zegara taktującego układ graficzny i pamięć. Zasady są podobne do omówionych w rozdziale 3 dotyczących przetaktowywania procesorów. Zwiększenie częstotliwości pracy zegara można osiągnąć również za pomocą programu Powerstrip firmy Entech. Choć można w ten sposób uzyskać wzrost wydajności układu graficznego, należy jednak pamiętać o przestrogach dotyczących przetaktowywania czyli możliwości wystąpienia problemów z nadmiernym wydzielaniem ciepła, nieprawidłowego działania karty, a nawet ewentualności jej trwałego uszkodzenia.

Co kryje karta 3D

Skoro już poznaliśmy podstawowe funkcje akceleratorów 3D, czas przyjrzeć się samemu sprzętowi. Karta graficzna 3D składa się z układu akcelerującego, pamięci i układów logicznych. Jeśli kartę wyposażono w funkcje dodatkowe, takie jak generowanie obrazu telewizyjnego, znajdziemy na niej również układ generujący sygnał TV. Układ graficzny jest najczęściej zaopatrzony w radiator lub wentylator, który zapewnia odprowadzanie ciepła z powierzchni układu. Większość kart graficznych 3D potrafi wykonywać jedynie zadania związane z ren- deringiem. Oznacza to, że dane przesyłane przez port AGP zawierają instrukcje wyświetlania tekstur oraz transformacji i oświetlenia trójkątów. Właściwie informacje te dotyczą jedynie ich wierzchołków. Między aplikacją i kartą graficzną znajduje się program obsługi urządzenia*. Program ten jest kodem pozwalającym systemowi operacyjnemu i aplikacjom rozpoznać i używać sprzętu. Działa on podobnie do policjanta kierującego ruchem, zarządzając przepływem danych między systemem a akceleratorem. Niektóre programy obsługi mogą przejmować część zadań związanych z renderingiem, dzięki czemu procesor wykonuje czynności, o których można by sądzić, że są wykonywane przez kartę 3D. Dzieje się tak jednak coraz rzadziej, bowiem karty 3D przejmują na siebie kolejne operacje. Termin „driver” jest bardzo różnie tłumaczony w literaturze informatycznej i reklamach sprzedawców. W książce będzie używany termin „program obsługi urządzenia”. W ulotkach sprzedawców najczęściej spotyka się „sterownik”, jednak ten termin oznacza element sprzętowy (po angielsku „controller” – błędnie „kontroler”), (przyp. red.).
Gdy dane znajdują się w pamięci karty, do dzieła przystępuje układ graficzny. Rendering 3D nie jest jednak jego jedynym zajęciem. Oprócz tego zarządza on pamięcią i wykonuje operacje dwuwymiarowe.

Prędkość wypełniania a liczba wielokątów

Komputerowe gry 3D ostatnich lat tworzyły sceny obejmujące stosunkowo niewielką liczbę wielokątów. Liczba ta rzadko wynosiła bowiem więcej niż 3000, a w większości pjzypadków była o wiele niższa. Gdy w scenie występuje mała liczba wielokątów, na ekranie pozostaje duża powierzchnia, którą trzeba wypełnić. Szybkość, z jaką wypełniane są wielokąty nazywa się szybkością wypełniania (ang. fili rate) i jest jedną z najważniejszych wartości określających wydajność kart 3D. Jednak w miarę rozwoju gier i technik akceleracji obliczeń geometrycznych, liczba trójkątów tworzących sceny znacznie wzrosła. Szybkość wypełniania jest wciąż ważnym elementem, choć już nie tak istotnym. Wraz ze wzrostem liczby wielokątów priorytet otrzymały inne parametry: prędkość przesyłania danych dotyczących trójkątów, liczba wielokątów generowana w ciągu sekundy, i tak dalej. Nabywając bowiem kartę sprzętowo akcelerującą obliczenia geometryczne oczekujemy przecież, że będzie ona w stanie wygenerować znacznie więcej wielokątów niż mógłby to zrobić procesor.
Bardzo ważnym parametrem w technikach multiteksturowania i mieszania jest szybkość wypełniania. Wszystkie obecnie produkowane karty 3D dysponują możliwością równoległego przetwarzania dwóch lub więcej potoków danych opisujących piksele.

Techniki odwzorowywania tekstur

Mapy tekstur stosuje się nie tylko w celu symulacji powierzchni. Mapy świateł i cieni służą do kreowania klimatu i realistycznie oświetlonego otoczenia. Bump mapping jest techniką nakładania tekstur, które tworzą iluzję trójwymiarowości oglądanych powierzchni, mimo iż same pozostają płaskimi obrazkami. Można wyróżnić kilka odmian tej techniki, jednakże najczęściej stosowanymi są emboss oraz enviro- mental. Idealnym rozwiązaniem byłoby rzeczywiste modelowanie nierówności, lecz najczęściej wiązałoby się to z intensywnymi obliczeniami wielokątów. W większości przypadków stosuje się więc technikę bump mapping (odwzorowywania porowatości powierzchni), która jest wystarczającym substytutem. Reflection mapping jest techniką nakładania map odbić na powierzchnię, która ma sprawiać wrażenie gładkiej i odbijającej światło z otoczenia. Tworzenie odbić w czasie rzeczywistym wymagałoby zbyt dużej liczby obliczeń, zatem technika ta jest kolejną „sztuczką” pozwalającą pogłębiać realizm scen. Cubic environment mapping jest bardziej realistyczną odmianą odwzorowywania odbić, w której odbicia są tworzone z tekstur otoczenia. Technika ta wymaga jednak większej mocy obliczeniowej, niż stosowanie predefiniowanych map odbić.

Mieszanie tekstur

Jednym z głównych zastosowań mapowania tekstur jest mieszanie ich (łączenie) kilkoma metodami w celu osiągnięcia specyficznego wyglądu lub efektu. Mapy oświetlenia na przykład są odmianą map tekstur stosowaną do uzyskiwania efektów świetlnych. Funkcja Multitexturing jest dostępna wielu obecnie produkowanym kartom graficznym, dzięki której mogą one łączyć dwie, a nawet więcej tekstur w jednej operacji. Techniki odwzorowywania tekstur i związane z nimi funkcje zrewolucjonizowały nowoczesne gry komputerowe. Wyświetlane obrazy nie przypominają już kostki brukowej. Za pomocą mieszania i łączenia tekstur można osiągać pobudzające wyobraźnię i bardzo realistyczne efekty. Patrząc na płasko cieniowane wielokąty w Falcon 3.0 trudno dziś uwierzyć, że w tę grę dało się kiedyś grać.

error: Content is protected !!