Więcej światła
Gry komputerowe coraz bardziej przypominają filmowe produkcje dzięki szybszym kartom graficznym i wykorzystaniu ich możliwości przez twórców gier. Opisujemy nowoczesne techniki, jakie mogą oni stosować w swoich produkcjach.
Jednym z ważniejszych wyzwań stojących przed twórcami gier jest realistyczne odzwierciedlanie oświetlenia. Pod tym względem gry najgorzej symulują środowisko rzeczywiste. Ale już w nadchodzących produkcjach, np. Rage, możemy się spodziewać dużego postępu w tej dziedzinie.
O realizmie gry decyduje też sposób odzwierciedlenia nierówności obiektów czy terenu, ale z tym radzą sobie nieźle zaawansowane techniki mapowania powierzchni. Znane już od ponad 10 lat, stale udoskonalane, znalazły zastosowanie niemal w każdej grze 3D.
Globalne oświetlenie
Jedną z nowości w przyszłych grach będzie oświetlenie globalne (z ang. global illumination). Zadaniem tej techniki jest bardziej realistyczne oddanie naturalnego oświetlenia obiektów. Tworzenie trójwymiarowej sceny polega na uwzględnieniu nie tylko światła emitowanego bezpośrednio ze źródła (oświetlenia lokalnego), ale także odbijanego przez różne powierzchnie i pośrednio oświetlającego znajdujące się wokół przedmioty.
Grafika generowana (renderowana) z wykorzystaniem algorytmów globalnego oświetlenia wygląda bardziej realistycznie niż sceny, w których wykorzystuje się wyłącznie oświetlenie bezpośrednie, bo lepiej oddaje zjawiska fizyczne zachodzące w przyrodzie (odbijanie promieni słońca przez różne obiekty). Podobne algorytmy są powszechnie wykorzystywane podczas generowania komputerowo obrazów kinowych (techniki śledzenia promieni światła ray-tracing czy mapowania fotonowego).
Śledzenie światła
Obecnie generowanie sceny polega na sztywnym, ustalonym przez programistę wyliczaniu koloru pikseli figur geometrycznych (trójkątów). W przyszłości główną metodą tworzenia obrazu będzie ray-tracing – kolor i odcień obiektów w grach zostanie oddany w zgodzie ze zjawiskami fizycznymi zachodzącymi w świecie rzeczywistym, z zachowaniem natężenia i kierunku padania promieni światła.
Na razie jednak jest to zadanie zbyt obciążające obliczeniowo dla procesora i znajduje zastosowanie jedynie w produkcjach filmowych typu Shrek, w których obraz nie powstaje w czasie rzeczywistym, a może zostać wygenerowany wcześniej przez wiele komputerów.
Rendering HDR
Dużym problemem dla twórców gier było oddanie rzeczywistego natężenia światła w wirtualnym świecie. Co zrobić, by w jednym miejscu sceny było słabsze, a w innym wręcz oślepiające? Do uzyskania takich efektów służy rendering HDR (ang. High Dynamic Range). Wykorzystuje on szerszy zakres jasności oświetlenia niż w grach, gdzie HDR się nie stosuje – maksymalna wartość liczbowa koloru zostaje przesunięta w górę.
Największą zaletą HDR jest to, że zarówno ciemne, jak i jasne obszary sceny mogą zostać dokładniej odwzorowane z zachowaniem widoczności szczegółów w obu sytuacjach. W starszych grach miejsca zbyt ciemne były po prostu czarne, a te za jasne – białe. Wynikało to stąd, że starsze karty graficzne operowały na ograniczonym zakresie wartości liczbowych przypisywanych kolorom. Można powiedzieć, że nie starczało ich już, by opisać jasność wyjątkowo mocno świecących obiektów, np. słońca.
Jaka karta potrzebna
Aby zobaczyć opisane w artykule efekty w grach, trzeba mieć kartę graficzną zgodną z bibliotekami graficznymi co najmniej DirectX 9, a najlepiej DirectX 10. Biblioteki DirectX zawierają funkcje wspomagające generowanie gra fiki trójwymiarowej. Najnowszy interfejs DirectX 10 pozwala uzyskać wiele efektów graficznych łatwiej i szybciej niż dotychczas. Możliwość korzystania z DirectX 9 zapewniają modele kart GeForce serii 7 oraz Radeon X1000 (od 300 zł), a z funkcji DirectX 10 – karty GeForce z serii 8 i 9 oraz konkurencyjne dla nich modele Radeon HD 3000 (od 450 zł). Jeżeli komputer jest wyposażony w gorszą kartę graficzną, o uboższych możliwościach, na ekranie nie zobaczymy realistycznych efektów oświetlenia, a w skrajnych przypadkach gra może się nie uruchomić.
Natomiast HDR doskonale oddaje np. wpadające do ciemnych miejsc promienie słoneczne, a gracz może zostać faktycznie „oślepiony”.
Ciekawą i niewymagającą najszybszych kart graficznych odmianą HDR jest efekt bloom, który zastosowano w wielu grach szczególnie na konsole nowej generacji. Dobrym przykładem jest gra The Legend of Zelda: Twilight Princess na konsolę Wii. W grach na komputery biurkowe najczęściej w opcjach można wybrać typ oświetlenia między HDR a bloom.
Efekt bloom jest zwykle realizowany już po wygenerowaniu trójwymiarowej sceny. Powoduje on rozświetlanie światłem z tła ciemniejszych obszarów, jak ściany czy postacie, ale wykorzystuje w tym celu prostsze algorytmy matematyczne niż HDR. Zaletą tej metody jest również to, że może być wykorzystywana do przykrywania mniej szczegółowych obszarów w grze, które z powodu dużego natężenia światła stają się słabiej widoczne.
Mapowanie nierówności
Duże znaczenie w grach ma wierne odwzorowanie wszelkich wypukłości powierzchni, np. chropowatego muru, wyboistej drogi. Jeszcze kilka lat temu do pokrywania większości powierzchni wykorzystywano zwykłe tekstury – jednowymiarowe płaszczyzny. Później dodano proste mechanizmy mapowania nierówności, polegające na nakładaniu dodatkowej tekstury o różnym stopniu jasności pikseli. Nakładano dwie lub trzy tekstury – jedną reprezentującą obraz powierzchni i kolejne jej wersje o ciemniejszych i jaśniejszych miejscach. Zadaniem tej metody było oszukiwanie wzroku graczy, którym wydawało się, że teren jest wypukły, mimo że w rzeczywistości było to kilka płaskich tekstur.
Obecnie w grach, takich jak The Elder Scrolls IV: Oblivion czy Unreal Tournament 3 wykorzystuje się różne odmiany tzw. mapowania przemieszczeń (ang. displacement mapping). Jedną z ciekawszych jest mapowanie offsetowe (ang. parallax mapping).
Od strony technicznej polega to na modyfikowaniu współrzędnych punktów tekstury przy użyciu funkcji trygonometrycznych, czego efektem jest „podnoszenie” punktów ponad płaszczyznę tekstury lub „opuszczanie” ich poniżej. Dla gracza oznacza to, że tekstury, np. cegły na ścianach i kamienny mur, będą wyglądały na bardziej wypukłe czy chropowate, w zależności od tego, pod jakim kątem będzie on patrzył na powierzchnię. Przykładowo w grze Grand Theft Auto IV dzięki zastosowaniu parallax mapping gracz widzi realistyczne dziury po kulach i pęknięcia na ścianach, w które uderzały samochody.
Najnowszą i najbardziej technicznie zaawansowaną wersją mapowania offsetowego jest parallax occlusion mapping. Użyto jej np. w nowym benchmarku 3Dmark Vantage i grze Age of Conan. Technika ta umożliwia bardziej oszczędne wykorzystywanie mocy obliczeniowej karty graficznej. Jest to możliwe, ponieważ informacje o tym, w jakiej odległości od płaszczyzny tekstury znajdują się poszczególne punkty obrazowanej powierzchni, są już gotowe i zaszyte w kodzie gry. Gdy scena jest generowana, dane te są od razu odtwarzane, nie trzeba ich dopiero wyliczać.
Bardziej filmowo
Od kilkunastu miesięcy popularnym efektem w grach jest głębia pola (ang. depth of field). Technika ta polega na rozmywaniu obiektów, które znajdują się na dalszym planie sceny. Modele na pierwszym planie, najczęściej postacie, są natomiast ostre i wyraźne.
Efekt ten znakomicie się sprawdza w F.E.A.R. w sekwencjach filmowych, np. gdy gracz zostaje uderzony i traci ostrość wzroku, czy w grze Gothic 3. Można go także obserwować w demach prezentujących możliwości układów graficznych, np. ATI Ruby.