Raport z prac konsolowych #2

Dzisiaj omówimy czas GPU i wpływ różnych czynników na jego skrócenie.

Witajcie!

Przedstawiamy drugą część serii raportów z prac konsolowych! Z poprzednim tekstem, poświęconym polu widzenia i jego wpływowi na działanie gry, można zapoznać się tutaj.

Dzisiaj omówimy czas GPU i wpływ różnych czynników na jego skrócenie.

Czym jest czas GPU?

Najprościej mówiąc, czas GPU to czas potrzebny GPU (jednostce przetwarzania grafiki) na obliczenie jednej klatki. Im więcej obliczeń musi wykonać GPU, tym dłuższy będzie czas GPU. Ma on bezpośredni wpływ na liczbę wyświetlanych klatek na sekundę podczas gry – dłuższe czasy GPU mogą zmniejszyć płynność działania gry. Na czas GPU wpływa wiele czynników, w tym czas potrzebny na renderowanie wszystkich elementów wizualnych gry widocznych na ekranie.

GPU to procesor zajmujący się grafiką. W każdej klatce (wiele razy na sekundę) rysuje na ekranie miliony pikseli. Liczba pikseli obrazu zależy od użytej rozdzielczości. Im jest ona wyższa, tym więcej szczegółów można wyświetlić w każdej klatce, ale też tym większa moc obliczeniowa jest potrzebna.

W porównaniu z najczęściej używaną rozdzielczością 1080p rozdzielczość 4K oznacza 4 razy więcej pikseli. W związku z tym ilość danych, które musi przetworzyć GPU, jest 4 razy większa, co wydłuża czas GPU.

Rozdzielczość dynamiczna

Rozdzielczość dynamiczna to funkcja umożliwiająca dynamiczne zmiany rozdzielczości zależnie od ilości obliczeń, które musi wykonać GPU. Na bieżąco zmienia rozdzielczość z 1440p na 4K, przy zmiennej częstotliwości odświeżania. Jeśli w czasie meczu wystąpi duże obciążenie GPU, rozdzielczość zostanie automatycznie tymczasowo zmniejszona, by gra cały czas działała płynnie.

Na poniższym wykresie możecie zobaczyć, jak rozdzielczość dynamiczna wpływa na czas GPU. Miejcie na uwadze, że na wykresie pokazano czas GPU w milisekundach – nie jest to wykres liczby klatek na sekundę. Dlatego też w tym wypadku im mniej, tym lepiej.
ConsoleReport-GPUTime-1_PUBG_Forum_EN_910x660.png.a05f651ced92701dbae9aa3d38648d4e.png
Czas GPU widoczny na powyższym wykresie obliczono przy użyciu Xbox One X

Czasy GPU wskazują na wzrost szybkości przetwarzania o 20% po włączeniu rozdzielczości dynamicznej. Krótszy czas GPU oznacza, że jednostka graficzna może szybciej przetwarzać każdą klatkę, czego skutkiem jest większa i stabilniejsza płynność gry!

Uwaga: opcja rozdzielczości dynamicznej jest obecnie optymalizowana i pojawi się na PS4 oraz Xbox One w przyszłej aktualizacji.

Usuwanie instancji GPU

Usuwanie instancji GPU jest włączone od wersji 1.0 na Xbox One X i PS4, a od tego czasu wprowadziliśmy wiele usprawnień zwiększających płynność gry. W przyszłości pojawią się kolejne ulepszenia, między innymi w najbliższej aktualizacji głównych serwerów. O nadchodzących zmianach dowiecie się więcej z dalszej części tekstu.

Pamiętajcie, że zbliżające się ulepszenia usuwania instancji GPU wciąż są optymalizowane na PS4 1. generacji, a także na Xbox One i S 1. generacji i zostaną wprowadzone w późniejszym terminie.

