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

Содержание

Использование встроенных инструментов игровых движков

Unity

В Unity можно добавить отображение FPS с помощью простого скрипта:

  • Создайте новый скрипт FPSCounter.cs
  • Добавьте следующий код:
using UnityEngine;
using UnityEngine.UI;
public class FPSCounter : MonoBehaviour { public Text fpsText; private float deltaTime = 0.0f; void Update() { deltaTime += (Time.unscaledDeltaTime - deltaTime) * 0.1f; float fps = 1.0f / deltaTime; fpsText.text = "FPS: " + Mathf.Round(fps); }
}

Unreal Engine

В Unreal Engine FPS можно включить через консоль:

  • Нажмите клавишу ` (тильда) для открытия консоли
  • Введите команду: stat fps

Использование сторонних программ

Существует несколько программ для отображения FPS:

  1. MSI Afterburner с RivaTuner Statistics Server
  2. Fraps
  3. NVIDIA GeForce Experience (Alt+Z → Настройки → HUD-макет)
  4. Steam Overlay (Настройки → В игре → Счетчик FPS)

Программный способ через DirectX или OpenGL

Пример кода для вычисления и отображения FPS в приложении на C++ с OpenGL:

#include <string>
#include <sstream>
int frameCount = 0;
float fps = 0;
float currentTime = 0;
float previousTime = 0;
void calculateFPS() { currentTime = glutGet(GLUT_ELAPSED_TIME) / 1000.0f; frameCount++; if (currentTime - previousTime >= 1.0f) { fps = frameCount / (currentTime - previousTime); previousTime = currentTime; frameCount = 0; } std::stringstream ss; ss << "FPS: " << fps; glColor3f(1.0f, 1.0f, 1.0f); glRasterPos2f(-0.95f, 0.9f); glutBitmapString(GLUT_BITMAP_HELVETICA_18, (const unsigned char*)ss.str().c_str());
}

Заключение

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

Другие статьи

Как вывести обещанный платеж на банковскую карту и прочее