Измерьте производительность устройства, чтобы установить уровень детализации в приложении - PullRequest
0 голосов
/ 28 августа 2018

У меня есть 3D-приложение, созданное с использованием libgdx. На некоторых старых устройствах FPS значительно падает при наличии объектов, содержащих большое количество вершин.

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

Существует ли какая-либо библиотека или хорошая методология для проверки производительности на устройстве ДО отображения трехмерной сцены?

(я не использую непрерывный рендеринг в своем приложении).

1 Ответ

0 голосов
/ 31 августа 2018

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

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

Я думаю, что наименее худший подход - использовать несколько простых прокси, чтобы получить общее представление о том, является ли устройство high-end или нет. Я использовал следующее:

  • Версия ОС Android
  • Количество ядер процессора
  • Поддерживаемый графический API (версия OpenGLES и, возможно, поддерживается ли Vulkan)
  • Объем доступной оперативной памяти
  • Разрешение устройства
  • Поддерживается ли highp в фрагментных шейдерах
...