Witamy w magazynie Playback!     GRAJ Z PLAYBACKU!     Numer 05/2006 (Maj 2006)
REDAKCYJNE                              RECENZJE


Krzysztof Dżułynski
Kontakt


























































































Shadery, displacement mapping, multisampling, antyaliasing.... Co oznaczają te pojęcia? Niedawno przekonałem się, że odsetek ludzi, którzy posługują się płynnie tymi określeniami jest nader niewielki, dlatego właśnie zdecydowałem sie napisać tekst na ten temat.

Niegdyś, mniej więcej w czasach, gdy pojawiły się pierwsze akceleratory 3D (pamiętne Voodoo) w większości gier obraz mógł być opisany jedynie za pomocą dwóch czynników: góra i dół. Wraz z pojawieniem się Quake'a programiści zaczęli tworzyc grafikę w grach w podobny sposób, jaki znamy dzisiaj. Każdy obiekt w grach przechodzi przez 3 procesy, zanim staje się tym, co widzimy na ekranie. Najpierw tworzona zostaje tzw. siatka, czyli szkielet danego obiektu, który następnie "wypełnia"się za pomocą prostych brył zwanych polygonami. Teraz obiekt nabiera już kształtów, ale nadal jest pozbawiony kolorów i wyrazu, więc "okleja" się go za pomocą cienkich faktur/tekstur, obrazków w 2D, którymi często są po prostu zdjęcia z realnego świata (oczywiście odpowiednio skompresowane). Być może brzmi to prosto, ale stworzenie w ten sposób, np. modelu potwora to zabawa na 2-3 tygodnie! Wprawdzie słyszałem ostatnio o prostszych metodach wypełniania obiektów przestrzennymi pikselami, czyli vokselami, ale bóg jeden raczy wiedzieć, kiedy to rozwiązanie zacznie byc stosowane w grach. Jeśli ma to byc obiekt ruchomy nalezy jeszcze wykonać dla niego animacje. Zadaniem karty graficznej jest wyświetlenie obiektu - a raczej obiektów (setek, tysięcy, milionów), bo nikt raczej nie chciałby grać w grę, w której jest tylko jeden obiekt - poprzez odpowiedni interfejs programowania aplikacji, czyli API( Aplication Programming Interface), zazwyczaj są to popularne Direct 3D bądź OpenGL. Karta ustala następnie w jakim miejscu ma znaleźć się dany obiekt, po czym nadaje mu rozmiar, kształt i jego położenie względem innych obiektów, np. podłoża. Tym ostatnim zajmuje się specjalna jednostka na karcie graficznej, tzw. T&L (Transform and Lighting), dzięki czemu operacje te nie są zwalane na procesor główny komputera. Potem dane o obiekcie wysyłane są do tzw. "triangle setup engine", który następnie grupuje schemat modelu w trójkąty i opisuje ich za pomocą 3 współrzędnych (pion, poziom, głębia), potem jeszcze małe obróbki za pomocą jednostek Verteks Shader, które umożliwiają modelowanie samych wierzchołków polygonow i obiekt jest wyświetlany w grze.

Kiedyś sądzono, że osiągnięcie fotorealizmu i płynności animacji możliwe jest wyłącznie przez zwiększanie liczby trójkątów/polygonów, jednak rzeczywistość szybko zweryfikowała te naiwne domysły. Naturalnie obiekt złożony z 500000 polygonów wygląda bardzo ładnie, choc mimo wszystko nieco sztucznie, ale prawdziwą zaporą dla tego typu praktyk jest fakt, że procesory główne i graficzne są nadal i wciąż o wiele za słabe, by płynnie wyświetlić animację takich obiektów. Dlatego liczba tychże brył jest redukowana do minimum, a w celu osiągnięcia lepszej jakości obrazu nakładane jest na niego oświetlenie i inne filtry. Na czym to polega?

