Почему высокий FPS не гарантирует плавность в играх

Почему высокий FPS не гарантирует плавность в играх

Высокий средний FPS скрывает отдельные кадры, которые задерживаются и вызывают заметные рывки. Разбираемся, как читать frametime и 1% low, оценивать frame pacing и отличать отрисованные кадры от фактически показанных.

Почему высокий средний FPS может сочетаться с микрофризами

Счётчик показывает 237 FPS. Видеокарта нагрета ровно настолько, чтобы оправдать свою цену. Процессор не захлёбывается. Вы торжественно входите в новую локацию — и игра на полсекунды превращается в диафильм.

  1. Через мгновение — снова 237.

Так появляются микрофризы при высоком FPS: не вопреки счётчику, а вне области его компетенции. Среднее значение сообщает, сколько кадров учёл измеритель за некоторый промежуток. Оно не обещает, что кадры прибывали вовремя, показывались монитором и не толкались у выхода, как пассажиры последней электрички.

Разберёмся, кто здесь врёт. Заранее: FPS невиновен. Он просто крайне неудобный свидетель.

Возьмём одну секунду и 120 кадров. В идеальном мире интервал между ними составляет 8,33 мс. Получается ровная стеклянная дорожка: поворот камеры течёт, мишень движется, мозг доволен.

А теперь 119 кадров подготовим с интервалом 8 мс, а один — с интервалом 48 мс. В сумме снова секунда и снова 120 кадров. Средний FPS великолепен. Только посреди этой великолепной секунды изображение почти на одну двадцатую застыло, после чего помчалось догонять расписание. Глаз заметил рывок, палец промахнулся, счётчик предъявил алиби.

Это и есть принципиальная разница между низкой производительностью и микрофризом. В первом случае игра постоянно тяжела, как шкаф при переезде. Во втором — бежит легко, но иногда получает табуреткой под колено.

Сетевой лаг тем временем живёт в другом отделении цирка: противник телепортируется, попадания регистрируются поздно, однако локальная камера может двигаться совершенно плавно. Подробнее — в материале о том, почему высокий пинг — это другая причина задержек.

Frametime и frame pacing: миллисекунды решают

Как FPS переводится во время кадра

Frametime, или время кадра, — интервал, связанный с подготовкой либо показом соседних кадров. Точное значение зависит от точки измерения: программа может считать время на CPU, работу GPU или изменения изображения на дисплее.

Перевод из рекламного языка в человеческий выполняется формулой:

1000 / FPS = время кадра в миллисекундах.

Получаем 16,67 мс при 60 FPS, 8,33 мс при 120, 6,94 мс при 144 и 4,17 мс при 240. Но это ориентиры для идеально равномерного потока. Средние 120 FPS не гарантируют постоянных 8,33 мс — о чём 48-миллисекундный диверсант уже доложил.

Почему короткий frametime ещё не означает ровный ритм

Frame pacing — равномерность выхода кадров. Здесь важно не только количество произведённых консервов, но и интервалы, с которыми их подают к столу. Последовательность 8–8–8–8 мс плавна. Последовательность 3–13–3–13 мс имеет ту же среднюю скорость, но шаг у неё пьяный.

Равномерная и неравномерная последовательности кадров при одинаковом среднем темпе
Одинаковое количество кадров может распределяться по времени равномерно или рывками.

Как монитор и синхронизация меняют результат

Дальше вмешивается монитор. V-Sync привязывает показ к обновлениям экрана и способен выровнять движение, но может увеличить задержку, а при опоздании кадра — оставить предыдущее изображение на экране дольше. Без синхронизации возможны разрывы изображения.

VRR, то есть переменная частота обновления в технологиях вроде G-Sync и FreeSync, позволяет монитору подстраивать обновление под поступающие кадры. Однако работает VRR только в поддерживаемом монитором диапазоне и не исправляет неровную работу самого движка. Ограничитель FPS тоже не святая вода: удачно выбранный лимит способен улучшить ритм, а неудачный — аккуратно законсервировать проблему.

PC Gamer также отделяет микрофризы от постоянно низкой частоты кадров и продолжительных загрузочных остановок. Организм, в отличие от оверлея, не подкупишь красивым средним: неровное движение может утомлять даже при трёхзначном FPS.

Как читать график frametime, 1% low и 0,1% low

Что показывают форма графика и пики

