Czy konsole nowej generacji pozwolą nam wybrać między 1080p30 a 720p60?
Digital Foundry: Dlaczego wybór między rozdzielczością a płynnością nie jest tak prosty, jak mogłoby się wydawać.
Już sama koncepcja pobudza wyobraźnię. Skoro tak wiele tytułów na konsole nowej generacji celuje w 1080p30, to czemu nie dać graczom opcji wyświetlania obrazu w 720p60? Przecież pecety od dawien dawna pozwalają wybierać między liczbą pikseli na ekranie a płynnością animacji - a zarówno Xbox One, jak i PlayStation 4 bazują na architekturze x86 i GCN.
Idea przehandlowania rozdzielczości na rzecz wyższej płynności opiera się na prostym założeniu: obniżenie fill-rate GPU - czyli liczby pikseli wyświetlanych na ekranie - pozwala uwolnić wystarczającą ilość mocy przerobowej, by sprzęt mógł szybciej przetwarzać klatki animacji, co z kolei przekłada się na płynniejszą zabawę i lepszą, wolną od opóźnień kontrolę nad rozgrywką. Jak dobrze wiemy, deweloperzy opracowujący tytuły na Xbox One często uciekali się do obniżania rozdzielczości, by uzyskać wydajność na poziomie edycji gry na PS4, co udowadnia, że ten znany z pecetów mechanizm można zaadaptować również na konsolach.
Jednak zależność między pikselami a klatkami animacji nie jest tak prosta, jak mogłoby się wydawać. Płynność nie jest uzależniona wyłącznie od fill-rate - na różnych etapach pracy dowolnego silnika mogą pojawić się przeróżne wąskie gardła, i to zarówno w obrębie GPU, jak i poza nim. Co ważniejsze, zależność między liczbą pikseli a liczbą klatek animacji nie ma charakteru liniowego - rozdzielczość to raptem jeden z elementów równania. Innymi słowy, nie ma gwarancji, że gra celująca w 1080p30 poradzi sobie w 720p60. Nawet jeśli rozwiążemy problem liczby pikseli poprzez obniżenie rozdzielczości, to i tak są spore szanse, że w drodze do upragnionych 60 klatek natkniemy się na kolejne przeszkody.
Do wyrenderowania każdej klatki animacji konsola potrzebuje ogromnej mocy obliczeniowej. Pewne etapy tego procesu - jak obliczenia elementów otoczenia - wymagają identycznych zasobów bez względu na rozdzielczość gry, a spadki animacji mogą nie mieć nic wspólnego z liczbą pikseli, a cieniowaniem wierzchołkowym albo zapychaniem się procesora poleceń GPU. Jeśli odsuniemy na bok rdzenie graficzne, sytuacja stanie się jeszcze bardziej kłopotliwa - bo niewykluczone, że za jakiś czas CPU okaże się niewystarczający dla zapewnienia płynniejszej animacji.
„Battlefield 4 na konsolach nowej generacji to dobry przykład tego, jak obniżenie rozdzielczości wpływa na zwiększenie płynności animacji - ale podejrzewamy, że był to raptem pierwszy krok ku optymalizacji gry.”
Przypomnijmy sobie ubiegłoroczne wypowiedzi na temat równowagi sprzętowej, które padły z ust znanego nam dewelopera. Podczas gry CPU przeważnie symuluje scenę, a GPU ją renderuje. Przy 30 klatkach na sekundę CPU i GPU mają 33 ms na wypełnienie powierzonego im zadania - to aż nadto, porównując ten czas do 16ms w grze wyświetlanej w 60 klatkach.
Zejście z 1080p do 720p uwolni nieco mocy przerobowej, ale i tak nie mamy gwarancji, że CPU zdąży wykonać swoje zadanie na czas. A to może zaowocować przestojami; w najgorszym przypadku, zamiast zwiększyć płynność animacji, obniża się efektywność GPU, który generuje brzydszy obraz w niższej rozdzielczości. Taki właśnie efekt zaobserwowaliśmy na naszym pierwszym pececie, który z czasem zaczął lepiej radzić sobie z 1080p30 niż z zablokowanym 720p60, czego wyraźnie dowiodła sesja ze Spec Ops: The Line. Idziemy o zakład, że prosty, niezoptymalizowany mechanizm na konsolach nowej generacji odpowiedzialny za przełączanie między 1080p30 a 720p60 przyniósł podobne, nierzadko mocno rozstrzelone rezultaty.
To realny problem dla konsol nowej generacji, których sześć dostępnych deweloperom rdzeni CPU trudno posądzić o nadmiar mocy. Architektura AMD Jaguar została zaprojektowana z myślą o laptopach i tabletach z niższej półki - a do konsol nowej generacji trafiła wyłączenie ze względu na stosunek wydajności do prądożerności i zajmowanej przestrzeni. Typowe CPU, które trafia do peceta zbudowanego z myślą o grach, oferuje znacznie większą moc obliczeniową. To pozwala zrozumieć, dlaczego mechanizm przehandlowania pikseli na klatki animacji lepiej sprawdza się na komputerach - tam CPU ma po prostu więcej do zaoferowania.
By lepiej wyjaśnić to zagadnienie, wróćmy do zdjęć ilustrujących wydajność z recenzji naszego Core i7 4770K, gdzie porównywaliśmy czipy Haswell i Ivy Bridge. Wszystkie gry odpalaliśmy na najwyższych ustawieniach w 720p na karcie GeForce GTX 780, uprzednio wyłączywszy negatywnie odbijający się na wydajności antyaliasing.
„Pecety tak dobrze radzą sobie ze zamianą wyższej rozdzielczości na większą płynność animacji, dzięki wielkiej mocy współczesnych CPU, które eliminują potencjalne wąskie gardła.”
Wyeliminowanie z równania GPU jako potencjalnego wąskiego gardła i odblokowanie symulacji gry pozwala przekonać się, ile mocy kryje w sobie CPU peceta z wyższej półki. Na takim sprzęcie gry pokroju Battlefielda 3, Tomb Raidera i BioShock Infinite można wyświetlić nawet w 200 klatkach na sekundę. Dlatego porównywanie efektu towarzyszącego obniżeniu rozdzielczości na pececie z potencjalnym rezultatem uzyskanym na konsoli może nie oddawać, ile zasobów tak naprawdę uwolniono - na PlayStation 4 i Xbox One czas CPU to towar luksusowy.
Tworzenie gier na konsole opiera się na umiejętnym rozporządzaniu dostępnymi zasobami i wyciśnięciu ile się da ze sprzętu o stosunkowo skromnej konfiguracji, na co wpływ ma totalna kontrola nad sprzętem. Skoro zatem oddanie w ręce użytkownika zarządzania liczbą pikseli na ekranie nie wydaje się najlepszym pomysłem, to może powinni się tym zająć sami deweloperzy? Taką sytuację świetnie ilustruje Killzone: Shadow Fall.
W trybie kampanii gra jest wyświetlana w pełnym 1080p, przy odblokowanej animacji (w ostatnim patchu twórcy udostępnili możliwość zablokowania jej na poziomie 30 klatek), ale w multiplayerze sprawy mają się już inaczej. Tutaj, dążąc do uzyskania 60 klatek na sekundę, Guerrilla Games zdecydowało się na rozdzielczość 960×1080. W licznych nagraniach z gry obserwujemy, że w trybie dla wielu graczy animacja Killzone oscyluje w okolicach 50 klatek. Różnica jest wręcz namacalna, ale po obcięciu liczby pikseli o połowę można było spodziewać się jeszcze lepszych efektów.
„Tryb multiplayer Killzone Shadow Fall jest wyświetlany w rozdzielczości 960×1080 z wykorzystaniem wysokiej jakości upscalingu czasowego. Pomimo obniżenia liczby pikseli wyświetlanych na ekranie, nie udało się osiągnąć progu 60 klatek.”
Twórcy starali się oczywiście złagodzić cięcia w oprawie. W Shadow Fall zastosowano poziomy przeplot, gdzie do wygenerowania co drugiej kolumny pikseli zaprzęgnięto upscaling czasowy - w efekcie do załatania powstałych dziur wykorzystuje się informacje z gotowych już klatek. O jakości tego rozwiązania najwięcej mówi fakt, że tylko nieliczni dostrzegli upscaling. Możemy też śmiało wysnuć wniosek, że mamy tu do czynienia z techniką dość wymagającą pod względem potrzebnej mocy obliczeniowej. Przy okazji przekonaliśmy się, że drastyczne obniżenie liczby pikseli na ekranie nie gwarantuje sięgnięcia progu 60 klatek. W multiplayerze Shadow Fall animacja nie utrzymuje jednej, stałej wartości - dodatkowa moc obliczeniowa GPU odblokowana dzięki obniżeniu rozdzielczości została ponownie zaprzęgnięta do pracy przy zastosowaniu upscalingu czasowego. To nie rozdzielczość i nie CPU - w czym utwierdziła nas ubiegłoroczna wyprawa do Amsterdamu - uniemożliwiają grze sięgnięcia progu 60 klatek.
Deweloperom zawsze zależy na zapewnieniu graczom jak najlepszych wrażeń z zabawy, a odgórne ustalenie, jakie ustawienia zobaczymy w grze, znacząco ułatwia optymalizację, testy jakościowe i wiele innych, niedostrzegalnych z punktu widzenia gracza etapów pracy nad grą. Optymalizacja gry pod konkretne ustawienia ma po prostu wiele sensu, szczególnie w grach multiplayer, gdzie współzawodniczący gracze muszą mieć równe szanse. Gdyby wprowadzenie rewolucyjnego, poprawiającego wydajność trybu gry było takie łatwe, to najpewniej już zobaczylibyśmy go w grach. Co ciekawe, w poprzedniej generacji konsol, choć tytułów dających graczom możliwość majstrowania przy ustawieniach było stosunkowo niewiele, i tak w większości przypadków najlepsze rezultaty dawały ustawienia standardowe.
Przykładowo, gry z serii BioShock umożliwiały graczom odblokowanie animacji, co pozwalało wyraźnie obniżyć opóźnienie kontrolera, ale kosztem wszechobecnego tearingu i nieprzewidywalnych, dostrzegalnych gołym okiem skoków animacji. Z kolei w Alan Wake's American Nightmare i serii Saints Row deweloperzy zaimplementowali v-sync - w teorii miły dodatek, ale w praktyce mający niewielkie zastosowanie w grze wyświetlanej poniżej progu 30 klatek na sekundę. Ogólnie rzecz biorąc, powiedzielibyśmy, że jeśli przykładamy większą od dewelopera wagę do 60 klatek, to może czas zastanowić się nad zmianą platformy.
„Dotychczas dostępne na konsolach opcje graficzne były mocno ograniczone, a najlepsze wrażenia z rozgrywki i tak oferowały ustawienia wyjściowe.”
Piękno pecetów bierze się stąd, że użytkownik może dowolnie skonfigurować sprzęt i oprogramowanie, dopasowując obie strony równania do swoich potrzeb. I przeważnie tak właśnie jest - dopóki dysponujesz wystarczającą mocą obliczeniową pozwalającą pokonać ograniczenia narzucane przez silnik gry. Ale zdarzają się też sytuacje, gdy optymalizacja ustawień graficznych pod swój system może okazać się nieprawdopodobnie frustrującym zadaniem - do tego stopnia, że dostępne opcje sprawiają wrażenie nieprzemyślanych.
Przyjrzyjmy się Crysisowi 3. Dwa pierwsze poziomy gry stawiają bardzo różne wymagania pod względem mocy obliczeniowej; czas poświęcony na skrupulatną optymalizację rozgrywki na jednej mapie może pójść na marne, gdy odkryjemy, że już za chwilę - lub poziom później - nieporównywalnie wzrasta obciążenie GPU. Również sam ekran ustawień jest tym trudniejszy w nawigacji, że nie wiemy, jak poszczególne opcje odbijają się na obciążeniu GPU oraz ile zyskamy, a ile stracimy, majstrując przy poszczególnych ustawieniach. Na dodatek nigdy nie wiadomo, gdzie może kryć się wąskie gardło.
Ale to nie wszystko: zdarzają się sytuacje, gdy optymalizacja nie przynosi - przynajmniej w naszym przekonaniu - żadnych efektów. Za przykład niech posłużą tu Assassin's Creed 4 i Call of Duty: Ghosts. Śmiało moglibyśmy założyć, że na naszym redakcyjnym komputerze wyposażonym w Core i7 podkręcony do 4.3 GHz i Radeona R9 290X uda nam się odpalić te gry w stałych 1080p60. Ale nic z tego, i to pomimo licznych prób zoptymalizowania gry.
„Wprowadzenie pecetowych ustawień graficznych na konsolach to nie najlepszy pomysł. Sądzimy za to, że twórcy powinni skupić się na optymalizacji, która zapewniłaby płynną rozgrywkę na komputerach.”
Dlaczego? Tego nie wiemy - nie mamy pojęcia, gdzie pojawiły się wąskie gardła. Większą korzyść od wyrwanych z kontekstu ustawień graficznych przyniosłoby wprowadzenie „pokojów testowych”, w których moglibyśmy w czasie rzeczywistym przetestować wydajność najmocniej obciążających CPU i GPU partii gry i skalibrować pod nie swój komputer. Takie automatyczne narzędzie kalibrujące mogłoby okazać się naprawdę pomocne - podobnie jak zastosowana w Killzone Shadow Fall blokada liczby pikseli na ekranie - w osiągnięciu większej płynności rozgrywki. Z entuzjazmem przywitalibyśmy też wsparcie dla adaptacyjnego v-syncu (obecnie z niewiadomych przyczyn dostępnego wyłącznie na GPU Nvidii, gdzie zakopano go głęboko w panelu kontrolnym).
Ponieważ sami preferujemy gry w 60 klatkach, dobrze rozumiemy frustrację graczy rozczarowanych next-genowymi tytułami wyświetlanymi w połowie ramki. Znając architekturę nowych sprzętów nietrudno jednak zrozumieć, dlaczego deweloperzy nadal podążają ścieżką 30 klatek - zawsze winna jest liczba pikseli na ekranie. I chociaż zależność między 720p60 a 1080p30 wydaje się dość prosta, w rzeczywistości obniżenie rozdzielczości niekoniecznie zapewni sięgnięcie progu 60 klatek.
Gracze pecetowi dysponują szeroką paletą opcji pozwalających im dostosować rozgrywkę do swoich potrzeb. Poza pokaźną inwestycją finansową w nowy sprzęt, równie ważne jest uważne zarządzanie opcjami graficznymi - ale nawet wtedy rezultaty mogą rozczarować. Obecnie składamy peceta „nowej generacji” dla Digital Foundry, a o rezultatach naszej pracy mamy nadzieję poinformować już wkrótce. Z naszych wstępnych testów wynika jednak, że osiągnięcie rezultatów rodem z konsol nowej generacji nie jest ani specjalnie trudne, ani kosztowne. Jednak w kilku kluczowych przypadkach urzeczywistnienie wizji prawdziwie rewolucyjnego 1080p60 wcale nie jest tak proste, jak mogłoby się wydawać...