Оптимизация производительности мобильных устройств с помощью Adaptive Performance 4.0

Загрузите Unity 2022.1 Tech Stream и узнайте, что такое Adaptive Performance 4.0. Еще больше повысьте производительность Android на устройствах Samsung с помощью четырех дополнительных масштабаторов, которые охватывают физику, деколи, персонализацию и очистку слоев, а также поддержку визуальных сценариев для оптимизации производительности приложений.
Unity 2022.1 предоставляет ранний доступ к новым инновационным функциям, которые будут использованы в следующем выпуске Long Term Support (LTS). В этом обновленном пакете Adaptive Performance 4.0 содержит несколько новых замечательных дополнений, расширяющих возможности масштабирования вашего приложения и повышающих его общую производительность.
На GDC 2022 мы рассказали о последних обновлениях Adaptive Performance 4.0 во время нашей беседы с Samsung " Раскройте свой игровой потенциал с Galaxy GameDev". Читайте далее.
Благодаря интеграции с визуальными сценариями практически каждый может использовать Adaptive Performance для масштабирования своих приложений и увеличения времени автономной работы. После установки Adaptive Performance 4.0 система визуальных сценариев Unity предоставит модули, с помощью которых вы сможете получить доступ к метрикам Adaptive Performance, не реализуя ничего на C#.

Другими словами, как только вы установите пакет визуальных сценариев, Unity автоматически активирует блоки Adaptive Performance. После этого вы можете добавить Adaptive Performance в проект с существующими визуальными скриптовыми графами, но при этом вам придется перекомпилировать модули. Подробную демонстрацию и лучшие практики можно найти в документации по образцу Adaptive Performance.
Поскольку Unity регенерирует единицы Adaptive Performance, вы можете добавлять новые единицы в график, щелкнув правой кнопкой мыши на фоне любого графика сценария. Перейдите в подменю Adaptive Performance, чтобы найти устройства.
Частицы в лодочной атаке
Вот пример использования Adaptive Performance в визуальных сценариях. На изображении ниже представлен кусочек Лодочная атакагде все частицы отключаются при "неминуемом дросселировании" и включаются при отсутствии предупреждений. Мы масштабируем такие эффекты, как плеск волн, дым от двигателя лодки и образование следа от параплана, поскольку они сильно нагружают CPU и GPU. Это повышает производительность при минимальных изменениях в самой игре.

При каждом изменении теплового предупреждения мы заставляем систему частиц выполнять итерации, а затем останавливаем систему частиц или запускаем ее снова. Конечно, это можно корректировать в зависимости от потребностей игры. Например, вместо полного отключения эффектов вы можете изменить количество излучателей или качество исходных изображений.
Все API Adaptive Performance переосмыслены в визуальном скриптинге. Полный список API и связанную с ними информацию можно найти в документации по интеграции визуальных сценариев.
В дополнение к множеству уже имеющихся масштабирующих устройств мы добавили четыре новых масштабирующих устройства в Adaptive Performance 4.0:
- Масштабатор для очистки слоев
- Декали скалера
- Пользовательский масштабатор
- Физический масштаб
Преимущества системы индексаторов и всех построенных на ее основе масштабирующих устройств заключаются в следующем:
- Стабилизация частоты кадров
- Минимальное дросселирование
- Спасение от дросселирования
- Автоматическое масштабирование содержимого во время выполнения
- Масштабирование без перекомпиляции исходного кода на миллионах устройств
- Простая интеграция
- Высокое качество
- Не требует особого ухода
Пользовательский модуль Adaptive Performance Unity Profiler показывает, как изменяются масштабирующие устройства, чтобы вы могли понять, хорошо ли они выполняют свою работу или их нужно подправить. В примере ниже показана работа Boat Attack на Samsung Fold3 в развернутом виде, где используется довольно высокое разрешение.