Na Erangel, Sanhok i Vikendi nie brakuje gęstych lasów. Dla uzyskania jak największej płynności drzewa oparte na tym samym modelu są renderowane przy użyciu „instancjonowania”. Zmniejsza to moc obliczeniową potrzebną do narysowania jednego drzewa, dzięki czemu GPU może narysować widoczny poniżej las bez czekania na kolejne odwołania (zasobochłonne żądania wykonywania działań przez GPU).

ConsoleReport-GPUTime-2_PUBG_Forum_EN_1856x915.png.4e98e33be298d58b86334bd623ee3c27.png

Zmniejszenie liczby odwołań do GPU dzięki instancjonowaniu możliwie jak największej liczby drzew o tym samym modelu w zasięgu wzroku zmniejsza łączną moc obliczeniową potrzebną do narysowania drzew, co wpływa na poprawę działania gry.

Ale co się dzieje, gdy się przybliży obraz lunetą 8x?

ConsoleReport-GPUTime-3_PUBG_Forum_EN_763x1328.png.027fc48c756bf5ec6ca5ab1322e6e8d0.png
W osiągnięciu oczekiwanej płynności działania gry dużą rolę odgrywa poziom szczegółowości (LOD), ponieważ obiekty rysowane są z różną szczegółowością, zależnie od ich odległości od gracza. W normalnej sytuacji (bez użycia lunety) tylko najbliższe drzewa w obrębie pierwszej instancji są rysowane z LOD 0 (największą szczegółowością), ale kiedy przybliżymy obraz, wszystkie instancje, w tym drzewa widziane przez lunetę, są rysowane z LOD 0, przez co czas GPU znacznie się wydłuża (a płynność gry spada).

Podczas używania lunety zasięg wzroku się wydłuża, żeby odległe drzewa były widoczne ze szczegółami. Na powyższej ilustracji przez lunetę będzie widać tylko 3 do 7 drzew, ale GPU spróbuje narysować każdą instancję, która znajdzie się w polu widzenia gracza. W tym wypadku korzystanie z instancji ma poważne wady, ponieważ powoduje rysowanie niepotrzebnych drzew, podczas gdy bez instancji narysowanych zostanie tylko 7 drzew.

Poziom szczegółowości (LOD) obiektu jest określany na podstawie proporcjonalnych rozmiarów na ekranie, a odległość usuwania obiektów decyduje, czy obiekt zostanie w ogóle wyrenderowany, w zależności od odległości od gracza.

Nadchodzące optymalizacje usuwania instancji GPU mają na celu zwiększenie płynności działania gry zarówno przez nierenderowanie z dużą szczegółowością obiektów niewidocznych na ekranie, jak i przez opracowanie efektywniejszego procesu określania, które obiekty powinny być przetwarzane przy instancjonowaniu i w jakiej kolejności. Ponieważ GPU ma dane na temat wszystkich LOD obiektów, po sprawdzeniu wszystkich instancji tylko modele z niskim LOD zostaną wybrane do instancjonowania. Następnie proces renderowania odbywa się w kolejności od przodu do tyłu. Nazywamy to usuwaniem instancji GPU typu „wybór i przetwarzanie”.

Na poniższym wykresie porównano czas GPU przy włączonym i wyłączonym usuwaniu instancji GPU w rozdzielczości 4K.

ConsoleReport-GPUTime-4_PUBG_Forum_EN_910x659.png.aff27ba4868876a717fef9ba9fcf4918.png

Czas GPU mierzony przy użyciu Xbox One X po przybliżeniu obrazu lunetą 8x

Widzimy zwiększenie stabilności i skrócenie czasu GPU o mniej więcej 30% przy włączonym usuwaniu instancji GPU. Bez niego, czasy GPU są dłuższe i bardziej zmienne.

Mamy nadzieję, że spodobał się wam ten artykuł, i zapraszamy na kolejną część za dwa tygodnie!

Do zobaczenia!
Ekipa PUBG

Dyskusja o artykule
Udostępnij ten artykuł