2015-07-30 4 views
1

Есть ли у кого-нибудь советы относительно прогрессивного улучшения для трех проектов js на устройствах? У меня есть приложение с большим количеством пост-обработки, которое отлично подходит для современных устройств, но немного медленнее на старых/более дешевых телефонах. Было бы неплохо включить последующие уровни для устройств, которые могут его обрабатывать. Есть ли достаточно надежный способ измерения производительности, чтобы автоматизировать это?Три прогрессивных усовершенствования для устройств

+0

Я тоже об этом думал недавно. Я думал смотреть fps и переключаться между различными режимами в зависимости от fps. Тем не менее, я на самом деле ничего не пытался реализовать. – 2pha

ответ

0

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

Вы могли бы рассмотреть просто держать список общих аппаратных профилей. Хотя есть много видов телефонов, на самом деле на самом деле очень мало разных архитектур графических процессоров, используемых в большинстве из них. Это метод, который использовался Chrome на Android, например, для определения того, какие устройства работают с WebGL, а какие нет.

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

Несколько лет назад я просматривал систему для игровой компании, на которой я работал, которая измеряет диапазон параметров производительности для каждого отдельного пользователя и пытается посредством регрессии («машинного обучения») определить наилучшее профиль производительности для пользователя THAT на ИХ машине, потому что даже при узком спектре аппаратных решений вы все равно никогда не сможете рассказать, как много других вещей происходит на компьютере плеера. Они управляют youtube и teamspeak, и кто знает, что еще в фоновом режиме? Трудно предсказать ситуацию на дому, даже в большой испытательной лаборатории. Таким образом, адаптивный подход может быть лучшим, но даже тогда он очень численно-интенсивный и, вероятно, не подходит (сегодня) для веб-приложений на основе javascript, используя THREE.js. Итак, если вы хотите атаковать эту проблему, выберите свои стратегии (сбросьте слои композитов? Выберите более простую геометрию: меньше или проще шейдеров? Зависит от вашего приложения!), Попробуйте их сами (опыт будет преувеличивать каждый раз!), А затем запустите развертывание для общественности. Если ваши пользователи разрешают это, попросите их сохранить файл cookie. Но ожидайте длительный итеративный процесс, если вы действительно хотите, чтобы он работал.

Смежные вопросы