Что такое fps в excel

Видео урок Как создать графики FPS из бенчмарка FPAPS в Microsoft Office Excel

Для записи видео использовалась программа Action! ( очень удобная прога :).
——————————————————————————————————-
Сам график FPS сами понимаете сделан с помощью FRAPS
———————————————————————————————————-
Для создания графиков FPS использовалась программа Microsoft Office Excel 2007
———————————————————————————————————-
Видео монтировался в CyberLink PowerDirector 10, что было то и использовал :).
===========================================================
Всё это делалось на ноутбуке MSI GT60 0ND :)

15,6″ Full HD.
Intel Core i7-3610QM
NVIDIA GeForce GTX 675MX 4GB
Corsair Vengeance (CMSX16GX3M2A1866C10) 16Гб (2х8Гб) DDR3-1866
SuperRAID 128GB (64Gb*2)
1.5TB (750GB Hitachi HTS727575A9E364 + 750GB WDC WD7500BPVT)

—————————————————————————————————

P.S. Игра не тормозила, просто запись видео такой )), сколько было fps видно на самом графике.

Видео создана для тех кто захочет сделать такие графики из бенчмарка FRAPS :biggthumbsup:

FPS («Frames Per Second» англ.) — переводится как «кадров в секунду». Обозначает этот показатель сколько кадров компьютер воспроизвел за прошедшую секунду времени. Рассматривается это, как в играх, так и при проигрывании ресурсоемких видеороликов. К примеру, на слабой видеокарте видео в 4К будет воспроизводиться нечисто (с задержками).

На что влияет FPS?

Чем выше этот показатель, тем плавнее меняется картинка. От этого происходящее на экране воспринимается более реалистично. Как проявляется низкий ФПС? Как правило, при слабеньком показателе кадров в секунду (ниже 30) наблюдается эффект слайд-шоу — картинка перескакивает с кадра на кадр. Причем делает это неритмично, поэтому привыкнуть к такому трудно. Если с FPS совсем все плохо, то может наблюдаться «зависание» — кадр как будто замирает, а потом картинка снова движется слайдами. 

  • Эксперт собрал идеальный бюджетный геймерский ПК для 1080p при 60 fps — какое железо он выбрал?

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

Некоторым будет знакома ситуация, когда, вроде бы, и нацелиться успел, и выстрелить, а система не зарегистрировала выстрел, так как враг с более высоким ФПС сделал это быстрее. 

  • Как повысить фпс в “Фортнайте”: только рабочие и безопасные методы

Как узнать свой ФПС?

Если у вас видеокарта от AMD, то в программе AMD Software можно узнать средний FPS по каждой отдельно взятой игре. Во вкладке «Дом» (Home). 

Также можно скачать программу Fraps. Которая в фоновом режиме будет показывать количество кадров в секунду. 

Скачать Fraps с официального сайта.  

  • Устанавливаем Fraps. Открываем приложение и заходим во вкладку FPS. Здесь мы увидим «горячую клавишу», нажимая которую в игре будет выводиться ФПС слева снизу.

Как это будет выглядеть? Смотрите скриншот:

Программа Fraps работает в фоновом режиме и никак не нагружает систему — можно смело пользоваться даже на слабом ПК.

Если не хотите устанавливать никаких программ, то в некоторых играх предусмотрена функция вывода FPS на экран. В CS:GO это делается через консоль.

  • Нажимаем клавишу «ё» — в командную строку вводим следующий параметр: «net_graph 1». 

Данные будут выводиться в процессе игры, отражая текущий показатель кадров в секунду. Теперь вы знаете, как узнать ФПС в КС:ГО.

  • Как повысить FPS в Counter Strike: Global Offensive? Рассмотрим основные рекомендации

Какой ФПС должен быть в играх?

Простыми словами, стабильных 30 FPS вполне достаточно для комфортного прохождения какой-либо игры. В онлайн-шутерах, где решают доли секунд, ФПС должен быть в пределах 90-120 кадров. Но на современных мощных ПК обычно FPS в CS:GO колеблется в районе 300. Для DOTA 2 приемлемо 100 кадров в секунду. И, желательно, без «просадок« во время массовых сражений. 


Пока вы читаете эту новость, мы готовим еще более интересные. Подписывайтесь на наши каналы, чтобы не пропустить!

От чего зависит FPS?

Как вы могли догадаться, показатель кадров в секунду напрямую зависит от мощности «железа»:

  • Быстродействие видеокарты.
  • Объем видеопамяти.
  • Быстрота работы центрального процессора.
  • Стабильное соединение с интернетом.
  • Актуальность драйвера видеоадаптера.
  • Фоновая работа других ресурсоемких приложений.

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

Стабильный ФПС зависит от соблюдения всех изложенных условий вкупе. Если, к примеру, у вас мощный ПК с передовой видеокартой и флагманским процессором, но слабый сигнал сети, то FPS в онлайн-проектах будет нестабильным. 

Интересный факт: если на современном «железе» запустить какую-нибудь старую игру (к примеру, GTA: San Andreas), то FPS будет чересчур высоким, что приведет к «ускоренному» геймплею. Персонаж будет бежать со скоростью полета самолета. И это тоже неиграбельно. 

Как повысить FPS в играх?

Этот вопрос чаще всего задают владельцы слабых ПК на устаревшем «железе». Основной способ улучшить показатель кадров в секунду — обновить компьютер. Остальные советы могут лишь слегка исправить ситуацию: 

  • Обновите драйвера. В частности — на видеокарту.
  • Удалите все лишнее с жесткого диска и выполните дефрагментацию.
  • Дефрагментация диска: что это такое, для чего нужна?

  • Остановите все сторонние процессы: антивирус и т.д.
  • Снизьте настройки графики на самый минимум.
  • Оптимизируйте работу Windows с помощью специальных программ.
  • Воспользуйтесь утилитами по разгону «железа» (эту рекомендацию выполняйте на свой страх и риск, так как эта процедура может негативно повлиять на длительность эксплуатации комплектующих).

Но не только лишь «железо» влияет на частоту смены кадров. Есть еще такое понятие, как «пинг» (задержка сети). 

Что такое пинг?

Представьте следующую картину: есть сервер и есть ваш ПК. Чтобы в онлайн-игре совершилось какое-либо действие, ваша система должна передать команду на игровой сервер. С игрового сервера возвращается на ваш экран результат обработки задания. К примеру, вы нажали «R», чтобы перезарядить оружие, — ваш компьютер передал этот запрос на сервер, а сервер вернул результат — персонаж сменил магазин. Этот механизм взаимодействия очень похож на челночный бег. 

Есть теория, почему решили использовать слово “ping” для обозначения задержки сети. Настольный теннис также зовется пинг-понгом в некоторых странах. Взаимодействие компьютера с сервером напоминает игру в теннис, где заданное игроком действие выступает в роли шарика. 

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

Как пинг влияет на игру?

Чем он меньше, тем проще играть и реагировать на изменение игровых условий. Как понять, что у вас высокий пинг? Обычно онлайн-игры выводят на экран системное предупреждение — значок в виде плохого сигнала. Наподобие такого:

Из-за высокой задержки сети, действие на экране разворачивается в «рваном» ритме. Вы, предположим, нажали 3-4 заклинания, а сервер получил информацию только об одном. И выполнил действие спустя секунду после вашего клика по мышке. Это явление называется «потеря пакетов» (packet loss). Тот случай, когда информация на сервер от вашего ПК передается лишь частично. Очевидно, что в такой ситуации ни о какой комфортной игре речи быть не может.

Высокий пинг легко заметить по такому признаку — персонажи бегут на месте. Очень распространенный симптом проблем с подключением к сети. 

От чего зависит пинг?

Чаще всего, высокая задержка сети обусловлена слабым сигналом сети. Предположим, вы подключены по Wi-Fi, а роутер стоит в другой комнате, за толстой стеной. Но иногда бывает и так, что большой пинг появляется из-за нестабильной работы сервера: либо же вас зарегистрировало к играм из другого континента, либо сам сервер в текущий момент имеет медленный отклик из-за перегрузки.

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

Какой пинг считается комфортным и как его улучшить?

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