График frametime — кардиограмма игры. Почти ровная линия означает стабильный ритм. Один высокий пик может совпасть с автосохранением, первой компиляцией шейдера или входом в новую область. Пики через равные интервалы позволяют подозревать фоновую задачу, сборку мусора, телеметрию или периодическую подгрузку. Постоянная мелкая дрожь может указывать на плохой frame pacing, синхронизацию или борьбу компонентов за время.

Смотреть надо не на сам факт пика, а на его высоту, ширину и повторяемость. Один выброс при загрузке сохранения — не трагедия. Игла каждые десять секунд во время прицеливания — уже вредитель с пропуском в геймплей.

Ровный frametime, одиночный пик и периодические пики времени кадра
Форма и повторяемость пиков помогают отличить разовое событие от системной проблемы.

Что означает 1% low FPS

1% low FPS описывает медленную часть прогона. В методике FrameView 1.7 это средняя частота для самого медленного одного процента кадров. Чем ближе 1% low к среднему FPS, тем стабильнее обычно выглядит результат. Например, связка 144 FPS в среднем и 118 FPS по 1% low внушает больше доверия, чем 180 и 54. Первый компьютер играет, второй периодически чихает золотыми зубами.

Руководство FrameView 1.7 отдельно различает 1% low и обычный процентиль 1% FPS — путать их не следует. В других программах способы отбора кадров и расчёта low-метрик могут отличаться, поэтому вместе с результатом всегда надо указывать инструмент и его версию.

Почему 0,1% low требует длинного теста

0,1% low ловит совсем редкие бедствия и потому одновременно полезен и нервозен. В коротком тесте один загрузочный экран, Alt+Tab или открытие меню способны превратить его в некролог. Прогон должен быть достаточно длинным, а сцена — одинаковой. Сравнивать прогулку по пустой комнате с перестрелкой на горящем рынке запрещает не наука, а элементарная совесть.

Отрисовано, представлено и показано: три разных FPS

Кадры приложения и вызовы Present

Счётчик движка обычно описывает работу на стороне приложения, но его точный смысл зависит от реализации. Presented FPS в PresentMon измеряет частоту обращений приложения к функции Present — заявок графической системе на представление кадров. Это ещё не гарантия, что каждый из них действительно появился на экране.

Displayed FPS и пропущенные кадры

Displayed FPS показывает частоту изменений изображения, которую можно измерить на стадии дисплея. Между вызовом Present и экраном кадр способен задержаться, быть отброшен или остаться видимым лишь очень короткое время.

Документация PresentMon определяет Presented FPS как частоту вызовов Present, Displayed FPS — как измеримую частоту изменений на дисплее, а Dropped Frames отмечает кадры, которые не были показаны. Displayed Time сообщает, сколько конкретный кадр оставался на экране.

Поэтому движок может радостно докладывать о сотнях кадров, пока зритель получает менее бодрую картину. Displayed FPS ближе к вопросу «что увидел человек», хотя это по-прежнему программное измерение, а не высокоскоростная камера, направленная на матрицу.

Что меняет генерация кадров

С генерацией кадров бухгалтерия становится ещё веселее. В актуальных версиях PresentMon показатели FPS-App, FPS-Presents и FPS-Display разводят разные этапы конвейера, а Frame Type позволяет отличить кадр приложения от кадра, интерполированного драйвером или SDK.

Сгенерированные кадры могут увеличить частоту визуальных изменений, но не исправляют неровный базовый поток и сами по себе не означают снижения задержки. Поэтому сравнивать режимы генерации только по одному счётчику FPS нельзя.

Что выяснили исследования 2026 года

Пики ухудшают восприятие плавности

Лабораторные работы начали изучать не только «сколько FPS достаточно», но и что делает один испорченный кадр.

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

В другом эксперименте 21 участнику дали специально созданный шутер с разным качеством графики и пиками длительностью 0, 225 и 675 мс. Настройки в основном меняли оценку картинки, а пики — плавность, точность и счёт. Чем крупнее остановка, тем хуже результат. Лучи красивее, промах тот же.

Польза высокой частоты растёт неравномерно

Исследование частот от 7 до 500 кадров/с с 44 участниками показало любопытный изгиб: игровые результаты резко улучшались на низких частотах, но примерно после 90 кадров/с выходили на плато. Субъективная оценка плавности продолжала расти вплоть до 500 кадров/с.

