No Image

Что такое frame time в играх

СОДЕРЖАНИЕ
4 просмотров
10 марта 2020

Или разоблачение секты ФПС-еров, более крупной, чем секты раскрывателей

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

Начнем с теории

Что такое фпс? Это английская аббревиатура (т.е. сокращение) от слов Frames Per Second, которые переводятся как «кадры в секунду». И все мы знаем, что если кадров 24 и более в секунду — то эти самые кадры воспринимаются человеческим глазом не как отдельные картинки, а как поток видео. Поэтому ФПС-еры считают, что чем выше ФПС, тем плавнее картинка у них в игре и тем комфортнее им играть. Иногда даже доходит до таких абсурдов, что для комфортнй игры в одну сетевую игру нужно как минимум 200 фпс (без учета герцовки монитора, разумеется…)

Логика здесь определенно есть, но сектанты фпс-еры забывают одну очень важную деталь. Определенное количество кадров воспринимается как непрерывный видеоряд с одним существенным условием — если эти кадры сменяются через одинаковый промежуток времени. Иными словами, количество времени, которое на мониторе находится каждый отдельный кадр должно быть одинаковым (или хотя бы стремиться к постоянному числу).

Разоблачение сектантов

В реальности время отображения отдельных кадров одинаково далеко не всегда

Если условие о стабильности времени каждого отдельного кадра нарушается, то возможна такая ситуация. Допустим, игра выдает 240 фпс (то есть 240 кадров в секунду). Однако в один прекрасный момент случается так называемый лаг (микрофриз, статтер) и один кадр, вместо того, чтобы «быть» на мониторе положенные ему 1 / 240 секунды пробыл на мониторе аж целых полсекунды. Что мы получаем в итоге? 120 кадров каждый по 1 / 240ую секунды — на первую половину секунды и один кадр-фриз на вторую. Что покажет нам мониторинг ФПС и график фремрейта? 121 ФПС! По логике сектантов ФПС-еров это дохрена большое значение и играть с ним очень комфортно.

Усугубим ситуацию. Допустим, такие фризы по полсекунды случаются один раз каждые 5-10 секунд. Что в таком случае нам покажет мониторинг ФПСа? 120-240 кадров, по мнению сектантов — плавная комфортная игра. Что получится в реальности? Полное отсутствие плавности и комфорта, то есть ебучий лагодром

ФПС-еры скажут, что «так не бывает». Возможно для большей наглядности я привел в пример не совсем реалистичные цифры, однако сама ситуация с такими микрофризами, не сильно влияющими на ФПС, но очень сильно влияющими на комфорт игры встречается сплошь и рядом.

И чем выше был изначальный ФПС — тем выше показатель мониторинга в случае лага/статтера. В такую ловушку попадают будущие покупатели популярных Pentium 4560 и i5 6400/7400, у которых относительно высокий фпс в играх, но случаются лаги. Подтверждаю, как владелец ай5

Что же делать? Есть решение!

Если ФПС ничего не значит, как же тогда определять в тестах, комфортно ли играть в данную игру на данном железе? Как ни странно, данная проблема решается, и решается как минимум двумя способами

Способ 1: График времени кадра (Frametime). Да, его тоже можно включить на мониторинге и он есть в нормальных тестах на ютубе. Если он ровный (ситуация на картинке справа) — значит играть комфортно. Если дёрганный (картинка слева) — играть не очень комфортно. Если ровный, но с «шипами» вверх, и таких шипов много (смотри картинку выше) — значит это ситуация из описанного мной примера, играть очень некомфортно.

Читайте также:  1С реквизит динамический список

Способ 2: Значения 1% low и 0,1% low. Не буду вдаваться в детали, что это за показатели, потому что не все учили в школе/универе матстат. Просто скажу, что если разница между значениями этих двух показателей составляет 5-10%, то играть комфортно. Если больше — то есть лаги/фризы/статтеры.

