Каждый из вас сталкивался с проблемой, когда игры на вашем компьютере начинали тормозить, и счастливый тот человек, у которого есть на руках деньги на новое железо. Сегодня постараемся разобраться какую "Частоту кадров"(далее FPS) можно считать достаточной, и насколько большую частоту кадров может различить человек. Что такое "Золотой стандарт" и для чего он нужен именно вам?
Большинство из вас понимает частоту кадров, как количество сменяемых изображений за одну секунду видеопотока.
Все просто.
Какую максимальную частоту кадров может различить человек?
Не существует такого значения, это миф. Если вы живете с этим мифом в голове, то вас ждут большие прения с самим собой во время чтения материала ниже. Человеческий глаз состоит из множества рецепторов, которые постоянно направляют информацию в мозг. Вы не можете назвать ни количество рецепторов, ни пропускной способности до мозга, поэтому выбросите из головы этот миф. Если бы такое количество существовало, это было бы доказано наукой.
Взаимодействие монитора и видеокарты
Для начала важно донести до вас два простых понятия.
Частота кадров/FPS(англ. Framerate, далее FPS) - количество кадров обработанных вашей видеокартой за секунду. Это абсолютно хаотичная величина, которая зависит от ваших текущих задач, мощности видеокарты, загруженности сцен, общего обслуживания компьютера и т.д. За короткий промежуток времени в одной и той же игре частота кадров может сильно разниться, может быть как высокой, так и низкой.
src="//coub.com/embed/eaddv?muted=true&autostart=false.." allowfullscreen="true" frameborder="0" width="750" height="440">
Нагружаем сцену, и наши FPS тают на глазах.
Чем же так важен высокий показатель FPS ? Дело в том, что при низком показателе FPS картинка станет дерганой, и мы не сможем увидеть плавные движения или отдельно взятые изображения.
При постоянном FPS можно посчитать время обработки одного кадра : при 30 FPS - 33 миллисекунды, при 60 FPS - 16 миллисекунд. Можно сделать вывод : двукратное увеличение FPS требует двукратного увеличения скорости обработки одного кадра.
Частота обновления монитора(англ. Refresh rate) - частота с которой ваш монитор обновляет все свои пиксели. И в отличие от FPS, частота обновления монитора (далее "герц", потому что так проще и короче, не придавайте слову "герц" особого значения) фиксированная, другими словами постоянная. Если ваш монитор с 60 герцами, раз в 1секунда/60герц =16.6 миллисекунд происходит мерцание экрана и смена кадра. Вы должны помнить наблюдение из детства, а у кого-то из юношества, когда мы направляли первые телефоны с камерой на телевизоры оснащенные электронно-лучевой трубкой. Вы видели мерцание, в наших ЖК-мониторах тоже самое, но мы это не замечаем.
Из этого мы делаем вывод, что частота кадров и "герцы" не на одной волне. И когда монитор производит смену кадра он выводит то, что у него в данный момент в "буфере". Буферной зоной назовем место, где монитор хранит готовый кадр на вывод(на деле технология может отличаться, но суть та же).
Для примера взаимодействия мы возьмем монитор с частотой 60 Гц.
Рассмотрим 3 случая
1. Среднее количество FPS не превышает вашу частоту монитора 60 Гц.
В период между мерцаниями вашего монитора источник-видеокарта направляет в буфер не больше одного кадра. Чем сильнее будет проседать FPS, тем чаще мы будем сталкиваться с тем, что обновление монитора не обновляет кадр.
После того как ваш кадр отрендерится, он моментально отправляется с видеосигналом в буфер. Когда настает время, наш герц выводит содержимое буфера на экран.
2. Среднее количество FPS превышает вашу частоту монитора 60 Гц.
Здесь уже посложнее, количество FPS на одно мерцание монитора.(далее - вычислительный отрезок)
Другими словами Хаос с большей буквы. Ваша видеокарта успевает отправить больше одного кадра на одно мерцание монитора.
Проиллюстрирован случай, когда вы имеете 300+ FPS. В период между обновлением монитора источник-видеокарта успевает отрендерить больше 5 кадров. За это время все эти кадры приходят в буфер, и каждый новый вытесняет предыдущий, и этот предыдущий исчезает из цифрового поля. Помимо этого, есть один очень интересный момент: настал момент монитору обновиться, а в это же время в буфер приходит информация о новом кадре, таким образом, монитор начинает выводить информацию двух разных кадров. Последствия для вас - разрыв экрана.
Как же избежать этих "разрывов" ? Существует несколько технологий синхронизации кадров с частотой обновления монитора, другими словами, эти технологии помещают FPS и герцы на одну волну.
3. Включена вертикальная синхронизация.
Хаосу тут не место. Ваша видеокарта рендерит кадр под обновление монитора.
На видеокарте существует "регулировщик", который знает частоту обновления монитора и рендерит только 1 кадр на 1 герц.
4. G-sync.
Технология горизонтальной синхронизации от NVIDIA. В монитор встраивается чип, который заставляет монитор обновится, когда придет новый кадр(в пределах своей частоты обновления). Тут все слишком хорошо и скучно, чтобы про это говорить :)
Плюсы и минусы вертикальной синхронизации
Плюсы
- Пропадают разрывы изображений.
- Видеокарта работает не на полную мощность, тем самым понижая свою температуру и уменьшая уровень шума.
Минусы
- Снижение частоты кадров до частоты монитора. Но вы же вроде не можете увидеть больше кадров на 60 гц мониторе?
- Повышение отклика всех ваших действий в игре. Почему? Попробую и это вам объяснить.
- Ваш "регулировщик" на видеокарте, так же как и остальные ее элементы потребляет вычислительные ресурсы. Значит на обработку кадров их остается меньше.
- Перед включением вертикальной синхронизации, убедитесь что вы имеете "запас" по FPS. Если видеокарта не сможет осилить требуемый FPS, она опустит его до следующего кратного значения. В нашем случае - 30 FPS, а никто не хочет играть с 30 FPS, если вы не "консольщик", о них чуть позже.
Имеет ли смысл иметь 75, 90, 120 FPS в играх при 60 Гц мониторе?
Вы только что прочитали про взаимодействие монитора и видеокарты, и, скорее всего, решили для себя, включу эту "вашу синхронизацию" и бед не буду знать. И здесь есть свои тонкости.
Встречали ли вы людей, которые утверждали вам, что мало видят разницу между 60 и 120 FPS, а даже видят ее на 60 Гц мониторе? Да они умом тронулись. Или нет?
Находясь рядом с игроком и смотря как он играет, разницу вы не увидите. Но все меняется если вы и есть игрок, который взаимодействует с игровым миром.
Перед нами три герца. Между ними 2 вычислительных отрезка, в одном из которых произошло событие спустя 12 миллисекунд после обновления монитора.
Красная линия это игровой "тик"(момент), причем неважно какой именно. Это может быть первый кадр взрыва гранаты, вы можете одним тиком повернуть камеру, зажжется свет. Абсолютно неважно!
Как мы помним, монитор обновляется каждые 1000миллисекунд/60 = 16.66 миллисекунд. В первом случае мы не знаем, успел ли кадр отрендериться тогда, когда уже произошел наш "тик".
Но во втором случае, мы ясно видим, что последний отрендеренный кадр появился уже после "тика", поэтому он содержит информацию о нем. И мы через 16.66/5 ≈ 3.33миллисекунды увидим наш "тик" на мониторе. В то же время в первом случае кадр пропускает "тик", и мы увидим его только на следующем рендере, а именно через 16.66+(16.66-12) = 21.13 миллисекунд.
Совокупность "тиков" и создает разницу 60 и 120 FPS на 60 Гц мониторе. Объяснить или показать на видео эту разницу невозможно, вам необходимо самостоятельно это прощупать.
Мы проигнорировали все остальные отклики и задержки связанные с компьютерным железом, начиная от отклика мыши и заканчивая скоростью видеосигнала, потому что это неважно. Суть от этого не меняется.
Также я проигнорировал случай с включенной вертикальной синхронизацией, потому что он самый "плохой", т.к. "регулировщик" рендерит и отправляет кадр перед самым обновлением монитора, задержка каждого "тика" будет составлять до 32 миллисекунд, а это задержка кадра как при 30 FPS, надеюсь в 30 FPS вы изъяны видите. Это "второй минус" вертикальной синхронизации из перечисленных мною выше, его очень легко почувствовать если включить/выключить синхронизацию прямо в игре.
src="//coub.com/embed/eb6qp?muted=true&autostart=false.." allowfullscreen="true" frameborder="0" width="750" height="440">
Наглядная демонстрация геймплея, при котором происходит очень много наших "тиков", а именно поворотов камеры. Если поводить подобным образом камерой в CS:GO при 60 и 120 FPS на 60 Гц мониторе, и все равно не понять разницу. То постарайтесь не думать об этом, это не ваше :)
"Золотой стандарт"
Начнем с того, что никакого "золотого стандарта" не существует. Есть требования игроков с одной стороны, которые в свою очередь могут различаться, и технические возможности разработчиков с другой. Будь у разработчиков возможность выпускать все проекты с миллионами FPS, они бы не стали ее упускать. Все же мы постараемся определить некоторую зону комфорта и плавного изображения.
Разберем несколько случаев.
Xbox One и PS4
На момент разработки этих консолей выбор графической системы пал на близкий аналог Radeon HD 7850. Попробуйте взять эту HD 7850 и что-нибудь исполнить в современных играх. Найдутся игры, которые просядут ниже 30 FPS. Что в таком случае делают разработчики? Уменьшают обсчитываемое разрешение. Возьмите любой последний Assassin's Creed, обе консоли работают в режиме 900p 30 fps, это еще в самом лучшем случае, нетрудно найти тест на Youtube, когда консоли не могут поддерживать и 30 FPS. Можно ли назвать 30 FPS Золотым стандартом? Нет! Это дно, ниже которого падать некуда.
Пока "хавают", ситуация вряд ли изменится. Главное, чтобы консоли не стали стоить по 1000$.
VR
Виртуальная реальность работает на частоте кадров 90+, в этом случае экран максимально близко к вашим глазам, и низкий FPS будет более заметен, что приведет к утомлению и ухудшению здоровья.
Вернемся к мониторам. Плавность изображения достигается тогда, когда мы не видим переход от одного кадра к другому. К сожалению, тут мы возвращаемся опять к тому, что столько людей, столько разных мнений.
В этой статье моя задача состояла в том, чтобы объяснить вам преимущество 60+ FPS на 60 Гц мониторе.
Рекомендации
От себя оставлю некоторые рекомендации видеокарт для игры на FullHD мониторах. Ниже вы можете ознакомиться с тестами этих видеокарт на нашем сайте.
30 FPS
NVIDIA GeForce GTX 950 сильно превосходит по мощности обе консоли, поэтому пока на консолях играют, вы без дела не останетесь.
60 FPS в этом году
NVIDIA GeForce GTX 1060 показывает отличные результаты в играх при компромиссной цене.
60 FPS в будущих экспериментах от Ubisoft :)
NVIDIA GeForce GTX 1070 имеет отличную производительность и сильно выигрывает в цене на фоне "старшего брата".