Сколько FPS нужно для комфортной игры?



Сколько FPS нужно для комфортной игры? Много FPS мало не бывает )

Сколько FPS нужно для комфортной игры? Сегодня мы рассматриваем один из наиболее часто задаваемых вопросов, который мы встречаем в компьютерных играх. Сколько кадров в секунду вам нужно для комфортной игры? Или это должен быть максимум, который поддерживает монитор. Скажем 60 ФПС на 60 Гц мониторе. Или есть ли выгода для запуска игр на гораздо более высокой частоте кадров, чем ваш монитор может отображать. Скажем, 500 кадров в секунду?

GeForce GTX1070 60 FPS на ПК при игре в Monster Hunter: World

Чтобы ответить на этот вопрос, мы должны немного поговорить о том, как Графический процессор и дисплей работают. Совместно отправляяь кадры в ваши глазные яблоки. И как работают различные технологии, такие как например функция Vsync.

Но суть в том, что запуск игр с чрезвычайно высокой частотой кадров, значительно превышающей частоту обновления вашего монитора, приведет к более отзывчивому игровому процессу. И с более низкой воспринимаемой задержкой ввода. Вот и ответ на вопрос для тех, кто не хочет ждать до конца. Теперь поговорим о том, почему. Ведь детали тоже важны…

Сколько FPS нужно для комфортной игры? — способы отрисовки графики

Предположим, у нас есть монитор с фиксированной частотой обновления 60 Гц. Другими словами, монитор обновляет свой дисплей каждые 1/60 секунды или каждые 16,7 мс. При запуске игры нет гарантии, что Графический процессор сможет отрисовывать каждый кадр ровно за 16,7 миллисекунды. Иногда это может занять 20 мс, иногда это может занять 15 мс, иногда это может занять 8 мс. Это разная природа рендеринга игры на GPU.

При такой различной скорости отрисовки можно выбрать способ передачи каждого отрисованного кадра на монитор. Он может передать новый кадр на дисплей, как только он будет полностью визуализирован. Такой способ известен как запуск игры с Vsync или c Vsync off. Или он может подождать, пока дисплей не будет готов к обновлению перед отправкой нового кадра, известного как Vsync on.

Vsync off

Сколько FPS нужно для комфортной игры?

Использование первого метода, Vsync off, приводит к разрыву в картинке. Это происходит потому, что дисплей не может обновить все изображение мгновенно, вместо этого он обновляет построчно, как правило, от верхней части дисплея к нижней части. Во время этого процесса новый кадр может быть готов с GPU, и поскольку мы не используем Vsync, кадр немедленно отправляется на дисплей. В результате в середине обновления монитор получает новые данные. А все остальные строки на дисплее еще обновляются новыми данными. Затем вы остаетесь с таким вот кривым изображением. Где верхняя половина экрана от предыдущего кадра, а нижняя половина от нового, недавно доступного кадра.

Разрывы изображения

vsynk off картинка

В зависимости от отображаемого содержимого это разделение между новыми и старыми кадрами в одном обновлении представляет собой разрыв. Или видимую линию между старыми и новыми кадрами. Обычно это наиболее заметно в быстро движущихся сценах. Там где есть большая разница между одним кадром и следующим.

В то время как Vsync off действительно приводит к разрыву, он имеет преимущество отправки кадра на дисплей. Это для низкой задержки между GPU и дисплеем. Как только кадр будет готов к визуализации, он сразу же попадает на экран. Имейте это в виду. Может пригодиться.

Vsync on

Vsync on

Альтернативный способ отображения изображения — Vsync on. Здесь, ГПУ не сразупосылает новый кадр на экран. А вместо этого он тасует каждый отрисованный кадр в буфер. Первый буфер используется для хранения кадра, над которым в данный момент ведется работа. А второй буфер — для хранения кадра, отображаемого в данный момент. При обновление происходит обновление второго буфера. Поэтому дисплей отображает данные только из одного полностью отрисованного кадра. И в результате чего Вы не получите разрывов картинки в промежутке между обновлениями готовых кадров.

Vsync on, смотрим поближе

Vsync on, смотрим поближе

Единственная точка, в которой обновляется второй буфер, находится между обновлениями. Чтобы убедиться в этом, Графический процессор ожидает после завершения отрисовки кадра. Пока экран не обновится. Затем он перетасовывает буферы, начинает отрисовку нового кадра. И затем процесс повторяется. Иногда процесс может включать несколько буферов до того, как кадр достигнет дисплея. Но это общая суть того, как Vsync на самом деле функционирует.