Пинг можно снизить, настроив домашнюю сеть на стабильную работу — подвести роутер поближе к ПК или подключиться по LAN-кабелю. В остальном же — нет никаких других методов. Чаще перезагружайте роутер — это действительно может помочь. Также старайтесь выбирать ближайшие по географическому расположению сервера. Если играете в Калининграде — подключайтесь к Западной Европе, если в Хабаровске, то вполне возможно, что китайские сервера окажутся более «шустрыми». 


На нашем сайте — еще очень много интересных статей 🤓

  • Вспомнить все: как запустить игры с Dendy и SEGA на ПК?
  • Симс 4 все дополнения: полный обзор на 2022 год
  • Обзор Keyran: программы для создания и запуска макросов
  • Что такое NFT-игры: зарабатываем играючи
  • Играть на телевизоре без приставки и ПК? Легко, если подключиться к облачному геймингу

Содержание

  1. Как настроить показ fps
  2. 4 быстрых способа отобразить FPS в играх
  3. Оверлей Steam в игре
  4. NVIDIA GeForce Experience
  5. Используйте встроенные опции игры
  6. Лучшие программы для показа fps в играх
  7. Что такое FPS?
  8. Встроенный счетчик FPS в Steam
  9. FPS MONITOR
  10. RAZER CORTEX
  11. MSI Afterburner
  12. FRAPS
  13. GEFORCE EXPERIENCE
  14. RADEONPRO
  15. Bandicam
  16. Проверка внутриигровых настроек
  17. Итоги

Как настроить показ fps

Home > Blog > 4 быстрых способа отобразить FPS в играх

4 быстрых способа отобразить FPS в играх

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

by Jennifer | Jan 13, 2022

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

На самом деле, отобразить FPS игры намного проще, чем кажется. Steam теперь предлагает встроенное отображение FPS, как и NVIDIA через свое программное обеспечение GeForceExperience. Видеозахват FRAPS также по-прежнему готов помочь вам отображать FPS в играх, в том случае, если вы не используете Steam или NVIDIA. Есть даже инструменты, которые позволят вам контролировать FPS в играх UWP на Windows 10. И как только вы узнаете, какой у вас FPS, вы можете приступить к работе над улучшением своей игровой производительности.

Оверлей Steam в игре

Недавно Valve добавили счетчик FPS в игровой оверлей Steam. В Steam (пока игры не запущены) просто перейдите в раздел Steam> Настройки > В игре, а затем выберите позицию для отображения FPS из раскрывающегося списка “отображение частоты кадров”.

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

Вы также можете использовать эту функцию и для игр не из Steam. Добавьте игру в свою библиотеку Steam, открыв меню «Игры“ и выбрав пункт «Добавить стороннюю игру в мою библиотеку». Запустите игру через Steam, и оверлей будет работать, в зависимости от игры.

NVIDIA GeForce Experience

Если у вас есть новейшее графическое оборудование NVIDIA, поддерживающее ShadowPlay, вы также можете включить счетчик частоты кадров в игре с помощью NVIDIA GeForceExperience. В приложении нажмите кнопку «Настройки».

В разделе «общий доступ» убедитесь, что общий доступ включен, а затем нажмите кнопку «Настройки».

В разделе Настройки оверлея нажмите кнопку «оверлеи».

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

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

Используйте встроенные опции игры

Многие игры имеют встроенные счетчики кадров в секунду, которые вы можете включить. Однако в некоторых играх такую опцию весьма сложно найти. Возможно, проще всего просто выполнить веб-поиск по названию игры и добавить “отобразить FPS», чтобы узнать, есть ли в игре встроенная опция FPS и как ее можно включить. Вы также можете попробовать изучить настройки игры самостоятельно. В зависимости от игры, вы можете включить FPS такими способами:

· Настройки видео и графики. На экране настроек видео или графики игры может быть опция «показать FPS». Эта опция может быть скрыта за подменю «дополнительно».

· Сочетание клавиш. В некоторых играх эта опция может быть скрыта за сочетанием клавиш. Например, в Minecraft вы можете нажать F3, чтобы открыть экран отладки. Этот экран показывает ваш FPS и другие детали.

· Команда консоли. Многие игры имеют встроенные консоли, где можно вводить команды. В некоторых случаях вам может потребоваться специальный параметр запуска, чтобы включить консоль. Например, если вы играете в DOTA 2, Вы можете вызвать консоль разработчика (сначала ее нужно включить) и запустить команду cl_showfps 1, чтобы активировать счетчик кадров на экране.

· Параметр запуска. Для некоторых игр может потребоваться специальная опция запуска, которую необходимо активировать при запуске игры. Вы можете сделать это с рабочего стола или в меню запуска. В лаунчере, таком как Steam или Origin, вы также можете войти в свойства игры и изменить ее параметры оттуда. В Steam щелкните правой кнопкой мыши на игру, выберите пункт Свойства, нажмите кнопку Установить параметры запуска на вкладке Общие и введите необходимые параметры игры.

· Конфигурационные файлы. В некоторых играх может потребоваться включение невидимой опции, скрытой в каком-то конфигурационном файле. Даже если игра не требует этого, вы можете извлечь из этого выгоду. Например, игроки DOTA 2, которые всегда хотят видеть свой FPS, могут изменить файл autoexec.cfg игры таким образом, чтобы автоматически запускалась команда cl_showfps 1 при каждом старте игры.

FRAPS

До тех пор, пока функция не была реализована в таких программах, как Steam и GeForceExperience, компьютерные геймеры часто использовали FRAPS для отображения внутриигрового счетчика кадров. FRAPS-это в первую очередь приложение для записи видеоигр, однако но вам не нужно записывать свои игры, если вы хотите использовать программу, как счетчик FPS.

Если вы не используете Steam или GeForceExperience от NIVIDIA—и ваша игра не имеет встроенного счетчика кадров в секунду-вы можете попробовать FRAPS. Установите его, запустите и перейдите во вкладку FPS, чтобы получить доступ к настройкам оверлея. Счетчик кадров в секунду включен по умолчанию, и нажатие клавиши F12 выведет его в верхний левый угол экрана. Используйте настройки «FPS» в правой части вкладки, чтобы изменить горячую клавишу, указать другой угол экрана или скрыть наложение.

После того как вы выполнили все настройки, вы должны оставить FRAPS запущенным, но вы также можете свернуть его в области уведомлений. Затем вы можете нажать F12-или любую другую горячую клавишу, которую вы настроили, чтобы показать или скрыть счетчик FPS.

Источник

Лучшие программы для показа fps в играх

Хотите знать FPS на своем компьютере во время игры? В этой статье мы расскажем о различных программах и инструментах, которые помогут отслеживать показатель, а также другую информацию о производительности вашего ПК.

Если вы совсем недавно приобрели новенькую видеокарту, то наверняка желаете посмотреть, как она проявляет себя в деле. Или, быть может, заметили, что игры глючат и работают хуже ожидаемого, и хотите попытаться найти корень проблемы? В таком случае может помочь счетчик FPS, и есть ряд программ, которые предназначены именно для этого.

Что такое FPS?

Показатель частоты кадров, измеряемый в кадрах в секунду (fps), отвечает за то, насколько плавно работает та или иная игра на вашем компьютере. Разумеется, чем выше показатель, тем плавнее геймплей. Если ваш ПК выдает низкую частоту кадров (ниже 30 в секунду или около того), то любая игра будет отображаться прерывисто или медленно, что очень раздражает. FPS – очень полезный показатель для оценки игровой производительности вашего оборудования, из-за чего многие энтузиасты частенько любят похвастаться.

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

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

Ни для кого не секрет, что абсолютно каждый геймер стремится добиться максимального значения FPS, поскольку это не только приятно для глаз, но и предоставляет преимущество в соревновательных играх (например, CS:GO и PUBG).

Достаточно убедительно? Что ж, тогда вот несколько способов, как измерить показатель частоты кадров на своем ПК.

Встроенный счетчик FPS в Steam

Если вы играете с помощью платформы Steam, то у нас хорошие новости: сервис имеет встроенный счетчик FPS. Чтобы включить эту функцию, зайдите в «Настройки Steam»> «В игре»> «Отображения частоты кадров». Откройте список, и выберите нужную опцию (там можно выбрать место расположение счетчика).

ВАЖНО: если перед изменением настроек включена какая-либо игра, её нужно закрыть.

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

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

Если же вы используете другую программу запуска игр, например Epic Games или EA Origin, проверьте настройки, поскольку там также может быть что-то похожее.

FPS MONITOR

