Как поднять FPS на 25%, почти не ухудшив графику. На примере GTA V

Небольшой лайфхак для тех, кто хочет поднять кол-во кадров в игре. Кому подойдет этот метод:
1. Вы хотите поднять FPS, не снижая настройки графики в игре
2. Вы хотите повысить FPS, но снижать настройки уже просто некуда
3. Вам немного не хватает мощей до 4К, но вы перфекционист и не переносите ничего, кроме Ультра (почему, мистер Андерсон?)

Как поднять FPS на 25%, почти не ухудшив графику. На примере GTA V

Этот метод универсален тем, что подходит и владельцам старых не самых мощных видеокарт, и тем кто метит в 4К. Последним кстати, даже больше. Речь пойдет об уменьшении разрешения внутреннего рендеринга картинки в игре. В целом, есть 2 способа реализации этого метода:

1) Топорный метод. Банальная смена разрешения (например: 1920x1080 -> 1280x720). Но есть неприятные побочки: страдает интерфейс игры, картинка мылится и появляется множества алиасинга (лесенок).

2) In-engine методы (изменения внутреннего рендеринга). Есть во многих современных играх (Battlefield, Apex Legends, Dota, GTA V и др.) Минусы сохраняются: мыло, множество лесенок. Единственный плюс - интерфейс остается четким, т.к рендерится в нативном для монитора разрешении.

Способ, который я опишу, используют например разработчики Wolfenstein. Речь пойдет об изменении разрешения по горизонтали. Предположим, у вас 1920x1080 монитор и вы снижаете разрешение на 25% встроенными методами:

Как поднять FPS на 25%, почти не ухудшив графику. На примере GTA V

Немного математики:
1920 x 1080 = 2 073 600‬ (2,07 млн. пикселей) - исходное разрешение
2 073 600 x 0,75 = 1 555 200 (1,55 млн. пикселей) - фактическое разрешение рендеринга. Разница ~ 25%

Слева направо: 1 - нативные 1080p, 2 - 0,75% разрешения

Вот исходники: нативные 1080 vs апскейл. Какие получаем артефакты:

Уменьшив разрешение всего на 25%, мы получаем: 25% прироста FPS (39 ->50), мыльцо и мнооожество лесенок!

Теперь мой метод (инструкция будет ниже): будем использовать разрешение 1440x1080. Подсчитаем: 1440 x 1080 = 1 555 200 (1,55 млн. пикселей). Аналогично снижению разрешения в самой игре - все те же ~25%. Но результат отличается кардинально:

Слева направо: 1 - изменение рендеринга в игре, 2 - мой метод

Исходники: апскейл vs мой метод. Сравнение в деталях:

Итоговое сравнение результатов (1 - нативные 1080p, 2 - апскейл 0,75% через движок игры, 3 - мой метод):

Что мы имеем по итогу:
1. Нативное разрешение (39 FPS) - круто, но может быть дорого если у вас слабый GPU либо вы метите в 1440p и выше.
2. Апскейл через движок (50 FPS) - мыльцо, много алиасинга, худший вариант. Если у вас 1080 монитор или ниже, категорически не советую. Если выше, уже можно юзать.
3. "Мой" метод (48 FPS). Уменьшаем горизонтальное разрешение на 25%, не поменяв вертикальное. Как итог - даже на 1080 мониторе почти не видно разницы. Почти полное отсуствие артефактов в виде лесенок и мыла. При игре по личным ощущениям выглядит почти как нативные 1080p.

Важно: прирост в 25% будет лишь в случае, если производительность упирается в GPU. В противном случае, результат может и будет отличаться!

Как сделать?

Ничего сложного, покажу на примере Nvidia:

Как рассчитывать? Умножаете горизонтальное разрешение на 0,75. Например у вас 3840x2160. 3840 x 0,75 = 2880 пикселей. Выставляем в панели управления 2880x2160.

Фактически, мы получаем разрешение с соотношением сторон 4:3, поэтому в самой игре не забываем растянуть до 16:9, иначе получится вот так:

Как поднять FPS на 25%, почти не ухудшив графику. На примере GTA V

Ни в одном более-менее популярном гайде на повышение FPS такого не встречал. Надеюсь, я смог хоть кому-то помочь. Особенно тем, кто на слабом железе. Аревуар!

307307
142 комментария

Комментарий недоступен

125

На консолях этот метод в каждой игре используется сегодня

160

RDR2 на PS4 Pro так и работает. Отсюда жуткое мыло и минимальная разница со слимкой.

9

На консоли же нету 60 фпс! Фьють-ха!

5

Комментарий недоступен

3

Скорее безвольно смеются, там-то с низким фреймрейтом  ничего не поделать, мой ковер еще не просох с релиза Control =)

2

Комментарий недоступен

80