Call of Juarez: Bound in Blood: grafika od technicznej kuchni

Call of Juarez: Bound in Blood: grafika od technicznej kuchni
19.09.2010 08:59
marcindmjqtx
marcindmjqtx

Przed każdym projektem pojawia się wyzwanie: jak zrealizować wizję stworzoną przez dział Concept Art tak, aby nie stracić tego, co w niej najważniejsze, a jednocześnie sprostać ograniczeniom technologii. Te drugie potęgują się w przypadku tworzenia gier mulitplatformownych - każda z platform dokłada swoje. Gdy zaczynaliśmy prace nad Bound in Blood, mieliśmy już doświadczenia z konwersji pierwszej części z PC na Xboksa 360. Tym razem chcieliśmy od razu wyprodukować tytuł na trzy platformy: PC, 360 oraz dodatkowo PS3, które w obiegowej opinii było "mało przyjazne deweloperom", a dla nas zupełnie nowe.

Na początek - wyzwanie Bardzo szybko okazało się, że tworzenie równolegle na wszystkie platformy jest znacznie bardziej skomplikowne, niż konwersja gotowego produktu. Jakby tego było mało, od samego początku chcieliśmy, aby wszystko wyglądało tak samo dobrze na każdym sprzęcie. To musiała być ta sama grywalność, te same elementy graficzne, mapy - nieważne do jakiego napędu włożysz płytę, grasz w Call of Juarez: Bound in Blood, a nie w jej odmianę dla danej platformy. Ze względu na to od samego początku musieliśmy jednocześnie uwzględnić ograniczenia wszystkich platform przy ustalaniu wytycznych, co do sposobu tworzenia grafiki.

Początkowo wydawało się,  że ograniczenia pamięciowe konsol będą miały bardzo negatywny wpływ na jakość grafiki na topowych PC. Jednak świadomość tego, że "pamięć należy szanować" spowodowała, że dokładaliśmy większych starań do tego, aby wykorzystywać ją w jak najlepszy sposób. Musieliśmy zrewidować dotychczasowe sposoby teksturowania obiektów, rozwinąć czy wręcz opracować nowe technologie pozwalające uzyskiwać lepszą jakość przy mniejszym zapotrzebowaniu na pamięć. Przykładowo, zrezygnowaliśmy z tradycyjnej metody teksturowania, w której obiekt zazwyczaj wykorzystuje jeden zestaw tekstur w dużej rozdzielczości - zredukowaliśmy rozdzielczość podstawowych tekstur, ale dodaliśmy więcej tekstur z detalami. Dzięki temu zabiegowi uzyskaliśmy dwa pozornie sprzeczne ze sobą efekty: jeszcze większą dokładność przy równoczesnym zmniejszeniu zapotrzebowania na pamięć.

Rzecz jasna, uzyskanie pożądanego efektu wymagało znacznie więcej wysiłku, ale dzięki temu gracze na PC mieli gwarancję, że dostają produkt zoptymalizowany i nie będą musieli zrujnować finansów na upgrade sprzętu, żeby cieszyć się piękną, działającą płynnie grą. Oczywiście w tym miejscu posiadacze wypasionych komputerów oburzą się, że nie wykorzystaliśmy pełnej mocy ich sprzętu. Chciałbym ich uspokoić: nie rezygnowaliśmy z atutów poszczególnych platform i tak na przykład na PC dodawaliśmy specjalnie obsługę kart połączonych w SLI/Crossfire, dzięki czemu liczba klatek na sekundę prawie się podwajała. Z kolei na PS3 wykorzystywaliśmy SPU do przetwarzania geometrii, a na 360 między innymi specjalne formaty buforów ekranu. Przy tej okazji nie da się nie zauważyć jednej ogromnej zalety konsol jako systemów zamkniętych - niezmienności konfiguracji. To jest ta druga, pozytywna strona , braku możliwości dołożenia pamięci, wymiany procesora czy karty graficznej. Stała i niezmienna konfiguracja pozwala na analizowanie wydajności z dokładnością do pojedynczego cyklu zegara - w przypadku PC, sprzętu o niemal nieskończonej ilości konfiguracji sprzętowo-programowej, jest to niemożliwe. Z tego atutu korzystają producenci konsol dostarczając producentom gier fenomenalne narzędzia profilujące - kto raz używał takich narzędzi jak PIX lub GPAD, nie będzie mógł zrozumieć, jak obywał się bez nich wcześniej w projektach dla "pieców".