FPS Monitor – специальная программа, которая отображает не только показатель FPS, но и множество других параметров, характеризующих поведение вашего оборудования в игре.

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

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

RAZER CORTEX

Razer Cortex — бесплатный ускоритель, который оптимизирует производительность игр, которые вы запускаете. Программа автоматически закрывает второстепенные фоновые процессы, чтобы освободить как можно больше оперативной памяти. Таким образом, геймплей становится намного плавнее. Что более важно, инструмент имеет встроенный счетчик FPS, а также функцию увеличения частоты кадров!

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

MSI Afterburner

Иногда простого отслеживания частоты кадров недостаточно, поскольку некоторые пользователи хотят знать множество другой информации (например, загрузку видеопамяти, нагрузку на ядра ЦПУ и т.д.). В таком случае стоит установить MSI Afterburner – один из лучших инструментов для просмотра статистики подобного рода. Технически, основная цель программы — разгон видеокарты, но она также обеспечивает невероятно подробный настраиваемый оверлей с большим количеством статистических данных. Кроме того, Afterburner совместим с любой видеокартой и не ограничивается лишь устройствами, выпущенными компанией MSI.

При установке MSI Afterburner убедитесь, что включили прилагаемое приложение RivaTuner Statistics Server (требуется для отображения информации о производительности). Откройте настройки Afterburner и перейдите на вкладку «Мониторинг». Там вы увидите огромный список показателей, которые можно отобразить, включая частоту кадров, использование графического процессора, памяти, процессора, скорость вращения вентилятора и многое другое.

Просмотрите список и поставьте галочку напротив того компонента, который вы хотите видеть, а затем установите флажок на «Показать в экранном меню».

Как только вы закончите, нажмите OK и запустите нужную игру. Нажмите сочетание клавиш, выбранное в настройках, и увидите специальное меню в углу экрана, которое и покажет статистику о производительности вашего ПК.

FRAPS

Мы не могли обойтись без старого-доброго Fraps! Это, вероятно, самый популярный способ проверки частоты кадров для Windows. По сути, изначальная задача программы – скриншоты во время игры, а также запись игрового процесса. Но здесь также есть функция, которая позволяет добавлять счетчик FPS в игры.

Fraps имеет как бесплатную, так и платную версии (37 долларов или около 2 800 рублей). Если вы намерены использовать программу сугубо для проверки FPS, то бесплатной версии более чем достаточно. Лучшая часть? Fraps поддерживает все версии Windows, от XP до Windows 10!

GEFORCE EXPERIENCE

Если на вашем ПК установлена видеокарта NVIDIA GeForce, то для проверки частоты кадров можно использовать GeForce Experience. Это дополнительное программное обеспечение от NVIDIA для оптимизации игр. Помимо счетчика FPS, инструмент также оптимизирует игры, графику, записывает геймплей, добавляет дополнительные фильтры, а также обновляет драйверы GeForce.

Программное обеспечение доступно для Windows 7, 8 и 10. Плата за него не требуется – вам просто нужна видеокарта NVIDIA GeForce.

RADEONPRO

Пользователям AMD не стоит беспокоиться, так как для них есть Radeon Pro, эквивалент GeForce Experience, но для компьютеров, оснащенных видеокартой от AMD. Это инструмент для оптимизации игровой графики и частоты кадров. Кроме того, программа также поддерживает создание скриншотов, запись игрового процесса и эффекты постобработки.

Вы можете включить счетчик кадров на вкладке «FPS Counter» в меню настроек. Оттуда вы можете настроить функцию, а также горячие клавиши.

Bandicam

Bandicam — самая популярная программа для записи экрана для Windows. Инструмент, естественно, также имеет встроенный счетчик FPS, который можно использовать для просмотра частоты кадров в реальном времени во время игр. Для этого нужно переключиться в специальный режим записи.

Максимальная частота кадров этой программы — 120. Сам счетчик имеет два режима:

  • Режим без записи — FPS отображается зеленым цветом.
  • Режим записи — FPS отображается красным цветом.

Проверка внутриигровых настроек

Если вы не хотите скачивать какое-либо дополнительное программное обеспечение, то во многих играх есть встроенные счетчики частоты кадров. Они особенно полезны для онлайн-игр, поскольку могут отображать различную статистику (например, пинг). Вот несколько популярных примеров:

  • Fortnite: откройте «Настройки»> «Видео»> «Показать FPS».
  • Overwatch: выберите «Параметры»> «Видео»> «Показать статистику производительности» и разверните меню, чтобы включить дополнительную статистику.
  • League of Legends: нажмите Ctrl + F в игре, чтобы просмотреть статистику частоты кадров и задержки.
  • Dota 2: перейдите в «Настройки»> «Расширенные настройки»> «Отображать информацию о сети».
  • CounterStrike: Global Offensive: откройте консоль, и введите « net_graph 1». После этого в игре будет отображаться пинг, ФПС и еще несколько параметров.

Итоги

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

Источник

Разрешение монитора, что такое FPS и откуда он берётся

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

Сделать это не так просто, как кажется на первый взгляд. Нужно учесть массу характеристик комплектующих и позаботиться, чтобы их сочетание было сбалансировано. В этой статье разберемся, что к чему, где важное и где нет, от какого конкретно «железа» будет зависеть качество гейминга. И начнём с того, на что смотрит в процессе игры – с монитора.

Что такое разрешение экрана и почему оно настолько важно?

Картинка на мониторе складывается из множества точек, которые светятся разным цветом. Это не абстрактные геометрические точки, а вполне себе реальные микроскопические устройства, способные менять свой цвет под действием электрического тока. Такие устройства называют пикселями. Более подробно о том, как всё это работает, мы уже рассказывали в статье, посвященной мониторным матрицам.

Разрешение монитора, что такое FPS и откуда он берётся

У каждого монитора пикселей фиксированное количество. И считают их по осям X (горизонтальной) и Y (вертикальной). Это цифры и называют разрешением монитора. Существует несколько стандартных разрешений, из которых самые распространенные:

  • 1280 пикселей по горизонтали и 720 по вертикали – формат HD (High Definition), он же 720p;

  • 1920 x 1080 – FHD (Full High Definition), или 1080p, самый «народный» формат;

  • 2560 x 1440 – QHD (Quad High Definition), или 1440p или 2К;

  • 3840 x 2160 – UHD (Ultra High Definition), также называется 2160p или 4К.

Разрешение монитора, что такое FPS и откуда он берётся

Как нетрудно заметить, для простоты восприятия указывают только один параметр – число пикселей по одной из осей. Дело в том, что самое распространенное соотношение сторон монитора это 16:9. Потому число пикселей по второй оси в этом случае будет понятно и так, ведь оно жёстко задано математически. Есть и мониторы с другим соотношением сторон, они будут иметь другое разрешение. К примеру, у 3440 х 1440 при соотношении 21:9, но для гейминга их используют заметно реже.

Большой экран – больше пикселей?

Пиксель – это минимальный рабочий элемент монитора. Один пиксель может давать быть только одного цвета в каждый момент времени. Поэтому чем больше плотность пикселей на 1 мм2 экрана (как правило плотность измеряется в ppi – пикселей на дюйм) – тем чётче и достовернее будет изображение.

Поясним на примере. Есть 10 больших кубиков разных цветов. Составить из них реалистичную картинку сложно, поскольку «пикселей» всего 10. Если на той же площади разместить 2 073 600 махоньких кубиков (1920 х 1080), задав цвет каждого, то уже получится картинка с хорошей детализацией. Тут же стоит отметить, что диагональ дисплея и разрешение – разные, не связанные друг с другом характеристики.

Разрешение монитора, что такое FPS и откуда он берётся

Очевидно, что от размера монитора зависит и его площадь. Но вот количество пикселей, которое на этой площади помещается (то есть их плотность), может быть совершенно разным. Например, монитор LG 24MD4KL-B имеет диагональ 24 дюйма. Диагональ и площадь небольшие, но разрешение богатырское – 3840 х 2160 пикселей (4К). Есть и обратные примеры: Samsung Odyssey G3 – огромный монитор с диагональю 32 дюйма, но стандартным FHD-разрешением.

Если у монитора большая диагональ, а разрешение 1920 х 1080, то размер каждого отдельного пикселя достаточно немаленький, а их плотность низкая. Это не хорошо. При близком взгляде на такой экран изображение будет зернистым и «замыленным».

