Помимо базовых методов API, в QM есть набор методов для «мягкого» переключения уровней качества. В случае, когда в рантайме мы сталкиваемся с ситуацией, при которой девайс должен тянуть заданный ему пресет, но при этом происходит падение FPS из-за посторонних факторов, можно ослабить нагрузку, понизив одну из настроек качества, или наоборот. Для этого в QM есть отдельный тип настроек качества, у которого есть виртуальный метод CanBeSwitchedTo, позволяющий определить, можно ли сменить текущий уровень настройки на новый. Так мы можем в рантайме поэтапно даунскейлить качество, чтобы стабилизировать FPS, или наоборот — попробовать дать девайсу нарисовать лучшую картинку, пока не начнем ловить падение FPS.
Совершенно бесполезная статья.
По сути все что вы рассказали это: " У нас есть классный редактор для пресетов графики"
и "У нас есть классный редактор для назначения этих пресетов на группы устройств".
Ни методологии отбора девайсов по уровням графики, ни, собственно, подробностей дизайна этих самых уровней.
Мне, как разработчику, из данной статьи можно получить лишь один вывод: ну что, збс, красавцы. Выглядит как маркетинг под шкуркой из "технического отчета".
Отбор происходил довольно просто, поэтому мы не стали подробно разворачивать эту тему. Процесс выглядел примерно следующим образом:
Сперва у нас образовался прототип HD качества, которое работало на 60 FPS на iPhone 7. Затем мы подобрали примерно аналогичный телефон на Android — остановились на Adreno 530. И начали итерировать. Пока пилили разные пресеты, проверяли их работоспособность на таргет-девайсах с помощью профайлеров – нативных Arm Studio, XCode. XCode в этом плане уникален и дает очень подробные метрики. По оптимизации можно почитать другие наши статьи.
В итоге Adreno 530 уехал в LD пресет, потому что в какой-то момент мы поняли, что не хотим жертвовать качеством картинки ради него. Далее мы делали очень много замеров на публичных тестах. Туда к нам приходят тысячи пользователей. Финально список устройств формировался по результатам этих публичных тестов + наших внутренних данных профилирования.
Статья в первую очередь рассказывает о нашей внутренней тулзе для менеджмента качеств, а не про то, как мы эти качества разделяли (про это — другие статьи из цикла). Поэтому эти моменты здесь упомянуты лишь вскользь.
Классно, здорово, но донатно.
Ух, крутяк! Спасибо огромное за статью!
Спасибо за подробный материал! Надо изучать, а пока простой юзерский вопрос: для каких вообще iOS-устройств доступен пресет «Высокий»?
HD-пресет пока на проде не поддерживается. Внутренние билды неплохо играются на девайсах с А10 и выше, однако на релизе, возможно, запустим на чуть более мощных устройствах.
На iOS устройствах в целом производительность гораздо выше. В случае HD мы ограничены малым запасом по RAM.
Комментарий недоступен