Но, естественно, первый способ более удобный и более наглядный. В нём даже часто с графиком времени кадра в пару ставят счетчик ФПС для тех, у кого от него ещё слишком сильная зависимость, избавиться от которой сразу не получается

Ах вот ещё что хотел бы добавить — самый минимальный стабильный показатель времени кадра для комфортной игры33,3 мс, который соответствует стабильным 30 ФПС с локом (консольный вариант). Для достаточно комфортной игры — минимум 16,7 мс, аналог 60 кадров в секунду по меркам ФПС.

Вместо заключения

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

Материал подготовлен и опубликован группой Б.С.П.К.

Фреймтайм — это время подготовки кадра, по сути график, сколько готовится каждый кадр.

Смотри фпс снимает счетчик кадров в секунду.
Это прямая.
Каждый кадр — точка на прямой.

У тебя может быть так, что за первые 0.5 секунды, было подготовлено 10 кадров, а за оставшиеся 50 — в итоге у тебя 60 фпс (60кадров в секунду).

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

На просторах интернета можно найти бессчетное множество статей про видеокарты, но большинство их созданы по одному и тому же принципу: все авторы меряют минимальный и средний FPS, а кто-то еще и максимальный. Насколько ценны эти замеры, насколько объективно они отражают уровень комфорта во время игры? Я пришел к выводу, что не очень, а всё потому, что такая методика совершенно не учитывает микрозадержки, они же микролаги или фризы.

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

реклама

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

Читайте также:  Форум владельцев дэу нексия

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

Демонстрационные примеры снимались на следующем тестовом стенде:

  • Процессор: Intel Core i7 930, 4 ГГц (200 х 20, 1,35 В);
  • Система охлаждения: GlacialTech Siberia;
  • Термоинтерфейс: КПТ-8;
  • Материнская плата: Asus P6T SE (BIOS 0805);
  • Оперативная память: Corsair Dominator TR3X6G1600C8D DDR3 1600 МГц, 8-8-8-20, 3×2 Гбайт;
  • Жесткий диск: WD Velociraptor, WD6500HLHX-01JJPV0, 450 Гбайт;
  • Видеокарта: Sapphire Radeon HD 5670, 1 Гбайт GDDR5;
  • Блок питания: Enermax Modu 87+, 700 Вт.

реклама

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

Если вы не меняли пути, то после замеров в каталоге C:FrapsBenchmarks будет появляться файл ***frametimes.csv. Это текстовый файл с запятыми-разделителями, в который еще зачем-то добавлены пробелы, с такими файлами проще всего работать в MS Excel. Открывать файл следует не как обычно, а через импорт данных. В Excel 2007 это вкладка «Данные», группа «Получить внешние данные», кнопка «Из текста».

После указания файла в появившемся мастере текстов на первом шаге оставляйте всё по умолчанию (формат данных: с разделителями), на втором выставите символом-разделителем запятую, третий шаг можете пропустить и сразу нажать «Готово». Импорт следует начать с ячейки A1 (настройка по умолчанию). В итоге должны получиться два столбца данных:

Теперь из этих данных нужно получить время отрисовки каждого кадра и мгновенный FPS. Время отрисовки это не что иное, как разница между временны́ми отметками соседних кадров, а мгновенный FPS – обратная величина времени отрисовки, умноженная на 1000 (поскольку время указано в миллисекундах).

На основе столбца с мгновенными FPS можно построить интересный график. Для примера я взял результаты из бенчмарка «S.T.A.L.K.E.R.: Зов Припяти» со следующими настройками:

  • Разрешение 1680×1050;
  • Установки: средние;
  • Рендер: Улучшенное полное освещение (DX10).

Вот так выглядят мгновенные FPS в первом тесте днем:

Замер по классической схеме выдал minFPS=26 и avgFPS=38,57. Со средним всё понятно (это общее количество кадров, деленное на длину демо сцены в секундах), а про минимальный есть большой вопрос. Какие 26, если кадр №3347 рисовался аж 110 мс, что дает менее 10 FPS. Это явный лаг, заметный на глаз, но значение minFPS говорит, что всё хорошо. И ведь есть полно кадров, с мгновенным FPS меньше 27!

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

реклама

График на основе этих столбцов выглядит так:

Читайте также:  Тв тюнер v stream

Самые быстрые кадры в этом замере выдавали мгновенные значения более 300 FPS, но в этом графике я решил их не учитывать и ограничиться значением 100 FPS. Кстати, FRAPS намерял maxFPS=50. Проверка показала, что это число отражает максимальное количество кадров, отрисованных в течение одной секунды.

Акцент данной статьи сделан на выявлении микролагов, так что предлагаю рассмотреть более подробно «медленные кадры», левее основного «колокола» нормального распределения, скорость которых менее 30 FPS.

реклама

Наверняка кто-то посчитает границу в 30 FPS недостаточной и захочет рассмотреть больший диапазон. Напоминаю: сейчас я описываю теоретический метод, а данная тестовая система просто пример. На компьютерах с более мощными видеокартами основная группа кадров будет располагаться гораздо правее, тогда в «медленную» группу можно включить и 40 FPS, и 50, хотя падение скорости до 50 FPS это вовсе не лаги.

Вернемся к графику. Теперь видно, сколько кадров было медленными и насколько медленными. Но картина всё еще не оптимальна для восприятия.

Во-первых, нужно объяснять, что маленькая отметка в значении 9 FPS говорит о худших вещах, чем полоса, скажем, на значении 27 FPS. Один кадр с мгновенной скоростью 9 FPS это статическое изображение на протяжении 110 мс, а четыре кадра 27 FPS наверняка идут непоследовательно, плюс замирание картинки на 37 мс не настолько страшно.

Во-вторых, все привыкли, что в разных столбцах содержатся разные категории. А представьте, что будет, если на этом же графике отобразить такой же набор данных, сдвинутый на 1 FPS вбок – получится хаос из разноцветных лестниц! А если попытаться сравнить штук пять систем?

реклама

График по этому столбцу получается такой:

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

реклама

Нет ничего сложного, чтобы провести три замера и вычислить средние результаты.

Не могу похвастаться очень точным совпадением трех вариантов, но качественно все они одинаковы: кадров медленнее 14 FPS практически нет, кадры медленнее 21-25 FPS длятся в сумме 5 секунд.

Давайте посмотрим, как поведет себя эта система в сравнении с другой в том же бенчмарке на одинаковых настройках:

реклама

Основная платформа Платформа для сравнения
Процессор Core i7 930, 4 ГГц (200 х 20) Core i7 920, 3,6 ГГц (180 х 20)
Материнская плата Asus P6T SE Asus P6T Deluxe
Оперативная память 3×2 Гбайт, 1600 МГц, 8-8-8-20 3×2 Гбайт, 1440 МГц, 7-7-7-16
Жесткий диск WD Velociraptor, 450 ГБ 3x WD Raptor 74 ГБ, RAID-0
Видеокарта Radeon HD 5670, 1 Гбайт GDDR5 GeForce 8800 GT, 512 Мбайт DDR3
ОС Windows 7 Ultimate x64 rus Windows 7 Ultimate x64 rus
Особенность «Чистая», недавно установленная система Рабочий компьютер с множеством установленных программ

Если кратко, процессор на основной тестовой платформе разогнан сильнее, но Radeon HD 5670 явно слабее GeForce 8800 GT.

Для начала, вот графики с усредненными по трем замерам minFPS и avgFPS: minFPS | avgFPS

Включите JavaScript, чтобы видеть графики

GeForce 8800 GT легко разгромил соперника… или не легко? Надеюсь, вы уже поняли, что minFPS не показывает скорость самого медленного кадра сцены. Давайте посмотрим на другой график.

Комментировать
4 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector