Адептам "120 ФПС на 60-герцовом мониторе" посвящается

Здравствуйте. На написание этого блога меня вдохновила тема на форуме, в которой обсуждалось, влияет ли на комфортность игры количество кадров в секунду (к/с), выдаваемых видеокартой (назовём его для краткости - фреймрейт) если оно выше частоты кадров, которую может отобразить монитор. Давайте попробуем разобраться, какой фреймрейт комфортнее на 60-герцовом мониторе: 100  кадров в секунду без ограничений или 60 с вертикальной синхронизацией. Так ли заметно увеличение фреймрейта выше 60 к/с, или это просто самовнушение? Попробую объяснить "на пальцах", не вдаваясь в технические подробности.
Для начала вспомним, как подготавливается и отображается кадр.
Сначала система опрашивает органы управления - клавиатуру, мышь, геймпад и т.п. Затем на основе этих данных начинается рассчёт кадра. Когда он закончится, готовое изображение попадает в кадровый буфер видеокарты, откуда уже передаётся на монитор для отображения. Далее система снова опрашивает органы управления, и процесс повторяется. Рассмотрим 3 случая:

  • 1. Фреймрейт ниже частоты монитора (36 к/с).
  • 2. Теоретический фреймрейт выше частоты монитора (100 к/с), но ограничен вертикальной синхронизацией на 60 к/с.
  • 3. Фреймрейт 100 к/с, без ограничений.

Время отрисовки кадра монитором я приму равным времени периода одного кадра. На самом деле, оно может сильно отличаться как в большую, так и в меньшую сторону. Оно складывается из времени передачи изображения к монитору, задержки на буферизацию, времени отклика матрицы. Чем выше разрешение картинки, тем дольше она будет передаваться по кабелю. Для Full-HD это чуть меньше периода кадра. Для меньших разрешений, соответственно, меньше, для больших - больше. Задержка буферизации сильно отличается у разных моделей и может составлять от нескольких миллисекунд до десятков и даже сотен. Так же и время отклика матрицы может варьироваться от 2-3 до 12-20 мс. Чтобы исключить все эти условности я буду считать время отрисовки кадра монитором равным 17 мс. Почти идеальный монитор. Для удобства восприятия разные кадры раскрашены разными цветами.

На первом рисунке ниже представлен первый случай, фреймрейт 36 к/с.

На первом графике вверху показано время опроса органов управления (Упр.), внизу время отклика (Откл.) в миллисекундах. На втором графике показано время рассчёта кадров системой, штрихом показан момент передачи изображения в кадровый буфер. На третьем графике показан процесс передачи данных к монитору и отображение кадра. Разница между моментом опроса органов управления и моментом появления готовой картинки на мониторе - есть время отклика, показанное цифрами на первом графике. Итак, из графика видно, что часть кадров показывается на мониторе дважды, часть - один раз. Из-за этого изображение выглядит дёрганым и ощущается некомфортно. Среднее время отклика 50 мс.

На втором рисунке представлен второй случай. Включена вертикальная синхронизация, фреймрейт 60 к/с.

Система начинает опрос органов управления и расчёт следующего кадра только тогда, когда предыдущий кадр начал передаваться на монитор. Из графиков видно, что каждый кадр отображается строго один раз. Время отклика постоянное и равно 33 мс. Изображение идёт плавно, без рывков.

Но что будет, если мы отключим вертикальную синхронизацию? Станет ли играть комфортнее? На третьем рисунке представлен третий случай. Вертикальная синхронизация отключена, система выдаёт свои максимальные 100 к/с.

На первом графике видно, что среднее время отклика немного снизилось, и казалось бы, играть будет комфортнее. Но что случилось с плавностью картинки? На третьем графике видно, что монитор всё так же показывает свои 60 кадров в секунду. И часть кадров, выдаваемых системой он пропускает. Как это скажется на плавности? Допустим, вы плавно поворачиваете камеру. За каждый кадр, выдаваемый системой, камера поворачивается на 5 градусов. А монитор показывает кадры 1-3-5-6-8-10-11-13-15-16-18. Таким образом, камера на экране монитора поворачивается на 10-10-5-10-10-5-10-10-5-10 градусов. Понятно, что изображение при этом будет идти не плавно, а с рывками, хоть и менее заметными, чем при низком фреймрейте. С включённой же вертикальной синхронизацией камера будет плавно поворачиваться на 8 градусов за кадр.
Кроме того, пользователя в этом случае подстерегает ещё одна проблема. Дело в том, что изображение на монитор передаётся не мгновенно, а занимает до половины периода кадра при FullHD и даже больше при более высоких разрешениях. Если в момент передачи текущего кадра видеокарта досчитает следующий и загрузит его в кадровый буфер, то монитор получит часть первого кадра и часть второго. Из-за этого на изображении появляются неприятные разрывы.

Выводы.

