Оптимизация для мобильных устройств [РЕШЕНО]!!

Программирование для iPhone & Android

Оптимизация для мобильных устройств [РЕШЕНО]!!

Сообщение Kabanelloo 30 авг 2019, 23:23

Доброго времени суток! Есть небольшая странность в поведении либо Unity либо моего устройства.
Ранее проект игры был на Unity 2017 +- , FPS 58 - 60 стандартно держался. Сделал переход на Unity 2019.1.3f1 , и все мои проекты на этой версии FPS 30 - 32.
Я вычитал что некий параметр меняешь на 60 fps и все прекрасно. Но это не работает. Я проверил в реальном времени, изменяя настройки vSyncCount, frameRate = 60.

Но это не работает, то есть vSyncCount дает результат максимум 30 или до 15 FPS , отключая его выше 32 не поднимается и это при frameRate = 60.
Я заметил одно странное поведение. При первом запуске игры, 58 - 60 fps , до тех пор пока я не нажму на экран, меняется сразу на 30 - 32..

Я умею работать со всеми видами Batching, у меня в сцене 8 DrowCall, запечный свет, нет полу-прозрачности только Opaque.
Физики в игре нет, UI без прозрачности и 4 элемента, используя просто цвет в квадрате.

Параметры устройства Honor 6x 32gb:

Процессор - Huawei Kirin 655 , 64-битная архитектура
Частота процессора (МГц) - 2100
Количество ядер - 8 , четыре ядра 2.1 ГГц и четыре ядра 1.7 ГГц Cortex-A53
Видеочип - Mali T830 MP2

Встроенная память (Гб) -32
Доступно пользователю (Мб) - 23000
Оперативная память (Гб) - 3

Еще я выставил сортировку материалов для Batching, да даже если бы у меня в сцене было 30 DrawCall, все равно было бы 50 fps хотя бы.
Я часто пользуюсь BlueStack, у меня на пк не включена виртуализация, по причине лени но, это дает плюс то, что эмулятор работает хуже. Но на нем все 60 стабильно, vSyncCount работает как надо в рантайме переключая. Я не тестировал на каких либо других устройствах, так как их нет))
Профайлер конечно же кричит GFX.WaitSync 50 - 200ms , я конечно в бешенстве от таких цифр, но я ничего не могу поделать особенно от PlayerLoop до 400 ms..
Вообще там есть в профайлере реальные цифры и сцена занимает то 8 - 15 ms , то 15 - 70 , картинка не меняется вообще, скрипты ну они на реактивном программировании, так что без действия ничего не будет тикать.

Помогите позязя, я неделю чекаю все статьи и как-то не удается. Могу прилепить Develop apk сделанный на IL2CPP лучше в личку заслать)
Последний раз редактировалось Kabanelloo 31 авг 2019, 22:30, всего редактировалось 1 раз.
Kabanelloo
UNITрон
 
Сообщения: 163
Зарегистрирован: 03 фев 2012, 21:55
Откуда: Kaliningrad/Crimea

Re: Оптимизация для мобильных устройств

Сообщение Kabanelloo 31 авг 2019, 22:27

Господа, я нашел решение, оно прям под носом. В телефоне такой незаметный параметр как энергосбережение, оно как бы всегда включено ... И оно принудительно выставляет вертикальную синхронизацию и ограничивает fps до 30. Кстати я это вычитал с этого форума. Это работает! FPS вернулся, теперь надо написать чек по энергосбережению и выводить предупреждение но, это гораздо лучше, чем ограничения по вине разработчика))) Надеюсь кому-то это поможет. [curved_hands]
https://answers.unity.com/questions/1464484/android-vsync-auto-enabling.html
Kabanelloo
UNITрон
 
Сообщения: 163
Зарегистрирован: 03 фев 2012, 21:55
Откуда: Kaliningrad/Crimea

Re: Оптимизация для мобильных устройств [РЕШЕНО]!!

Сообщение Kabanelloo 31 авг 2019, 22:36

Вообще так как я посмел назвать этот пост Оптимизация, вот что я могу добавить :

Оптимизация Графики ------------------------------------------------
исключить динамические тени
исключить текстуры Металлик, глосси - заменить на MatCap.
все объекты должны быть в 1 атласе, чтобы отрисовка была за 1 проход
избегать постпроцессинга
систему частиц заменить на анимированные шейдеры
все объекты должны быть запечены освещением статичным.
динамичный батчинг не всегда хорошо!
установка приоритета сортировки шейдеров для батчинга
Оптимизация Графики ------------------------------------------------

Оптимизация Настройки Графики с использованием LWRP + RPLibrary
Antialiasing - disable
Shadow - no Cascades
SRP batching - enabled
Dynamic batching - Если в сценах преимущественно динамические объекты.
Оптимизация Настройки Графики с использованием LWRP + RPLibrary

Оптимизация QualitySettings ---------------------------------------
Texture Quality - FullRes or Half Res.
Anisotropic Textures - Per Textures or Disable
Real Time Reflection Probe - disable
Skin Weight - 2 ,4 bones
vSync Count - Don't Sync
Оптимизация QualitySettings ---------------------------------------

Оптимизация Аудио ----------------------------------------------------
Short Clips – Native
Longer (or looping) clips – compressed in memory
Music – Stream from disc
Files which consistently cause CPU spikes – Decompress on load
Оптимизация Аудио ----------------------------------------------------

Информирование Пользователя -----------------------------------
Сделать проверку на включенное энергосбережение! Предупредить пользователя, что система ограничивает производительность до 30fps.
Информирование Пользователя -----------------------------------

Оптимизация Import Texture Settings Android Override -----
После запекания LightMaps, DirectionMaps + Albedo, Metallic, Smoothness
Format - RGB Compressed ETC2 4bits
Resize Algorithm - Bilinear
Compressor Quality - Best
Для текстур с Альфой AlbedoTransparency, AlbedoSmoothness и тд..
Format - RGB(A) Compressed ASTC 4x4 Block
Оптимизация Import Texture Settings Android Override -----
Последний раз редактировалось Kabanelloo 01 сен 2019, 00:30, всего редактировалось 1 раз.
Kabanelloo
UNITрон
 
Сообщения: 163
Зарегистрирован: 03 фев 2012, 21:55
Откуда: Kaliningrad/Crimea

Re: Оптимизация для мобильных устройств [РЕШЕНО]!!

Сообщение waruiyume 31 авг 2019, 23:23

исключить полупрозрачность, только cutout

https://docs.unity3d.com/Manual/MobileO ... tions.html
У юнитеков написано ровно наоборот(GPU optimization: Alpha-Testing).
Не советую бездумно натягивать сову на глобус, а сначала попробовать на "кубиках", т.к. в некоторых случаях выполнение этой рекомендации будет пустой тратой времени, на особую подготовку ассетов.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Оптимизация для мобильных устройств [РЕШЕНО]!!

Сообщение Kabanelloo 01 сен 2019, 00:27

Да конечно, не стану спорить! Это личные выводы, не более. Спасибо за ссылку, изучу по лучше!
Kabanelloo
UNITрон
 
Сообщения: 163
Зарегистрирован: 03 фев 2012, 21:55
Откуда: Kaliningrad/Crimea


Вернуться в iPhone & Android

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2