Безусловно, сила этого эффекта разная. Всё зависит от соотношения диагонали к разрешению (то есть от конкретного показателя плотности пикселей), от остроты зрения пользователя. В целом считается, что оптимальные размеры FHD-монитора не должны превышать 24-27 дюймов. 1920 x 1080 на 32-дюймовом дисплее смотрятся уже откровенно плохо.

FPS как мерило «качества гейминга»

Наверняка каждый начинающий геймер слышал аббревиатуру «FPS». Как минимум в любых тестах игр и «железа» фигурирует именно эта характеристика. Чем больше система обеспечивает FPS – тем лучше. Сейчас разберёмся, что же это за параметр такой.

Выше упоминалось, что компьютер собирает картинку попиксельно. Каждому пикселю он задаёт цвет, подавая на него ток определённых параметров, в итоге получается статичное изображение. Что надо для того, чтобы изображение изменилось?, – Нужно изменить цвет каждого пикселя. Другими словами, создать следующую статичную картинку, заменив ею предыдущую.

Разрешение монитора, что такое FPS и откуда он берётся

Если делать это достаточно быстро, то пользователь, сидящий перед монитором, будет видеть не отдельные изображения, а их плавный переход из одного в другое. По факту он увидит движущуюся картинку. Этот принцип работы изобрели ещё Братья Люмьер в 1883 году, и с тех пор он никак не изменился.

Чтобы человек визуально воспринял смену картинок именно как реалистичное движение, менять их нужно с определенной скоростью. Минимальным порогом считаются 24 кадра в секунду, такая частота смены кадров у большинства фильмов. FPS так и расшифровывается: Frame Per Second или «кадры в секунду». Этот же параметр еще называют «частота смены кадров», «кадровая частота» или «framerate», или «фепес» на сленге.

Какой должен быть FPS для комфортной игры?

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

Разрешение монитора, что такое FPS и откуда он берётся

Для примера немое кино начала 20 века. Все как-то странно суетятся и бегают потому, что скорость съёмки тогда составляла 16 кадров в секунду. А чтобы на экране кино смотрелось более-менее плавно, приходилось ускорять уже воспроизведение, дотягивая его до искомых 24-25 FPS.

Разрешение монитора, что такое FPS и откуда он берётся

Итого 24 FPS – самый минимум, 30 FPS – адекватный минимум, ну а стандартом качества сейчас принято считать 60 кадров в секунду.

Что влияет на показатель кадровой частоты?

В самую первую очередь – комплектующие компьютера. То «железо» обсчитывает как должен измениться каждый пиксель в каждом последующем кадре. Соответственно, чем компьютер мощнее, чем выше его быстродействие – тем шустрее он все эти расчёты производит, тем скорее монитор получит уже вычисленные параметры пикселей для следующей картинки. При «народном» разрешении 1920 х 1080 и 30 FPS всего за 1 секунду компьютер должен посчитать изменения для 62 208 000 пикселей (1920 х 1080 х 30).

Разрешение монитора, что такое FPS и откуда он берётся

К этому моменту у читателя уже сложилась логическая связка: фреймрейт напрямую зависит от разрешения монитора. Если разрешение 4К (3840 х 2160 пикселей), то для 30 FPS нужно считать уже не 62,2 млн пикселей в секунду, как в примере в предыдущем абзаце, а в 4 раза больше – почти 250 миллионов.

А ещё есть такой параметр, как частота обновления монитора. Это техническая характеристика определяет как много кадров дисплей способен отобразить в секунду. У простых дисплеев это 60 Гц, то есть не более 60 FPS.

Если «железо» может обсчитать в игре только 60 кадров за секунду, то и на мониторе будут отображаться 60 FPS, даже если его максимальная частота обновления значительно больше. Но справедливо и обратное: при конфигурации, способной посчитать 120 кадров за секунду, на мониторе с частотой обновления 75 Гц будут только 75 FPS.

Наконец, нужно обязательно отметить, что фреймрейт сильно зависит от конкретной игры. В одних играх графика посложнее, в других попроще. Свою лепту вносят дополнительные графические эффекты (такие как тесселяция, игра света/тени, обработка физики объектов), которые дополнительно нагружают видеокарту. И конечно сильно влияет оптимизация со стороны разработчиков.

Как итог первый Doom и Cyberpunk 2077 на одном и том же компьютере при одинаковом разрешении выдадут совершенно разный FPS. Вдобавок можно серьёзно увеличить кадровую частоту, если снизить настройки графики и/или разрешение дисплея.

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

От каких комплектующих помимо монитора зависит FPS?

Центральный процессор (ЦП, CPU)

Разрешение монитора, что такое FPS и откуда он берётся

На него ложится львиная доля работы по чистой математике, по загрузке видеокарты свежими данными. Грубо говоря, видеокарта – пулемёт, а процессор подаёт патроны. Фактически в играх процессор вторичен.

Оперативная память (ОЗУ, RAM)

Разрешение монитора, что такое FPS и откуда он берётся

В ней хранятся данные, которые процессор использует для расчётов, и которые при надобности отправляются с видеопамять видеокарты. В играх это третичный элемент системы, слабо влияющий на производительность, но иметь достаточное количество ОЗУ необходимо.

Видеокарта (GPU)

Разрешение монитора, что такое FPS и откуда он берётся

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

Накопитель

Разрешение монитора, что такое FPS и откуда он берётся

Сперва данные переносятся с накопителя в «оперативку», потом в видеопамять. Если накопитель будет медленный – непосредственно FPS не снизится, но появятся так называемые «статтеры» (противные мини-подвисания на пол секунды). Поэтому рекомендуется устанавливать игры на твердотельные накопители (SSD).

Прочее

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

  • Блок питания – «кормящая мать» компьютера. БП должен обеспечивать достаточное и качественное поступление энергии к процессору, видеокарте и т.д. Особенно важно в моменты пиковой нагрузки, а обеспечение достойного FPS – это серьёзная нагрузка. Категорически нельзя, чтобы процессор/видеокарта были «на голодовке»;
  • Система охлаждения процессора. Чем больше нагрузка на чип – тем больше его тепловыделение. Это тепло нужно отводить, иначе производительность процессора начнёт снижаться. О том, какие бывают системы охлаждения и как правильно их выбирать, мы уже рассказывали вот тут.
  • Материнская плата. Основа, на которой размещено большинство комплектующих, и которая обеспечивает их взаимосвязь. Её прямое влияние на FPS в играх на уровне погрешности и материнские платы со словом «Gaming» в названии – просто маркетинговая замануха. Но всё же у платы должно быть достаточное количество цепей питания и соответствующее охлаждение для равномерной работы процессора, поддержка скороходной памяти.

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

Заключение

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

Разрешение монитора, что такое FPS и откуда он берётся

Приступая к сборке компьютера мечты, следует обязательно учесть всё то, о чём шла речь в этой статье. Сориентироваться «по железу» поможет наш конфигуратор. Он покажет ожидаемую производительность системы и примерный FPS, который та сможет обеспечить в актуальных проектах. И конечно на помощь всегда готовы прийти наши спецы по телефону: 8 800 500 9926.

Frame time в играх что это

Что такое фпс? Это английская аббревиатура (т.е. сокращение) от слов 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). Да, его тоже можно включить на мониторинге и он есть в нормальных тестах на ютубе. Если он ровный (ситуация на картинке справа) — значит играть комфортно. Если дёрганный (картинка слева) — играть не очень комфортно. Если ровный, но с «шипами» вверх, и таких шипов много (смотри картинку выше) — значит это ситуация из описанного мной примера, играть очень некомфортно.

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

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

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

реклама

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

Самые быстрые кадры в этом замере выдавали мгновенные значения более 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 не показывает скорость самого медленного кадра сцены. Давайте посмотрим на другой график.

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

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

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

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

Как мониторить FPS и другие параметры в играх

Знать, сколько кадров в секунду выдает игра важно сразу по нескольким причинам. Во-первых, так гораздо проще настраивать графику. Вы сразу видите прирост или падение производительности в зависимости от измененных настроек. Во-вторых, важно понимать, какое количество кадров в секунду будет оптимальным для вашей системы. Частота кадров — показатель динамический. Единого стандарта нет, но есть некоторые устоявшиеся форматы.

Минимально комфортным считается показатель в 30 кадров в секунду. Именно на этом уровне работают многие консольные игры. Стоит отметить, что до появления форматов высокой четкости (то есть до Xbox 360 и PlayStation 3) консольные игры работали в стандартных телевизионных системах PAL и NTSC. Частота кадров там различается: 25 и 30 кадров соответственно (или 50 и 60 кадров). То есть в то время играбельными считались и 25 кадров. Из-за этого игры в формате PAL кажутся более медленными.

Современные стандарты не лимитируют количество кадров в секунду. Оптимальное значение в первую очередь зависит от частоты дисплея. Так, если вы используете стандартный монитор с частотой развертки 60 Гц, то количество кадров в секунду, выдаваемое игрой, должно совпадать. Если оно будет выше, то визуально это заметить практически невозможно, только по мониторингу. Именно поэтому к монитору с частотой обновления 60 Гц нет смысла покупать топовую видеокарту: она будет либо работать не в полную силу, если выставить ограничение на 60 кадров, либо «молотить» впустую, выдавая лишние кадры.

Стоит также отметить, что современные мониторы и видеоадаптеры поддерживают переменную частоту кадров. То есть если ваше железо не может выдать 144 кадра для соответствующего монитора, вы не почувствуете рывков в изображении. Поддержка VRR (variable refresh rate) — одна из фишек нового интерфейса HDMI 2.1, которыми оснащены новые консоли.

Как отобразить FPS на экране

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

Откройте настройки и перейдите на вкладку «В игре», затем включите счетчик кадров. Можно выбрать отображение в любом углу экрана. Такие же функции есть и других лаунчеров. Так, можно включить счетчик кадров в Origin («Настройки» — «Дополнительно») и Ubisoft Connect («Настройки» — «Общие»). Также счетчик кадров можно настроить в приложениях от производителя видеокарты. Например, в GeForce Experience нужно зайти в «Настройки» — «Расположение HUD».

Гораздо больше возможностей дают сторонние программы. В нулевых для отображения FPS часто использовали программу FRAPS. Программа уже давно не развивается, последняя версия вышла в 2013 году. Однако при желании скачать ее можно и сейчас. Как минимум, потому что FRAPS поддерживает запись лога, который затем можно просмотреть в удобоваримом виде через программу FRAFS. Тем не менее лучше использовать более продвинутые инструменты вроде MSI Afterburner или FPS Monitor.

Как настроить мониторинг MSI Afterburner

Преимущество MSI Afterburner в том, что это бесплатная программа, в отличие от FPS Monitor, лицензия для которого стоит 350 рублей. Поэтому настраивать мониторинг мы будем именно на примере MSI Afterburner.

После установки MSI Afterburner и RivaTuner Statistics Server стоит зайти в «Настройки» (иконка с шестеренкой), далее во вкладку «Интерфейс» и поменять скин на более удобный Default MSI Afterburner v3 skin — big edition.

Почти все настройки RivaTuner Statistics Server можно оставить по умолчанию. Проследите, чтобы были активированы пункты автозагрузки отображения оверлея: Start with Windows и Show On-Screen Display. Также может пригодиться функции ограничения кадров в секунду (Framerate Limit), а также масштабирование (On-Screen Display Zoom).

Все основные настройки расположены на вкладке «Мониторинг». Здесь нужно выбрать необходимые параметры. Как минимум это должна быть частота кадров. Если же вы хотите получить полную картинку, то советуем выбрать следующее: температура ГП, загрузка ГП, загрузка памяти, частота ядра, температура ЦП, загрузка ЦП, частота ЦП, загрузка ОЗУ, частота кадра, время кадра.

Если в системе две видеокарты (встроенная и дискретная), то параметры будут дублироваться для ГП1 и ГП2. Посмотреть, какой именно графический адаптер первый, а какой второй можно на вкладке «Основные» в самом верху.

Чтобы параметр отображался в оверлее, нужно проставить галочку «Показывать в ОЭД». Также можно переименовать параметр, если отметить галочку «Переопределить имя группы». Также стоит задать горячие клавиши для скрытия мониторинга с экрана. На вкладке «ОЭД» назначьте клавишу для «Показать ОЭД» и «Скрыть ОЭД».

Что такое показатели 1% и 0,1%

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

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

В MSI Afterburner можно настроить отображение 1% и 0,1%. Но измерять их нужно на определенном отрезке времени, активируя вручную. Чтобы начать и завершить тест, назначьте клавиши в меню «Глобальные горячие клавиши бенчмарка» на вкладке «Бенчмарк».

Что такое время кадра

Время кадра или Frametime показывает задержку между кадрами, которая измеряется в миллисекундах. Чем она меньше, тем лучше. Однако важна не только низкая задержка между кадрами (то есть высокий фреймрейт), но и плавность. Если график фреймтайма ровный без резких перепадов, то картинка будет плавной даже при не самой высокой частоте кадров. Если график неровный, то будут ощущаться статтеры, то есть рывки в картинке.

То есть стабильные 30 кадров в секунду гораздо лучше плавающей частоты от 20 до 40 кадров. Именно поэтому в некоторых случаях стоит «залочить» FPS на определенном значении. Если система не вытягивает стабильные 60 кадров, то поставить, например, 40 или 50.

Что еще можно узнать из мониторинга

MSI Afterburner, кроме FPS, позволяет вывести еще и другие параметры: температуру и загрузку комплектующих, частоту работы, загрузку отдельных ядер и т. п.

Неуловимая проблема тайминга кадров

Наконец-то появилось объяснение того, почему некоторые игры тормозят на вашем PC (и луч надежды на то, что в ближайшем будущем они тормозить перестанут).

Т-т-тормоза

Вы с нетерпением ждали следующей части вашей любимой серии видеоигр для PC и она наконец вышла. На этот раз вы хотите насладиться ею во всей полноте, поэтому потратили деньги и время на тщательную подготовку. Вы заменили процессор, поставили сверхсовременную видеокарту, добавили ещё ОЗУ — чёрт возьми, даже купили RAID на SSD. Игра должна быть плавной с самой заставки.

Предзаказ наконец разблокирован и вы только что завершили установку. В нервном предвкушении вы впервые запускаете игру. Пока всё хорошо — она работает с частотой 60 кадров в секунду. Или, по крайней мере, так сообщает счётчик кадров тюнера GPU. Но что-то не так. Вы делаете мышью резкие, хаотичные движения. Стрейфитесь влево-вправо, и тут игра… начинает тормозить! Блин, да как такое возможно? Как она может тормозить при 60 кадрах в секунду?

Если такое с вами никогда не случалось, то это может показаться смешным. Но если вы их испытали, то, скорее всего, ненавидите тормоза всей душой. Тормоза в играх. Это не старый добрый «лаг». Не низкая частота кадров. Это просто «тормоза», происходящие при высоких частотах кадров на идеальных, супербыстрых машинах. Что это, откуда они взялись и как от них избавиться? Позвольте мне рассказать вам историю…

Тормоза, плавность, скорость… это ведь одно и то же?

Видеоигры работали с частотой 60 fps ещё со времён первых аркадных автоматов в 70-х годах. Обычно ожидается, что игра работает с той же частотой, которая используется дисплеем. Так было до популяризации 3D-игр, в которых впервые стала допустимой пониженная частота кадров. В 90-х, когда «3D-карты» (так мы называли их до того, как они стали «GPU«) начали заменять программный рендеринг, люди играли в игры при 20 fps, а 35 fps считались приличным значением для серьёзных сетевых боёв. Я не шучу.

Сегодня у нас есть супербыстрые машины и «разумеется, они могут работать при 60 fps«. Однако количество разочарованных скоростью игр пользователей как никогда велико. Как такое возможно? Проблема оказывается не в том, что игры не могут работать достаточно быстро, а в том, что они тормозят, даже когда могут работать быстро!

Если почитаете разные игровые форумы, то наверняка найдёте подобные сообщения:

image

Можно подумать, что это единичные проблемы, но посмотрите на статистику поисковых запросов Google:

image

За последние пять лет тормоза (stutter) стали (относительно) более серьёзной проблемой, чем скорость!

(Учтите, что это относительные значения. Они не значат, что в целом люди спрашивают о торможениях больше, чем о частоте кадров. Они значат, что запросы о частоте кадров (frame rate) остаются на том же уровне, а количество запросов о тормозах растёт, особенно в последнее время.)

Десяток лет в поисках причины необъяснимых тормозов

Пациент скорее жив, чем мёртв, просто тормозит чуть больше, чем нужно.

Впервые я столкнулся с этой проблемой ещё примерно в 2003 году. Мы работали над Serious Sam 2, и пользователи начали отправлять нам отчёты о том, что они тестировали что-то на пустом уровне, и при перемещениях мыши движения не были плавными. Это сопровождалось очень характерным паттерном на графике частоты кадров, который мы прозвали «кардиограммой».

Мы думали, что где-то в коде есть баг, но не могли его найти. Казалось, что проблема появляется и исчезает случайным образом — после перезапуска приложения, перезагрузки машины… а потом игрок менял какую-нибудь опцию скорости и она исчезала. Потом игрок снова включал эту опцию, но проблема не возвращалась. Она была похожа на призрака.

Очевидно, что эта проблема возникала не только у нас. Наблюдая за теми же проблемами в других играх, мы начали думать, что виноваты драйверы. Но это происходило на видеокартах разных производителей. Даже на разных API (OpenGL, DirectX 9, DirectX 11…) — единственным общим у них было то, что они появлялись на разных машинах, в некоторых сценах… иногда.

image

Несси, бигфут… почти столь же неуловимые, как и проблема с «кардиограммой».

Мы выпустили ещё несколько игр, но это странное поведение по-прежнему появлялось и исчезало. Некоторых пользователей оно раздражало, и мы рекомендовали им изменить опции скорости — иногда это помогало, иногда нет. Такова жизнь, не правда ли?

Но однажды, в отличный зимний день в начале 2013 года мой коллега Дин позвал меня, чтобы я увидел ещё один пример этой проблемы, который он на тот момент мог относительно стабильно воспроизводить. На этот раз проблема возникала на уровне из Serious Sam 3. Мы экспериментировали с опциями в этой сцене, пока до меня внезапно не дошло. Я понял, в чём была причина! И она была очень проста — неудивительно, что она ускользала от всех в течение десятка лет.

Изменив всего одну очень простую опцию игрового движка, мы смогли заставить эту проблему появляться и исчезать в этой конкретной сцене. Но нам стало сразу же очевидно, что на её качественное решение потребуется гораздо больше усилий. Усилий не только с нашей стороны, но и всей игровой экосистемы PC — программистов драйверов GPU, разработчиков API, поставщиков ОС — каждого.

В чём же была причина всё это время

Хотел бы я показать вам её на примере сцены из Serious Sam 3, которую мы с Дином исследовали пять лет назад. Или даже ещё лучше — на примере тестовой сцены из Serious Sam 2, в которой мы впервые её увидели. Но, к сожалению, после замены «железа» этот ускользающий зверь может переместиться в другую сцену. У меня есть сцена из The Talos Principle, в которой мне недавно удалось воспроизвести эту проблему, и я заснял несколько видео, позволившие проанализировать её более подробно.

Но прежде чем мы начнём, убедитесь, что вы на самом деле смотрите видео в 60 fps. Для просмотра представленных ниже примеров переключитесь в 1080p60, как показано на картинке:

image

Чтобы смотреть видео в 60 fps, переключитесь в YouTube на 1080p60.

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

Проверка, проверка, раз, два, три… Вы должны видеть это видео в плавных 60 fps.

А теперь перейдём к делу. Если вы сталкиваетесь с тормозами, то вероятнее всего это выглядит примерно так:

Вот как выглядят «тормоза при 60 fps». Мы называем этот симптом «кардиограммой».

Да, именно так выглядят «тормоза», даже когда игра работает с 60 fps. Вы могли сталкиваться с чем-то подобным в любой современной игре, и вероятно думали, что «игра не оптимизирована». Так вот, вам стоит пересмотреть свою теорию (о том, что такие тормоза возникают из-за «медленного» рендеринга игры). Если игра «слишком медленная», то это значит, что в какие-то моменты она не сможет достаточно быстро отрендерить один кадр, а монитору придётся заново показывать предыдущий кадр. Поэтому когда мы записываем видео такой игры в 60 fps, то видим «пропущенные кадры». (Это такие кадры, при которых следующий кадр не был отрендерен вовремя, поэтому текущий кадр показывается дважды.)

Теперь снова запустите предыдущее видео с тормозами («кардиограммой»), поставьте его на паузу и нажимайте в проигрывателе YouTube клавишу . (точка), чтобы перемещаться от кадра к кадру. Попробуйте заметить, когда один и тот же кадр показывается дважды. Давайте, попробуйте, я подожду…

Ну как, нашли? Нет? Странно, не правда ли.

Как такое может быть?

Позвольте мне объяснить более подробно. Вот сравнение идеально плавного видео и видео с тормозами в виде «кардиограммы», воспроизводимые на 1/20 от исходной скорости, чтобы мы могли видеть отдельные кадры:

Сверху правильное видео с 60 fps, снизу «кардиограмма». Воспроизведение замедлено в 20 раз.

Можно заметить две вещи: во-первых, они действительно воспроизводятся с одинаковой частотой — когда сверху есть новый кадр, снизу тоже есть новый кадр. Во-вторых, они по какой-то причине движутся немного по-разному — есть заметный «разрыв» в середине изображения, который становится то более, то менее заметным.

Внимательный зритель может заметить и ещё одну любопытную деталь: нижнее — тормозящее — изображение — которое считается «медленным»… на самом деле «опережает» правильное. Странно, правда?

Если мы посмотрим на два соседних кадра и их тайминги (заметьте, что во всех показанных мной видео были точные таймеры (с точностью 1/10 000 секунды), то можем заметить нечто очень интересное: первые два кадра идеально синхронизированы, но третий…

image

Шесть идущих друг за другом кадров из видео с точными таймингами. Верхние — правильные, нижние — с «кардиограммой».

…на третьем кадре мы видим, что дерево в «тормозящем» видео значительно опережает свою копию из правильного видео (обведено красным). Также можно заметить, что на этот кадр, похоже, ушло больше времени (обведено жёлтым).

Постойте… если видео «медленнее», и на кадр «ушло больше времени», то как он может опережать правильный?

Чтобы разобраться в этом, вам нужно понять, как в наше время игры и другие трёхмерные интерактивные приложения реализуют анимации и рендеринг. (Опытные разработчики должны простить меня за то, что я надоедаю им с очевидными вещами, но мне нужно быть уверенным, что текст смогут понять все читающие этот текст игроки.)

Краткая история таймингов кадра

Давным-давно, в далёкой-далёкой галактике… Когда разработчики создавали первые видеоигры, они обычно подстраивались под точную частоту кадров, с которой работает дисплей. В регионах NTSC, где телевизоры работали при 60 Гц, это означало 60 fps, в регионах PAL/SECAM, где телевизоры работали при 50 Гц, это означало 50 fps. Они даже и думать не могли о какой-то возможности «пропуска кадра».

Большинство игр было очень вылизанными и упрощёнными концептами, работавшими на конкретном оборудовании — обычно на аркадном компьютере, или на «домашнем микрокомпьютере», наподобие ZX Spectrum, C64, Atari ST, Amstrad CPC 464, Amiga и т.д. По сути, разработчик создавал дизайн, реализовывал и тестировал игру под конкретную машину и конкретную частоту кадров, и был на 100% уверен, что она никогда не пропустит ни кадра.

Скорости объектов тоже хранились в единицах «кадров». Поэтому говорили, не на сколько пикселей в секунду должен двигаться персонаж, а на сколько пикселей за кадр. Известно, что в Sonic The Hedgehog для Sega Genesis скорость вращения, например, была равна 16 пикселям за кадр. У многих игр даже были отдельные версии для регионов PAL и NTSC, в которых анимации вручную рисовались специально под 50 fps и 60 fps. По сути, запуск при любой другой частоте кадров даже не рассматривался.

Когда игры начали работать на более разнообразных машинах — в частности, на PC с расширяемым и заменяемым «железом» — разработчики больше не могли знать, с какой частотой кадров теперь будет работать игра. Дополните это тем фактом, что игры стали более сложными и непредсказуемыми. Самыми выдающимися в этом плане стали 3D-игры, отличавшиеся разнообразием сложности сцен, иногда даже зависящей от игрока. Например, всем нравится стрелять в бочки с топливом — при этом происходит огромный взрыв, красивые эффекты… и неизбежная просадка кадров. Но здесь никто не против пропуска кадров, потому что это так интересно.

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

Если мы не можем быть уверенными, при какой частоте кадров будет работать игра, нам приходится измерять текущую частоту кадров и постоянно адаптировать физику и скорость анимаций игры. Если один кадр занимает 1/60 секунды (16,67 мс), а персонаж бежит со скоростью 10 м/с, то в каждом кадре он перемещается на 1/6 метра. Но если кадр перестаёт занимать 1/60 секунды, а вместо этого внезапно начал занимать 1/30 секунды (33,33 мс), то надо начать перемещать персонажа на 1/3 метра (в два раза «быстрее») за кадр, чтобы на экране он продолжал двигаться с кажущейся постоянной скоростью.

Как же игра это делает? По сути она измеряет время в начале одного кадра, а затем в начале следующего и вычисляет разность. Это довольно простой способ, но он очень хорошо работает. То есть простите, он работал хорошо. В 90-х (вспомните фразу «35 fps считались приличным значением для серьёзных сетевых боёв» из начала статьи), людей более чем устраивал этот способ. Но в то время графическая карта (не забывайте, их даже ещё не называли GPU) была очень «тонким» элементом «железа», и попаданием объектов на экран непосредственно управлял основной ЦП. Если в компьютере не было 3D-ускорителя, процессор даже сам отрисовывал эти объекты. Поэтому он точно знал, когда они появятся на экране.

Что происходит сегодня

Со временем у нас появились более сложные GPU, и они становились всё более и более «асинхронными». Это значит, что когда ЦП отдаёт GPU команду отрисовать что-то на экране, то GPU просто сохраняет эту команду в буфер, чтобы ЦП занимался своими делами, пока GPU выполняет рендеринг. В результате это привело к тому, что когда ЦП сообщает GPU, что «это конец кадра», GPU просто сохраняет сообщение как ещё один фрагмент данных. Но он не относится к нему как чему-то особо срочному. Да и как он может — ведь ему по-прежнему нужно обрабатывать часть из ранее переданных команд. Он покажет кадр на экране, когда закончит всю работу, которую ему дали раньше.

Поэтому когда игра пытается вычислить тайминги, вычитая метки времени начала двух кадров, то актуальность этого, грубо говоря… весьма сомнительна. Давайте вернёмся к нашему примеру из коротких видео. У нас есть эти кадры, где камера перемещается вдоль деревьев:

image

Шесть идущих друг за другом кадров из видео с точными таймингами. Верхние — правильные, нижние — с «кардиограммой».

Теперь вспомните то, что я говорил о таймингах и перемещениях. В первых двух кадрах тайминг кадра равен 16,67 мс (то есть 1/60 секунды), и камера движется на одну и ту же величину и сверху, и снизу, поэтому деревья синхронизированы. На третьем кадре (внизу) игра увидела, что время кадра равно 24,8 мс (что больше 1/60 секунды), поэтому она думает, что частота кадров снизилась и торопится переместить камеру чуть дальше… только для того, чтобы обнаружить, что тайминг четвёртого кадра составляет всего 10,7 мс, поэтому камера движется здесь чуть медленнее, и деревья снова более-менее синхронизируются. (Синхронизация восстановится полностью только спустя два кадра.)

Здесь происходит следующее: игра измеряет то, что она считает началом каждого кадра, а эти тайминги кадров иногда по разным причинам колеблются, особенно на такой высоконагруженной многозадачной системе, как PC. Поэтому в некоторые моменты игра думает, что не успевает обеспечить 60 fps, и в какие-то моменты генерирует кадры анимации, рассчитанные на меньшую частоту кадров. Но из-за асинхронной природы работы GPU он на самом деле успевает обеспечить 60 fps для каждого отдельного кадра этой последовательности.

То есть, по сути, здесь нет никакой проблемы — всё действительно работает плавно, просто игра об этом не знает.

При этом мы возвращаемся к началу статьи. Наконец обнаружив причину проблемы (на самом деле, это иллюзия проблемы — ведь её на самом деле нет, так?), вот что мы сделали для проверки:

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

В первой части видео вы с самого начала можете увидеть проблему с «кардиограммой». Затем мы изменяем «магическую» опцию, после чего всё становится идеально плавным!

Что же это за волшебная опция? В Serious Engine мы называем её sim_fSyncRate=60 . Если говорить простыми словами, то это значит «полностью игнорировать все эти заморочки с таймингами и притвориться, что мы всегда замеряем стабильные 60 fps». И благодаря этому всё работает плавно — просто потому, что всё и так работало плавно! Единственная причина, по которой всё выглядело тормозящим — это ошибочные тайминги, используемые для анимации.

И на этом всё? Достаточно сделать так и всё станет замечательно?

Неужели решение настолько простое?

К сожалению — нет. Это всего лишь тест разработчиков. Если мы перестанем замерять частоту кадров в реальных ситуациях и просто будем предполагать, что она всегда равна 60, то когда она упадёт ниже 60 — а на PC она рано или поздно обязательно упадёт по тем или иным причинам: ОС запустит какой-нибудь фоновый процесс, включится экономия энергии или защита от перегрева GPU/ЦП… кто знает — то всё замедлится.

Итак, если мы изменяем частоту кадров, то возникают торможения, если нет — то всё в какие-то моменты может замедляться. Что же нам делать?

Реальное решение заключается в том, чтобы измерять не начало/завершение рендеринга кадра, а время отображения картинки на экране.

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

Что дальше?

Но не волнуйтесь, всё не так мрачно. Многие люди в графической экосистеме активно работают над реализацией поддержки правильного тайминга кадров для разных API. Для Vulkan API уже есть расширение под названием VK_GOOGLE_display_timing , которое продемонстрировало свою полезность в реализации proof of concept. Однако оно доступно только для ограниченного ассортимента оборудования, в основном на Android и Linux.

Уже ведётся работа по созданию аналогичных и более качественных систем для всех основных графических API. Когда она закончится? Сложно сказать, потому что проблема лежит довольно глубоко внутри различных подсистем ОС.

Однако я заверяю вас, что Croteam безустанно работает над тем, чтобы эта проблема была решена как можно скорее, и все участники экосистемы интерактивной графики понимают и поддерживают наши усилия.

Мы стремимся сделать это решение доступным для более широкой аудитории, и когда это случится, мы подготовим апдейт The Talos Principle с реализацией этой функции.

Различные помехи и другие подробности

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

«Композитор»

image

Эффект матового стекла? Да, для него нам определённо нужен композитор. Он просто-таки необходим, правда?

За кулисами со всем этим связан концепт под названием «композитный менеджер окон», или композитор. Это система, существующая теперь во всех ОС, которая позволяет окнам быть прозрачными, иметь размытый фон, тени, всплывающие поверх окна Skype и т.д. Композиторы даже могут отображать окна в 3D. Для этого композитор перехватывает управление над последним этапом создания картинки кадра и решает, что ему сделать с ней, прежде чем она попадёт на экран монитора. Это ещё больше всё усложняет.

В некоторых ОС композитор можно отключить в полноэкранном режиме. Но это не всегда возможно, а даже если и возможно — то разве можно запретить запускать игру в оконном режиме?

Управление питанием и тепловыделением против сложности рендеринга

Мы также должны учитывать, что современные ЦП и GPU не работают с фиксированной частотой, а имеют системы, изменяющие их скорости в соответствии с нагрузкой и температурой. Поэтому игра не может просто предполагать, что GPU и ЦП будут иметь одинаковую скорость в каждом кадре. С другой стороны, ОС и драйверы не могут ожидать, что у игры в каждом кадре будет одинаковый объём работы. Чтобы учесть это, необходимо разработать сложные системы для общения этих двух сторон.

Ненормальное программирование, Разработка игр


Рекомендация: подборка платных и бесплатных курсов Unity — https://katalog-kursov.ru/

Скриншот экрана игры

Эта статья посвящена тому, как я смог написать 3D-движок только на формулах Excel. Я реализовал следующий функционал:

  • бесконечная процедурно генерируемая карта лабиринта
  • рендеринг трассировкой лучей в реальном времени
  • вычисление окклюзии
  • рендеринг простейшего освещения
  • шейдер освещения и вычислений
  • движок естественного движения
  • в 3D-движке не используются макросы

* чтобы управлять игрой нажатием клавиш, нужны макросы, управляющие движением с помощью одной простой инструкции копирования.

Можете скачать файл и протестировать его самостоятельно!

Файлы

  • Файл без vba: http://public.cbel.free.fr/?file=Doom.xlsx
  • Файл с vba для перехвата нажатий клавиш: http://public.cbel.free.fr/?file=Doom.xls-v1.1.xlsm
  • Файл с vba и высоким разрешением: http://public.cbel.free.fr/?file=Doom-HD.xls-v1.1.xlsm
  • Файл с vba и кнопками вместо горячих клавиш: http://public.cbel.free.fr/downloads/?file=Doom.xls-Buttons-v1.1.xlsm

Контекст

Учитель информатики однажды сказал нам: «любые вычисления можно выполнить в любом языке программирования, даже через формулы электронной таблицы».

Поначалу, какой бы мудрой ни казалась эта фраза, упоминание в этом списке Excel выглядело глупо…

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

Получив многолетний опыт работы с Excel, мы уже поняли, что единственное ограничение формулы Excel — недостаток способов ввода-вывода.

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

Как бы то ни было, эта работа — не просто какое-то хвастовство… У меня были для неё серьёзные причины.

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

Однако когда большинство людей доходят до решения более сложных задач, они стремятся использовать язык VBA, даже не понимая толком, зачем.

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

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

При использовании в бизнесе формулы обладают следующими преимуществами перед макросами:

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

Примечание: эти пункты в основном относятся к процедурам, используемым как макросы; дополнительная функция, написанная на VBA, может увеличить эффективность, не снижая качества.

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

Если конкретнее, то я нашёл всего два случая, когда потребовался VBA:

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

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

Карта

Моя электронная таблица должна была стать игрой в стиле Doom в лабиринте.

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

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

Для создания случайно генерируемой карты нам нужно быть последовательными, поэтому функцию rand() использовать нельзя, ведь мы не можем контролировать начальное состояние (seed) генератора случайных чисел.

Начальные состояния генератора случайных чисел должны быть позициями (x;y) на карте, чтобы мы могли получать разные значения для каждой позиции, и мы не можем получить результат предыдущего случайного числа как начальное состояние для следующего, или нам придётся хранить всю карту с самого начала.

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

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

Тогда я обнаружил метод средних квадратов (middle-square method), который на самом деле не очень «случаен», потому что в нём используются последовательные начальные состояния. Но он подсказал мне идею того, что можно брать десятичную часть любого другого вычисления.

Я выяснил, что если брать десятичные части sin(x)+cos(y), то наконец-то получаются красивые числа без какого-либо прослеживаемого паттерна, а время вычислений при этом на удивление малО.

Для получения десятичных частей математические функции mod() и floor() гораздо более эффективны по сравнению с текстовой функцией подстроки mid().

Я стремился сделать карту похожей на крысиный лабиринт, поэтому создавал блоки не сплошными, чтобы они походили не на пещеры (в стиле Minecraft), а на лабиринт.

То есть нам нужны тонкие стены с двумя возможными стенами для каждого квадрата. Тогда мы сможем брать два блока чисел вместе с тем же случайным значением.

Плотностью размещения стен управляют два параметра.

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

Стоит заметить, что карта «плоская», без подъёмов и спусков. Можно было добавить рельеф с помощью генератора рельефа (подошёл бы алгоритм Diamond-Square, потому что его можно написать без рекурсивной функции), но весь последующий процесс сильно облегчило бы вырезание отверстий в полу и потолке с дополнительным значением уровня.

Так, похоже, мы в аду

Трассировщик лучей

Трассировщик лучей должен определять для каждого пикселя экрана, какой первой поверхности касается луч, и получать от неё информацию (расстояние, угол падения света, цвет и т.д.).

Кроме того, трассировщику лучей требуется дополнительный луч, распространяющийся из этой точки (отражения, прозрачность), что напрямую увеличивает вычислительные затраты.

Окклюзия

Первым сложным моментом будет нахождение первого объекта на пути каждого луча.

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

То есть процесс можно упростить до горизонтального «радара» в одном измерении.

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

Определение того, какую стену нужно проверять — это всего лишь тригонометрическая задача.

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

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

Пол и потолок

Чтобы определить потолок и пол, нам достаточно определить, где заканчивается стена.

Отдельный лист изменяет расстояние до пола или потолка в зависимости от вертикального угла.

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

Эффективное сравнение реализовано использованием только проекции расстояния до стены и до пола/потолка по оси камеры. Конечное расстояние затем получается с помощью предварительно вычисленного коэффициента расстояния в шейдере расстояний. Постоянные предварительно вычисленные значения нужны для экономии ресурсов.

Освещение

Конечное освещение берётся из шейдера освещения, представляющего собой свет факела, в направлении камеры (и оружия).

Когда поверхность точно горизонтальна к лучу света, также добавляется отражение.

Стена может быть только горизонтальной (если добавить наклон, то он просто смещает окно экрана вверх и вниз, не поворачивая камеру)

Для каждого угла радара мы получаем угол между лучом и ближайшей найденной стеной.

Коэффициент отражения — это просто функция угла.

В конце концов освещение становится результатом функции коэффициента расстояния, потолка/пола или разрешения стен, коэффициента отражения и коэффициента шейдера освещения.

Экран дисплея

Эффективный дисплей реализуется с помощью условного форматирования — градиент цвета зависит от значения ячейки.

Сокрытие значения выполняется форматированием ячейки.

Коллизии со стенами

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

Кроме того, игрок не должен прилипать к стене при контакте с ней. Он должен двигаться, скользя вдоль стены, пока не попадёт в угол.

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

Оказалось, что довольно сложно обработать все возможные варианты стены и позиций игрока относительно этой стены.

Изучено 25 вариантов и к ним привязано три возможных исхода (для каждой оси смещения), чтобы получать результаты за как можно меньшее количество проверок.

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

Враги

Привет, красное привидение!

Графический рендеринг

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

Целый отдельный лист посвящён вычислению формы сфер с учётом горизонтального радиуса и вертикальной высоты овоида. Для анимирования существа используется соотношение высоты/ширины.

В рендеринге стен и потолка используется градиент только по одному цвету, однако Excel позволяет использовать два последовательных (не сливающихся) градиента. Поэтому врагов можно отображать другим цветом. Для этого градиента можно использовать диапазон значений ниже 0, при том, что значение 0 — это чёрный цвет.

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

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

Здесь вычисления тоже производятся в горизонтальной плоскости, а максимальный объём вычислений подготавливается перед завершением 3D-вычислений для каждого пикселя.

Поведение врагов

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

Чтобы позиция, скорость и ускорение были непрерывными (для плавного движения), я сделал траекторию своего рода конечным фракталом большого круга с добавленными к нему небольшими круговыми вариациями. Коэффициент соотношения между кругами (и даже соотношение x/y) случаен и ненатурален, поэтому траектория никогда не самозацикливается. Чтобы получить хороший случайный генератор детерминированных траекторий, я создал отдельный лист, отображающий траекторию.

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

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

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

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

Атаки врагов

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

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

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

Это создаёт эффект наносимого игроку урона — простой эффект негативного цвета во весь экран.

Добавлен также ещё один эффект — отмена рендеринга всех остальных врагов при нанесении урона игроку.

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

Атаки игрока

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

Эта упрощённая модель позволяет игроку предотвратить атаку врага, снизив его жизнь до нуля.

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

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

Смерть и перезапуск

Когда жизнь игрока снижается до нуля, бОльшая часть его действий приостанавливается и появляется экран конца игры.

Этот экран рендерится с помощью ещё одного шейдера освещения. К цвету применён эффект негатива, чтобы подчеркнуть нанесение урона.

Постепенное отображение сообщения «game over» реализовано с помощью небольшого коэффициента, увеличивающегося как степенная функция. Это позволяет будущим пикселям оставаться скрытыми до их появления, когда степень становится достаточно большой.

Сдвигание вниз — это простое смещение шейдера освещения, в который добавлены другие сообщения, например, рекорды (high score) и перезапуск игры.

Очки должны отрисовываться с помощью пикселей шрифтом очень низкого разрешения.

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

Понравилась статья? Поделить с друзьями:
  • Что такое forms для excel
  • Что такое microsoft excel 2013
  • Что такое forms for excel
  • Что такое median excel
  • Что такое flash fill в excel