Это не заповеди для всех жанров: выборки невелики, две игры созданы специально для экспериментов, а условия контролировались. Но общий вывод полезен: дополнительные ровные кадры могут сделать движение приятнее, а один чудовищно долгий — испортить всю сцену.

Откуда берутся пики времени кадра

Главные подозреваемые распределены по всему конвейеру:

  • Игра и CPU: компиляция шейдеров, создание объектов, физика, NPC, сборка мусора, антивирус или другая фоновая задача. Общая загрузка процессора в 40% ничего не оправдывает: один главный поток может уже лежать лицом в тарелке.
  • GPU и память: перегрузка видеокарты, заполненная VRAM, перенос ресурсов из оперативной памяти или троттлинг. Сопоставляйте пик с GPU Busy, использованием памяти, частотами и температурой.
  • Вывод изображения: неподходящий лимит, V-Sync, выход за диапазон VRR, пропущенные кадры или неровные интервалы уже на стадии дисплея.

Ни один пункт не лечится ритуальным отключением всего подряд. Интернет обожает советы вроде «удали три драйвера, выключи семь таймеров и поверни системный блок к северу». Правильный порядок скучнее и полезнее: сначала улика, потом подозреваемый, затем один проверяемый шаг.

Как проверить плавность за один воспроизводимый прогон

Выберите маршрут на 60–120 секунд без меню и загрузочных экранов. Зафиксируйте разрешение, настройки, лимит FPS и состояние кэша. Пройдите сцену один раз для прогрева, затем запишите несколько одинаковых прогонов.

Сохраняйте не только средний FPS, но и frametime, 1% low, CPU Busy, GPU Busy, использование памяти, dropped frames и displayed FPS. Мгновенный оверлей хорош для испуга; CSV-лог — для диагноза.

Затем свяжите пик с событием. Первый взрыв позволяет проверить гипотезу о компиляции шейдеров. Переход через одну и ту же дверь — о подгрузке. Ухудшение через двадцать минут — о заполнении памяти или нагреве. Пик строго по секундомеру — о фоновом процессе. Неровность только в Displayed Time направляет расследование к выводу изображения и синхронизации.

Меняйте одно условие и повторяйте тот же маршрут. Если обнаружена общая нехватка производительности или системная проблема, переходите к руководству о том, как повысить FPS и убрать лаги на ПК.

Что меняет облачный гейминг

В облачном гейминге игра работает на удалённом сервере, а устройство получает видеопоток. Поэтому локальный счётчик клиента не раскрывает весь кадровый конвейер: рывок может возникнуть на сервере, при кодировании, передаче по сети, декодировании или выводе изображения.

Здесь график локального frametime полезен, но его надо сопоставлять со стабильностью соединения и статистикой потока. Ровная работа браузера или приложения не исключает пропуска кадров внутри видео, а сетевой джиттер — колебания времени доставки пакетов — способен нарушить ритм даже при достаточной средней скорости интернета.

Не поклоняйтесь одному числу

Средний FPS показывает общий темп. 1% low — состояние медленного хвоста. 0,1% low ловит редкие катастрофы. График frametime рассказывает, когда и как они произошли. Displayed FPS проверяет, дошёл ли праздничный караван до экрана.

Ни одна метрика не заслуживает трона. Вместе они дают картину.

Если игра выдаёт 240 FPS и дёргается, не позволяйте счётчику убедить вас, что всё показалось. Машина учла много кадров. Просто один из них опять опоздал — и, разумеется, выбрал для этого прыжок над пропастью.

Закрыть

Не удалось забронировать ПК

Что-то пошло не так. Повторите попытку.

Закрыть

Предложить игру

Если ты не нашел нужную игру, предложи владельцам серверов добавить ее

Закрыть

Твое предложение отправлено

Теперь владельцы серверов знают, какую игру добавить в библиотеку!

Закрыть

Мы разработали клиент для macOSβ

Выбери тип своего процессора

Скачать
Закрыть

Укажи свой email

Закрыть

Войти или создать профиль

Загрузка
Авторизуйся через Telegram, отсканируй QR-код камерой телефона
QR-код
Закрыть

Войти или создать профиль

Закрыть

Введите код из SMS

Закрыть

Введите код с картинки

Captcha
Очистить поле
Закрыть
Доступ к аккаунту приостановлен

Доступ к аккаунту приостановлен

Для восстановления доступа необходимо авторизоваться на сайте МТС