С включённой вертикальной синхронизацией изображение движется плавно, без рывков. С выключенной немного снижается время отклика на действия игрока, но движения становятся менее плавными и появляются разрывы изображения. Стоит заметить, что при низком фреймрейте, его увеличение до 60 к/с даёт весьма ощутимое улучшение отклика и плавности. Так, увеличение фреймрейта с 36 до 60 к/с (на 67%)  снизило время отклика на 17 мс с 50 до 33 мс, на 33%. В случае же повышения фреймрейта с 60 до 100 к/с (на те же 67%), время отклика снижается всего на 3 мс или на 9%, с 33 до 30 мс. Заметно ли это на глаз? Я сомневаюсь. В противовес мы получаем рывки, разрывы изображения, большее энергопотребление и нагрев системы, повышение шума и уменьшение ресурса. Стоит ли игра свеч, пусть каждый решает сам для себя. А что вы думаете по этому поводу?

33
42
Комментарии:  42
Ваш комментарий

В сетевых шутерах ниже 100 фпс вообще нечего делать на все остальное хватает 60 кадров

Kamishini1993 ты серьезно видишь разницу между 60 и 100 кадрами? Твой глаз успевает запечатлеть разницу между 60 и 100?

Kamishini1993, вот только толку от них на 60-герцовом мониторе? Я постоянно играю в CS:GO и постоянно читаю вонь, что менее чем 100 кадров - это не играбельно. Вот только сколько тестировал, что при 60, что при 300 FPS - разницы ноль. Так что в итоге заблокировал на 70 и пускаю мимо ушей эти пустые россказни про инпутлаг. А бессмысленно нагружать видеокарту особо не желаю.

Димка Ребров Да вы угораете?! Херли вы минусуете правду, у человека зрение больше 1000 кадров в секунду, ну а по поводу игр вы хотите, чтобы человек видел разницу между 60 и 100, да не видит он разницы!!! Епт, школьники одумайтесь прежде чем минусовать! А прочтите учебник по биологии за 6 класс, там как раз про человеков всё рассказыват xD

В современном неоптимизированном говне синхронизацию включать - себе дороже.

ХЗ, мне хватает 60 с вертикалкой. Хотя 120 на 120 герцовом монике наверняка лучше.

Бомбардировщик

Бомбардировщик написал: 120 на 120 герцовом монике наверняка лучше.

Может и лучше, но в современных играх типа ведьмака 3 ты эти 120 фпс не увидишь даже на титане.

Damnash ну в ведьмаке они и не нужны а вот во всяком сетевом рубилове типа контры да тим фортерса 120 фпс достижимы

На глаз - разницы 0. А вот инпутлаг чувствуется. В том же Overwatch 90+ фпс комфортнее.

Да от игры ещё многое зависит. В батле вобще не чувствую никаких рывков с откл. всунк. Очень плавно всё. А вот в фар круе примал там наоборот, дерготня начинается. В деус экс менкинд дивидед тоже рывки во всю без всунка

Плотва of Rivia В играх юбисофта проблемы с этим. Начиная с 3 части Assassin's Creed и далее.

Много ненужной инфы,если моник 60 герц,то он соответственно и обновит картинку 60 раз в секунду,даже если ФПС будет показывать 70-80 и тд.Все просто.

warp 37 написал: В современном неоптимизированном говне синхронизацию включать - себе дороже.

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

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

Т.е отключать вертикалку в шутанах, ставить 120 ФПС ? Тройную тоже оффать ?

О боги, ответ на мой комент 2016 года ) Вертикальную синхронизацию отключай. Если увидишь, что картинка начинает "рваться" по центру, при повороте камеры влево вправо, то включай обратно. Но при высоких фпс тиринг либо не заметен, либо отсутствует совсем.

На счет тройной, ты видимо перепутал с тройной буферизацией. Не трогай её.

вертикальный синхроимпульс поставил в режим "Быстро" . иногда 120фпс помогает . если игра нормально оптимизирована . Но преимущество так себе ,когда на европейских серверах играешь. Лучше,чем 60 фпс но не на столько,что эффект увау. Честно говоря, куплю себе как-нибудь монитор лучше новый.

Тут нечего обсуждать. Если включить Vsync то будет задержка ввода, что для сетевых шутанов и для многих сингловых неприемлемо, а если просто ограничить 60фпс то будут жуткие разрывы. Вывод: При 100фпс задержка меньше и разрывы меньше, тут вообще без вариантов.

Читал я сию статью, но так и не понял: при игре на 120 Гц мониторе в игру, у которой стоит ограничение на 60 к\сек, будет ли заметно улучшение изображения или можно тупо выставить в настройках монитора 60 Гц и не заметишь никакой разницы? Субъективно, отличия есть и весьма заметные. То есть при игре на 120 Гц мониторе, но с искусственным ограничением кадров в секунду не более 60 глаза чувствовали себя комфортно, но стоило мне выставить 60 Гц и те же 60 FPS буквально через пару минут вызвали неприятные ощущения в глазах.

Filis На любом мониторе лучше если комп выдаёт фпс не меньше, чем поддерживает монитор. Т.е. на 120-герцовом монике 120 фпс лучше, чем 60. Но в блоге я рассматривал только случаи с 60-герцовыми.

ЗАГРУЗИТЬ ВСЕ КОММЕНТАРИИ