Boat Attack начинается с большого количества скалеров, задействованных в сцене меню, которая была стабилизирована перед съемкой. В этом примере температура быстро повышается, и устройство переходит в режим дросселирования.
Adaptive Performance пытается стабилизировать ситуацию и уменьшить влияние на GPU, так как именно он явно является узким местом. Таким образом, теневые масштабаторы быстро снижают качество - но поскольку этого недостаточно, уменьшаются и расстояние просмотра, и разрешение. Затем частота кадров стабилизируется, а температура падает. Игра избавляется от дросселирования, а частота кадров повышается до 60 fps.
Масштабатор для очистки слоев
Масштабатор обрезки слоев позволяет динамически настраивать расстояния обрезки слоев во время выполнения программы.
Эта функция использует систему индексатора для принятия определенных решений, например, когда и насколько увеличить или уменьшить расстояние между слоями для оптимальной производительности и термостабильности.
Образец, поставляемый с Adaptive Performance, зацикливается при средней загрузке процессора до достижения критической частоты кадров, а затем уменьшает расстояние обрезки слоев. В результате расстояние обрезки для слоев меняется в зависимости от загрузки CPU и GPU.
Вы можете задать разное значение расстояния обрезки для каждого слоя, чтобы они масштабировались пропорционально. Это поможет вам определить, какие объекты следует удалять раньше, чтобы сэкономить производительность. Подробнее о том, как это сделать, смотрите в следующем примере кода.
Адаптивные наклейки
Адаптивные деколи нацелены на визуальные эффекты. В Удивительные приключения доктора. Arm, есть сценарий боя с боссом, в котором используется множество частиц и проекторов деколей. Когда мобильное устройство нагревается, и дросселирование становится неизбежным (или уже происходит), количество испускаемых частиц уменьшается. В этом случае менее визуально важные излучатели, такие как листья, развевающиеся на ветру, крошечные искры и другие подобные элементы, полностью отключаются. Масштабатор также уменьшает расстояние между декалями.
Никаких предупреждений

Дросселирование

Более того, для некоторых частиц отключены столкновения. Как только тепловая нагрузка снизится, мы сможем увеличить масштаб этих эффектов.
Пользовательский масштабатор
Пользовательский скалер реализует туманный скалер и даже поможет вам создать собственные скалеры, если мы не предлагаем их напрямую. Пользовательский скалер увеличивает туман и уменьшает расстояние обзора при увеличении тепловой нагрузки. Это действие снижает нагрузку на систему, чтобы она могла восстановиться.
Постобработка может быстро стать одной из самых дорогих частей кадра. Хотя они не имеют решающего значения для геймплея, они могут добавить больше атмосферы и улучшить искусство, над которым так усердно трудилась команда разработчиков.
Адаптивная производительность позволяет включить эффекты постобработки игры в полном объеме, но также уменьшает количество эффектов, которые не нужны в моменты пиковой нагрузки на устройство. Когда происходит дросселирование, мы отключаем определенные эффекты на сайте Amazing Adventures of Dr. Рука, которая была включена в игру в основном для улучшения настроения сцены, не оказывая существенного влияния на игровой процесс. Туман, блум, глубина резкости, эффект затуманивания пространства экрана (SSAO) и размытие движения - это отличные примеры визуальных эффектов, которые могут многое добавить, но не являются необходимыми для игрового процесса. Эти твики позволяют значительно повысить производительность игры.
Никаких предупреждений

Дросселирование

Адаптивная физика
Adaptive Physics изменяет фиксированное время дельты обновления физического движка. Если вы используете его для других систем, они также будут масштабироваться. Но если вы используете фиксированное дельта-время в других системах, возможно, вам захочется создать свой собственный физический скалер, чтобы использовать более детальные настройки вместо фиксированного дельта-времени.
См. приведенное выше сравнение исходного значения Time.fixedDeltaTime и его уменьшенной версии. Среднее время кадра оригинала составляет 28 мс, а среднее время кадра уменьшенной версии - 21 мс.
Наша команда Adaptive Performance постоянно работает над расширением пакета и его платформы, и мы с нетерпением ждем появления новых провайдеров в будущем. Как всегда, мы рады вашим отзывам на нашем форуме Adaptive Performance. Пожалуйста, не стесняйтесь обращаться к нам!