Когда ГПУ слишком медленный для визуализации кадра… происходит залипание

Когда ГПУ слишком медленный для визуализации кадра... происходит залипание

Есть две проблемы с Vsync. Во-первых, если ваш GPU рендерит слишком медленно, чтобы поспевать за частотой обновления экрана.  Говорят, что только способен выдать 40 ФПС на 60 Гц дисплей. В подобном случае ГПУ не успевает подготовить полный кадр во время, чтобы успеть к очередному обновлению экрана. Это вызывает заикание или залипание, так как некоторые кадры отображаются только один раз, в то время как другие кадры отображаются дважды.

Vsync on: 60Hz экран, 200 FPS

Vsync on: 60Hz экран, 200 FPS

Вторая проблема возникает, когда Графический процессор работает очень быстро. И при этом может легко отобразить кадр в интервале частоты обновления. Предположим, что он может работать со скоростью 200 кадров в секунду, создавая новый кадр каждые 5 мс. А при этом вы используете дисплей 60 Гц с окном обновления 16,7 мс.

При включенной Vsync ваш Графический процессор завершит следующий кадр, который будет отображаться в 5 мс. Затем он будет ждать 11,7 мс перед отправкой кадра во второй буфер. Который затем будет отображаться на мониторе и запускаться на следующем кадре. Вот почему при включенной Vsync самая высокая частота кадров соответствует частоте обновления вашего монитора. Так как Графический процессор по существу «заблокирован» для рендеринга быстрее, чем Частота обновления экрана.

Вот тут то и возникает много путаницы!

Мы часто слышим такие вещи, как”Блокировка GPU для обновления моего монитора с помощью Vsync велика. Все потому что, если он отображается быстрее, чем Частота обновления, эти кадры тратятся впустую. Потому что монитор не может их показать, и все, что я получаю — одни разрывы». Многие люди указывают на экономию энергии при использовании Vsync. Ведь ваш Графический процессор не должен работать так же усердно, нет никакой пользы для работы с частотой кадров выше, чем Частота обновления монитора. Поэтому работайте с заблокированной частотой кадров в секунду и экономьте немного энергии.

Мы можем понять, почему люди пришли к такому выводу. В этом есть некоторые частицы истины, но это не совсем точно если смотреть в общем. И причина этого в том, что Вы не учитываете время, в которое обрабатываются входящие данные. И сколько времени требуется для того, чтобы они материализовались на дисплее.

Vsync on с учетом поступающих данных

Vsync on с учетом поступающих данных

Чтобы объяснить, почему это так, давайте посмотрим на vsync на схеме. Но с наложение на схему ввода от мыши и клавиатуры, который обычно собирается раз в 1мс. Давайте использовать тот же пример, где у нас есть Графический процессор способный на 200 ФПС с 60 Гц дисплеем.

С помощью Vsync и простой буферной системы в этом упрощенном объяснении Графический процессор начинает отрисовку кадра, соответствующего вводу мыши. Как только он получает этот ввод, в момент времени 0. Затем для визуализации кадра требуется 5 мс, и он ожидает еще 11,7 мс перед отправкой в буфер отображения.

Затем дисплей берет некоторое время, чтобы получить кадр для визуализации. И затем физически обновить отображение построчно с этой информацией.

Графический процессор способный на 200 ФПС с 60 Гц дисплеем

Даже в лучшем случае мы наблюдаем задержку не менее 16,7 мс между вводом и моментом, когда дисплей может начать показывать вам результаты этого ввода. При факторинге задержки ввода дисплея, времени обработки процессора и т. д. Задержка между входом и обновлением дисплея может быть легко более 50 мс.

Vsync off с учетом данных ввода, 60Hz экран, 200 FPS

Vsync off с учетом данных ввода, 60Hz экран, 200 FPS

Теперь давайте посмотрим на диаграмму Vsync off. Графический процессор непрерывно выдает картинку независимо от того, когда дисплей обновляется. ГПУ нужно всего 5 мс, чтобы превратить ваш ввод с мыши и клавы в полный кадр. Затем дисплей может сразу же начать отображать этот новый кадр, хотя он может быть только частью целого кадра. Результатом является разница между вашими вводами данных в игру. И время, когда дисплей может начать показывать результаты этого уменьшается с 16,7 мс до всего 5 мс. И в реальных реализациях не будет никаких дополнительных буферов. А так же лишних задержек и ожиданий. Все появляется на экране почти сразу, за разницей задержки вашего монитора.