Trzeba w tym miejscu zaznaczyć,  że dobre narzędzia dla PS3 pojawiły się dopiero pod koniec produkcji drugiego Call of Juarez, a mimo to Bound in Blood było jedną z pierwszych gier wieloplatformowych, która miała tak samo szczegółową grafikę na wszystkich platformach - wiele tytułów wydawanych na kilka platform miało na przykład ścinane tekstury na PS3. Obecnie narzędzia na obu konsolach są na podobnym poziomie, co przekłada się na wyrównaną jakość - rzadko zdarzają się gry, które wyglądają wyraźnie gorzej na jednym ze sprzętów.

Otwartość i nieprzewidywalność jest bezpośrednim powodem, dla którego pecety o teoretycznie porównywalnej z konsolami mocy generują gorszą grafikę - nie sposób zoptymalizować kodu w takim samym stopniu. Gdy rozpoczynaliśmy prace nad CoJ: BiB, moc obliczeniowa konsol była porównywalna z przeciętnymi domowymi komputerami, a - jak wcześniej wspomniałem - narzędzia dla deweloperów nieporównywalnie lepsze. Obecnie sytuacja drastycznie się zmieniła - DirectX 11 i rozwój sprzętu w połączeniu ze spadkiem cen spowodował, że nawet PC ze średniej półki jest o wiele mocniejszy, niż leciwe już PS3 i 360.

Next-genowy kurz Nie jest żadną tajemnicą,  że widowiskowe, "ociekające technologią" gry najłatwiej robi się w klimacie SF lub fantasy, gdzie łatwo i bezpiecznie można popuścić wodze fantazji. Jak uzyskać to na zakurzonym dzikim zachodzie? Na pierwszy rzut oka: mission impossible - wszystko jest przykurzone, matowe, żadnych jezior płonącej lawy czy chociażby wilgotnych, zamkowych murów, na których można by pokazać zaawansowane oświetlenie. Nie chcieliśmy rezygnować z technologii, zwłaszcza, że od czasów pierwszej części Call of Juarez mocno ją rozwinęliśmy.  Z drugiej strony nie mieliśmy zamiaru naginać klimatu dzikiego zachodu pod technologiczne fajerwerki. Musieliśmy znaleźć sposób aby oba te elementy wspierały się wzajemnie.

Jedną z metod był  bardzo precyzyjny dobór materiałów. Przykładem może być zwykła, drewniana ściana. Zamiast równych, jednolitych desek z pierwszego lepszego zdjęcia, w finalnej teksturze użyliśmy zachodzących na siebie desek o różnej szerokości. Do tego dodaliśmy łuszczącą się farbę, której kolor mogliśmy zmieniać dynamicznie dla każdego obiektu, a dodatkowo w miejscach pomalowanych użyliśmy innego detalu, innego modelu oświetlenia. Dużą uwagę przywiązywaliśmy również do tego, aby wybierane przez nas materiały były "nadgryzione zębem czasu" - czyli stare i podniszczone. W przeciwieństwie do rzeczywistości, w grze takie elementy są znacznie bardziej atrakcyjne.

Bardzo szybko okazało się,  że ta "zakurzona matowość" może się okazać  bardzo użyteczna, gdy zderzy się ją z np. z mokrymi powierzchniami lub błyszczącymi elementami. Świetnie to widać na przykładzie zwykłej drewnianej beczki z metalowymi obręczami - kontrast między połyskliwym metalem a matowym drewnem powoduje, że zastosowana na nich technologia jest jeszcze lepiej wyeksponowana.

Efekt takich drobnych szczegółów jest znacznie mocniejszy niż ten, który uzyskalibyśmy rozrzucając na siłę graficzne fajerwerki po całej scenie. To zderzanie ze sobą różnych typów materiałów zaczęliśmy szeroko stosować w różnych miejscach, począwszy od tła, poprzez broń, a na postaciach kończąc (np. metalowa zbroja Raya).

Nie ograniczyliśmy się  tylko do poszczególnych elementów sceny, tą samą zasadę kontrastów postanowiliśmy wykorzystać także na poziomie całych lokacji. Dobrym przykładem jest poziom Murder in Utah. Dominujący na tej mapie ulewny deszcz świetnie kontrastuje z bardziej stereotypowymi, spalonymi słońcem levelami. Ten konkretny poziom udowodnił nam, że wystarczy trochę odejść od kliszy, by stworzyć naprawdę spektakularną lokację na dzikim zachodzie.

Od czasów gry Chrome stawialiśmy na otwartość kreowanych przez nas światów. W Bound in Blood chcieliśmy pójść o krok dalej - taki Wielki Kanion był ku temu świetną okazją. Na bazie Concept Artów oraz dostępnych referencji stworzyliśmy wielki, kilkunastokilometrowy model kanionu, przy teksturowaniu którego podpieraliśmy się zdjęciami satelitarnymi. Efekt, w połączeniu z dynamicznym oświetleniem i atmosferą, przeszedł nasze oczekiwania: wiele osób w pierwszym momencie twierdziło, że tło jest "płaska bitmapą". Opracowaliśmy system dynamicznie zmieniających się chmur, które przemieszczając się rzucały "ślizgające" się po geometrii cienie, pokazując tym samym że jest to prawdziwa trójwymiarowa scena, a nie płaska dekoracja.

Realizm spotyka wizję W pierwszej części Call of Juarez bardzo dużą wagę przywiązywaliśmy do "poprawności fizycznej" naszego renderingu - realistycznego oświetlenia, efektów atmosferycznych itp. Poprawne fizyczne modele dają bardzo dobre rezultaty, jednakże jest cała masa sytuacji niemożliwych do uzyskania w rzeczywistości, które są jednak bardzo atrakcyjne i chcielibyśmy je mieć w grze. W Bound in Blood postawiliśmy na pełną kontrolę nad generowanym obrazem. Skorzystaliśmy z tego, że to my decydujemy, jakie reguły obowiązują w stworzonym przez nas świecie. Przykładowo w pierwszej części Call of Juarez, korzystaliśmy z poprawnego fizycznie modelu atmosferycznego (scattering), połączonego z równie poprawnym HDRem. Uzyskiwane efekty były bardzo dobre, ale musieliśmy cały czas pamiętać o ograniczeniach, które odziedziczyliśmy "w pakiecie" z takimi systemami. W CoJ: BiB zmieniliśmy cały model oświetlenia na rzecz swobodnego decydowania o parametrach nieba, mgły, efektów atmosferycznych, kolorów, zasięgów i rodzajów oświetlenia. To z kolei dało naszym artystom wolną rękę w kwestii kreowania całościowej wizji "wyglądu" gry.

Realizm ustąpił kreatywnej swobodzie także w kwestii post-procesu. Za przykład może posłużyć efekt głębi ostrości (Depth of Field). W Bound in Blood rozbudowaliśmy parametry sterujące, tak, aby łatwo się tym sterowało zarówno w przerywnikach filmowych, jak również podczas samej gry. System ten dawał tak dużą kontrolę, że zbudowanie rzeczywistego układu optycznego z porównywalnymi możliwościami byłoby ekstremalnie trudne - oto jedna z zalet pracy w wirtualnym środowisku.

Zwiększenie kontroli nad generowanym obrazem to dopiero początek. Sterowanie tym wszystkim musiało być  wydajne i łatwe w obsłudze dla grafików. Chcieliśmy oddać im do rąk narzędzia, z którymi pracują na co dzień. To zaowocowało na przykład dodaniem do post-procesu takich mechanizmów, jak krzywe czy poziomy, doskonale znane na przykład z Photoshopa. Dzięki temu efekty wypracowane na grafice koncepcyjnej można było natychmiast i z identycznym skutkiem nałożyć w grze.

Technical art to nieco tajemnicza dziedzina, która łączy głębokie zrozumienie działania sprzętu i programowych narzędzi z artystycznym wyczuciem grafiki, oświetlenia i efektów. Co więcej, niezbędne jest pozostawanie na bieżąco i wybieganie w przyszłość w obu tych dziedzinach. Zarówno na początku produkcji, kiedy zsyła się grafikom "kamienne tablice" z technicznymi wytycznymi, jak i na końcu, kiedy z konsol i PC wyciskane są ostatnie poty, programiści grafiki mogą odcisnąć swój ślad na ostatecznym kształcie gry.

Maciej Jamrozik

Lead Technical Artist

Techland

Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Udostępnij:
Wybrane dla Ciebie
Komentarze (0)