Najprostszym z nich jest tzw. Bump Mapping, czyli system mapowania wybojów, który stosowany jest już włąściwie we wszystkich nowszych grach. Na czym to polega? Na teksturę nakładana jest mapa wybojów, czyli po prostu kolejna tekstura, która posiada informacje na temat wypukłości danej tekstury, które są przetwarzane, a następnie wyświetlane na finalnym obiekcie. Tekstura zostaje wówczas podzielona na teksele, a im jaśniejszy teksel na mapie wybojów, tym bardziej wypukle wygląda w grze. Młodszym kuzynem tego typu instrukcji jest Displacement mapping, który wykorzystuje verteks shader do podziału polygonów na mniejsze trójkąty, a następnie nadaje im rzeczywisty, a nie symulowany jak w przypadku bump mappingu kształt. Jeśli obiekt w grze wygląda nieco, lub nawet więcej niż nieco kanciasto, do akcji przechodzi Antyaliasing. Zaciera on granice między polygonami i tworzy okrąglutkie formy, jednak efekt ten potrzebuje ogromnej mocy obliczeniowej, dlatego jeśli nie masz bardzo wydajnej karty graficznej zapomnij o jego włączaniu w opcjach. Aby zaoszczędzić nieco mocy obliczeniowej silnik gry wyświetla ostro tylko obiekty znajdujące się niedaleko od gracza, a te dalsze rozmazuje, co tworzy mimo wszystko brzydki efekt. Aby zapobiec tego typu przykrościom włączamy filtrowanie anizotropowe, które sprawia, że obiekty położone dalej wyglądają równie ostro, jak te, które mamy przed samym nosem. Również jest to sprzętożerny efekt, choc już nie tak jak antyaliasing. Często spotykałem się z żalami, że w danej grze nie da się zniszczyc źródła światła. Jest to celowy zabieg stosowany przez twórców, pytacie dlaczego? Otóż lampa w grze tak naprawdę nie jest źródłem światła, więc po jej rozwaleniu światło nadal by świeciło, a to dlatego, że oświetlenie w grze jest rzeczą zupełnie niezależną i nakładane może byc nawet dużo wcześniej niż w momencie ustawienia modelu lampy/słońca/itd. To samo z cieniami, które razem z oświetleniem tworzą tzw. światłocienie. Nawet, gdyby producent dawał możliwość zgaszenia lampy, światło nadal by świeciło, co wyglądało by trochę głupio. Nowsze gry dają możliwosć rozchuśtania źródła światła, w takim przypadku to skrypty kierują zmianami położenia światłocieni. Różnorakie lustra i inne tego typu przedmioty zdolne odbijać światło są tworzone dzięki efektowi zwanemu Enviromental Mapping, czyli po polsku mapowania środowiskowego. Mapa środowiskowa to tekstura, która posiada informacje na temat możliwych do wyświetlenia na niej refleksów świetlnych i otoczenia. Technika nazywająca się Enviromental Mapped Bump Mapping to już wyjątkowy bajer. Na zwykły obiekt nakłada się aż 3 tekstury: zwykłą, mapę wybojów i mapę środowiskowa, dzięki czemu staje się możliwe stworzenie wrażenia odbijania się świata w lustrze wody. Miodzio. Kolejnym wartym omówienia bajerasem jest Stencil Shadows i jego ulepszona wersja Volume Shadows, które tworzą cienie w 3D przy uwzględnieniu wszystkich źródeł światła padających na obiekt. Na obiekt znajdujący się bezpośrednio za obiektem odbijającym światło są nakładane ruchome bądź stałe mapy cieni, czyli kolejne tekstury-filtratory.W pakiecie Shader Model 3.0 dodane zostały też instrukcje zwane Hardware Soft Shadows, rozmywające w naturalny sposób mapy cieni, dzięki czemu wygladają one wręcz jak ze zdjęcia. Odpowiednikiem Stencil Shadows jest funkcja Specular Lighting, która odpowiada za połyski na obiektach. Rownież w tym przypadku na obiekt mający połyskiwać nakładana jest właściwa tekstura. Bardziej zaawansowaną techniką uzyskiwania efektu połysku jest Glowing, w którym stosuje się dodatkowo rozmazanie dodatnie. Jednym z najpopularniejszych i najładniejszych efektów dostępnych w pakiecie Shader Model 3.0 jest funkcja HDR, która pakuje informacje o natężeniu światła właśnie do tego formatu i sprawia, że słońce i lampy świecą pełnym blaskiem, dzięki temu efektowi pozbyto się efektu matowości obiektów rzekomo będących źródłami światła, co wcześniej zdradzało prawdę o tym, że tak naprawdę to nie żarówka świeci, tylko engine...

Z grubsza to wszystko co można napisać o tego typu zagadnieniach, być może kiedyś (w co szczerze mówiąc nie wątpię) pojawią się i inne efekty przybliżające obraz z gier do realizmu wizyjnego, jaki znamy z życia i otaczającej nas rzeczywistości. Większość opisanych przeze mnie efektów zdążyła się już na dobre zadomowić we wnętrzu naszych komputerów wraz z pojawieniem się kart obsługujących sprzętowo bajery zawarte w Shader Model 3.0 i nie trzeba byc multimilionerem, by mieć możliwość grania na swoim blaszaku z podziwianiem tychże pięknośći. Każda karta z chipsetem GF 6200, 6500, 6600, 6800, 7300, 7600, 7800, 7900 i Radeony X1300, X1600, X1800 i X1900 we wszystkich wersjach zapewniają pełną zgodność z tymże pakietem. Najtańsze z nich naprawdę już nie uderzą nawet przeciętnego polaka po kieszeni. Niestety, póki co nie wyszło zbyt wiele gier wspierających powyższe standardy wyświetlania grafiki, ale zapewne w przyszłości pojawi się ich więcej. Zatem czekajmy na to, co przyniesie nam przyszłość, grajmy i zachwycajmy się nie tylko grafiką, ale też innymi aspektami gier, czego Wam i sobie życzę.
PLAYBACK 2006 Wszelkie prawa zastrzeżone!

O zinie | Kontakt | Współpraca | Redakcja