И здесь ты получаешь преимущество. В этом примере при 200 кадрах в секунду с отключенной синхронизацией на мониторе с частотой 60 Гц задержка ввода уменьшается до 5 мс. Тогда как при включенной синхронизации эта задержка составляет не менее 16,7 мс, если не больше.

Несмотря на то, что дисплей не в состоянии отобразтьь все 200 кадров в секунду в полном объеме, то, что дисплей показывает каждые 1/60 секунды производится из ввода гораздо ближе по времени к этому кадру.

Это явление, конечно, также относится и к мониторам с высоким обновлением кадров. Например, при частоте 144 Гц вы сможете видеть намного больше кадров в секунду. Так что в целом вы получите более плавный и отзывчивый геймплей. Но запуск при 200 кадрах в секунду с Vsync off, а не 144 кадрах в секунду с Vsync on все равно даст вам разницу между 5 мс и более 7 мс задержки ввода. разница ощутима!

Сколько FPS нужно для комфортной игры?

Теперь, когда мы говорим о миллисекундных различиях, вам вероятно интересно, можете ли вы заметить эту разницу в играх.

В зависимости от типа игры, в которую вы играете, разница может быть любой. От очень заметной до практически никакой. А экшенах, например CS: GO на 400 кадров в секунду на мониторе 60 Гц, с задержкой ввода в лучшем случае около 2,5 мс, игра будет чувствоваться значительно более отзывчивой к движениям мыши. Чем если бы вы запустили эту же игру на 60 кадров в секунду с задержкой 16,7 мс (или более).

CS: GO на 400 кадров в секунду

В обоих случаях дисплей показывает новый кадр 60 раз в секунду. Поэтому игране будет чувствоваться себя так гладко, как на дисплее 144 Гц или 240 Гц. Но разница в задержке ввода огромна. На 400 кадров в секунду вы получите отклик почти в 7 раз быстрее, если не больше. Попробуйте сами и вы обязательно почувствуете разницу в отзывчивости.

И мы не просто высосали это объяснение из пальца, на самом деле Nvidia знает ограничения Vsync с точки зрения задержки ввода. Поэтому они предоставляют альтернативу под названием Fast Sync (альтернатива AMD называется Enhanced Sync). Этот метод синхронизации дисплея как сочетание из Vsync on и Vsync of. Так сказать самое лучшее обоих миров.

Быстрая Синхронизация выполняется путем добавления дополнительного буфера в конвейер Vsync on. Этот буфер называется последним буфером визуализации. Это позволяет GPU продолжать отрисовку новых кадров в задний буфер, переходя к последнему буферу отрисовки по завершении. Затем при обновлении экрана последний отображаемый буфер помещается в передний буфер, к которому обращается дисплей.

Fast Sync / Enhanced Sync

Fast Sync / Enhanced Sync

Преимущество, которое это дает, — GPU больше не ждет после завершения кадра для обновления дисплея. Как нвпример в случае с Vsync on. Вместо этого Графический процессор сохраняет кадры отрисовки. И когда дисплей переходит к кадру в начале периода обновления, этот кадр отрисовывается более близким к окну обновления. Это уменьшает задержку ввода. Однако, в отличие от Vsync off, Fast Sync доставляет завершенный кадр на дисплей в начале каждого обновления. А не просто сразу же отправляет кадр на дисплей. И именно такой метод устраняет разрыв картинки.

Быстрая Синхронизация работает только тогда, когда частота кадров выше, чем Частота обновления дисплея. Но она действительно обеспечивает более отзывчивый геймплей без разрыва. И, конечно же, AMD имеет эквивалент под названием Enhanced Sync.

Надеюсь, это объяснение прояснит некоторые из ваших вопросов о том, почему запуск игры выше максимальной частоты обновления вашего монитора действительно обеспечивает более отзывчивый геймплей. И почему возможность запускать игры с более высокой частотой кадров всегда является преимуществом. Даже если может показаться, что ваш монитор не может воспользоваться этим.

И напоследок: мы не обсуждали адаптивные технологии синхронизации, такие как G-Sync и FreeSync. И это потому, что мы в основном говорим о запуске игр выше максимального обновления экрана. Там где адаптивная синхронизация не применяется. Существует много различных методов синхронизации. Но адаптивная синхронизация сильно отличается от Vsync и Fast Sync, о которых мы говорили. И по крайней мере, для этого обсуждения, на самом деле не сильно актуальна.

Метки:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *