Horizon Zero Dawn - jak powstała najładniejsza gra 4K na PS4 Pro
Rozmowa Digital Foundry.
Horizon Zero Dawn od Guerrilla Games nie tylko podniosło poprzeczkę pod względem technicznym na obecnej generacji konsol, ale także dostarczyło najlepszą oprawę 4K HDR, jaką zobaczyć można na PS4 Pro. Natywne 1080p na podstawowym sprzęcie skaluje się świetnie do 2160p na mocniejszym modelu. To dzięki autorskiej metodzie szachownicowego skalowania, która generuje jednak obraz tak ostry, solidny i przekonujący, że nietrudno pomylić go z natywnym 4K. Jak to się udało?
Jakiś czas temu Digital Foundry spędziło cały dzień z Guerrilla Games w Amsterdamie, rozmawiają na temat technicznych aspektów produkcji. Rozpoczęliśmy od dyskusji z inżynierem Giliamem de Carpentierem, który opowiadał o początkach prac na PlayStation 4 Pro.
- Zacznijmy od naszego standardowego renderowania 1080p. Kładziemy duży nacisk na wygładzania krawędzi, więc dowolna wybrana technika wykorzystywana do uzyskania 4K musi oferować taką samą jakość - wyjaśnia. - Oczywiście PS4 Pro jest znacznie mocniejsze od zwykłego PlayStation 4, ale natywne renderowanie 4K byłoby zapewne zbyt wymagające.
Wsparcie dla Pro i HDR dodano do Horizon Zero Dawn na stosunkowo późnym etapie sześcioletnich prac nad grą. Twórcy eksperymentowali z kilkoma rozwiązaniami, zestawiając je obok siebie, zanim zdecydowano się ostatecznie na szachownicowe skalowanie 2160p. Jeśli mowa o natywnej wartości, deweloperzy przez jakiś czas testowali 1500p, ale nie byli do końca zadowoleni z efektów. Należy także wyjaśnić, że szachownicowe skalowanie w przypadku tego tytuł oznacza renderowanie połowy pikseli w pełnym 2160p, a następnie uzupełnianie „dziur” z wykorzystaniem informacji z poprzedniej klatki obrazu - proces reprojekcji. Całość zapewnia - według słów de Carpentiera - „natywny poziom detali”, nawet jeśli ostrość jest nieco niższa. Każdy natywnie wyrenderowany piksel - wszystkie w 1080p czy połowa tych z 2160p - zyskuje jednak dzięki wygładzania krawędzi 4x TAA.
- Uznaliśmy, że w naszym przypadku sensowne jest postawienie na metodę renderowania, która daje nam najwięcej detali. Co interesujące, nawet jeśli generujemy tylko 50 procent pikseli każdej klatki, to już po dwóch klatkach obrazu mamy odpowiedni poziom detali, nawet jeśli ostrość jest niższa od natywnego 4K - wyjaśnia inżynier. - Może są jakieś sposoby, by to osiągnąć, ale my koncentrowaliśmy się na detalach, więc w porównaniu z natywnie wyrenderowanym przerywnikiem 4K ostrość nie jest ta sama, ale jeśli spojrzymy na typowy film 4K, to tam również nie ma idealnej ostrości, a linie na krawędziach mają dwa czy trzy piksele grubości.
Jak odróżnić ostrość od detali? Skalowanie czy nie, uruchomienie gry w 2160p pozwala upewnić się, że ładowane są największe i najdokładniejsze mapy szczegółów na teksturach, co nie zawsze musi mieć miejsce w niższych rozdzielczościach natywnych. Co więcej, piksele importowane z poprzednich klatek obrazu także obłożone są wygładzaniem krawędzi 4x TAA. Dzięki temu Horizon Zero Dawn zachowuje równy poziom - aż po horyzont.
- Dla wygładzania krawędzi wolimy stosować cztery próbki na piksel, także w 1080p - wyjaśnia de Carpentier, mówiąc o zakresie informacji zbieranych z okolicznych pikseli w celu wygładzenia tego docelowego. - To ze względu na przezroczystość roślinności. Pojedyncze źdźbła trawy mogą mieć szerokość poniżej jednego piksela, co wprowadzałoby nieprzyjemne artefakty migotania krawędzi. Na bazie 1080p zdecydowaliśmy, że cztery próbki to minimum. Korzystamy także z dwóch poprzednich klatek animacji do wygładzania w 1080p, co jest po prostu wariantem temporalnej reprojekcji.
Balans detale kontra ostrość zmienia się nieco, jeśli porównać wersje PS4 i PS4 Pro. Podstawowa konsola uruchamia grę w natywnej rozdzielczości z czterokrotnym supersamplingiem. Mapowanie pikseli 1:1 przekłada się na ostrzejszy obraz, lecz 2160p to znacznie więcej pikseli, ale wszystkie są pełne detali - przewaga na PlayStation 4 Pro.
- To pewien kompromis - przyznaje de Carpentier. - W naszym przypadku można postawić na szachownicowe skalowanie 1800p, co przełożyłoby się na wyższą ostrość niż szachownicowe skalowanie 2160p. Ale w tym drugim przypadku mamy całe 2160p do wykorzystania, a więc nieco więcej miejsca na dodatkowe detale i tekstury.
Dobry przykład dodatkowych detali to filtrowanie tekstur na PS4 Pro. Nasza wstępna analiza sugerowała, że ta odsłona stawia na wyższy poziom filtrowania, ale tak nie jest. Po prostu przy 2160p - skalowanym czy też nie - taki sam poziom AF próbkuje większe połacie tekstury, więc rezultaty są lepsze.
Co więcej, elementu interfejsu są renderowane w natywnym 2160p, co wykorzystuje część dostępnych zasobów pamięci. PS4 Pro oferuje 512 MB więcej, a deweloperzy postawili na wykorzystanie jak największej porcji tej puli do systemów doczytywania danych, by na ekran ładować tekstury o możliwie najwyższej jakości, co także potęguje ogólny poziom detali.
Co z HDR? Już w czasach PS3 studio z Amsterdamu brylowało w technice high-dynamic range, mapując całość w dół do ostatecznego formatu sRGB. Wydaje się, że dzięki temu wsparcie HDR powinno być teraz drobnostką. Wystarczy przecież - teoretycznie - zrezygnować z mapowania w dół do niższego standardu. Tak jednak nie jest. Gry Guerrilla Games to w dużej mierze dyrekcja artystyczna, a prace nad niektórymi aspektami - jak efekty post-processingu - powstają w SDR, co lepiej pasuje do narzędzi i przyzwyczajeń twórców. Są też inne względy logistyczne.
- Większość użytkowników prawdopodobnie nadal używa telewizorów SDR, więc to był nasz główny cel przy korekcji kolorów - mówi de Carpentier. - To nie znaczy, że nie chcieliśmy przeznaczyć odpowiedniego czasu na poprawki w HDR, ale uznaliśmy, że lepiej będzie skupić się na SDR, a następnie konwertować całość do HDR.
Taka konwersja polega w zasadzie na dodaniu dodatkowego kanału informacji. Taki system sprawdza się nie tylko w przypadku renderowania w czasie rzeczywistym, ale także w pre-renderowanych przerywnikach, które przygotowano w natywnym 4K dla PS4 i PS4 Pro. Problemem było więc zarządzanie rozmiarem tego dodatkowego kanału HDR.
- Podczas zarządzania buforami trzeba bardzo uważać na przepustowość. Dodatkowe informacje zajmują miejsce, co zwłaszcza w przypadku 4K jest niebagatelne. Każdy bit ma znacznie, więc trzeba dokładnie planować cały proces i post-processing, by nie wprowadzić artefaktów na stykach kolorów.
HDR wprowadziło jeszcze inne problemy, związane zwłaszcza z brakiem punku odniesienia. Ten format kolorów nie ma obecnie jednego standardu, więc każdy telewizor zapewnia nieco inne wrażenia. Maksymalna jasność Horizon Zero Dawn to 6 tysięcy nitów przy patrzeniu prosto na słońce, podczas gdy świetny przecież model LG B6 osiąga szczytową jasność na poziomie 560 nitów. Nawet flagowy ZD9 od Sony to maksimum 2,4 tys. nitów. Dostosowanie HDR w grze było więc problemem, ponieważ twórcy po prostu nie mieli sprzętu, na którym sprawdziliby rezultaty.
Prace nad HDR ostatecznie pozwoliły poprawić płynność działania, nie ją pogorszyć. Jak zauważyliśmy w naszych analizach, wersje PS4 i PS4 Pro działają niemal identycznie, nawet jeśli oba modele mają inny zestaw ograniczeń. To ponownie kwestia balansu: Pro może i tylko nieznacznie usprawnia przepustowość pamięci, ale inne obszary GPU oferują drastyczne korzyści.
- Mamy dość głęboki proces renderowania, z typowym podziałem na geometrię, oświetlenie i sporo post-processów - wyjaśnia de Carpentier. - Obliczanie niektórych wartości było w naszym przypadku nawet szybsze w 2160p niż przy 1080p na bazowym PS4, co dało nieco więcej miejsca na post-processing.
Skalowanie do rozmiaru pełnego 4K sprawnie wykorzystało jednak zaoszczędzone moce obliczeniowe. Jednocześnie większym problemem stała się przepustowość, ponieważ więcej pikseli wymagało ładowania więcej danych tekstur.
- Jest kilka sposobów na dobre skalowanie szachownicowe - dodaje inżynier, który wyjaśnia, że Guerrilla przygotowało autorskie rozwiązanie i nie zastosowało standardu Sony. - W zależności od informacji na temat każdego piksela. My przygotowaliśmy rozwiązanie, które nie potrzebuje zbyt wielu dodatkowych danych na piksel, co przełożyło się na korzyści pod względem wydajności w sferze renderowania geometrii i oświetlenia.
Skupiliśmy się na wybitnej metodzie szachownicowego skalowania w Horizon Zero Dawn, ale gra ma także tryb wydajności. Zazwyczaj opcje tego typu po prostu odblokowują liczbę klatek na sekundę, ponieważ przejście z 30 na 60 FPS to zbyt duże wyzwanie. Horizon zachowuje jednak 30 FPS w trybie wydajności, a pomysł polega na tym, by uzyskać lepszą stabilność. Tytuł powstał bowiem na silniku przygotowanym z myślą o 30 Hz, który już przy takiej wartości maksymalnie obciąża procesor. Zniesienie blokady nic by nie dało.
Wszelkie wolne środki CPU przeznaczane są do natychmiastowego ładowania danych uniwersum, co usuwa zacinanie, które widać niekiedy w innych produkcjach z otwartymi światami. Tryb wydajności stawia na absolutną stabilność, zostawia 10 procent mocy obliczeniowych na najbardziej wymagające sceny i obniża natywną rozdzielczość do 1368p. Jest też pewny wzrost ostrości w przypadku niektórych efektów graficznych.
Ale to standardowy tryb wysokiej rozdzielczość zapewnia najlepsze wrażenia 4K, jakie można obecnie znaleźć na konsoli. Nawet przerywniki filmowe działają w natywnym 4K z HDR, a przywiązanie do detali i wygładzania krawędzi wychodzi grze na dobre. Roślinność i inne szczegóły o rozmiarach poniżej jednego piksela wyglądają świetnie aż po horyzont, bez artefaktów i migotania. Tymczasem autorska metoda szachownicowego skalowania nie ma sobie równych. To zostawia nas z ciekawym pytaniem: gdy nadejdą już konsole kolejnej generacji, czy moce jeszcze potężniejszych układów graficznych warto przeznaczyć na „prawdziwe” 4K, skoro istnieją tak dobre metody skalowania i wygładzania krawędzi? Horizon Zero Dawn pokazuje, że drobne obniżenie ostrości przekłada się na ogromne zwycięstwo na polu oprawy graficznej.