PostProcessing Android

Общие вопросы о Unity3D

PostProcessing Android

Сообщение Saltant 30 дек 2022, 04:01

У меня возникла такая проблемка, добавил в билд на андройд пост процессинг и на моем старом (но вполне себе мощном, Samsung Galaxy Note 10.1 (GPU: Qualcomm Adreno 330)) андройд планшете с 7 версией ОС, выдает на экран одни артефакты
Изображение
Если отключать галочку с камеры пост процессинг, то всё окей.
Пробовал запускать билд на средне-старой мобилке - Meizu M5 Note M621H (GPU: ARM Mali-T860), там всё запустилось без артифактов, поднастроил производительность рендера URP (Render scale 0.5 и т.п) и даже фпс стала максималочка, т.е всё работает.
Пробовал запускать на современной мобилке Xiaomi POCO M5 (GPU: ARM Mali-G57), там ваще даже с макс графониейм в рендере всё отлично летает.

А вопрос собсна вот в чем, - по какому критерию девайса я должен чекать врубать мне пост процессинг или вырубать принудительно? Я просто не могу понять, в теории можно по версии андройда, типа если ниже 8 то девайс мусор, но это топорный подход, я знаю "ценителей" старых версией дройдов которые их тупо накатывают на топовые девайсы, не говоря уже о кастомных ос... Подскажите, может там какие то конкретные критерии есть по видеочипу например в urp postProcessing?
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: PostProcessing Android

Сообщение Alkos26Rus 30 дек 2022, 10:50

Graphics API попробуй поменять на том устройстве на котором все ок. Отключи Auto Graphics API и проверь каждый по очереди. Скорей проблема не версии ОС а именно в Graphics API
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1642
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: PostProcessing Android

Сообщение Saltant 30 дек 2022, 20:05

Alkos26Rus писал(а):Graphics API попробуй поменять на том устройстве на котором все ок. Отключи Auto Graphics API и проверь каждый по очереди. Скорей проблема не версии ОС а именно в Graphics API

Там тока можно поставить Vulkan, GLES2 и GLES3. Вот у меня планшет поддерживает только GLES 3.0, проверить на другом смартфоне где есть выше 3.0 не прокатит ибо в настройках не могу принудительно выставить конкретную версию GL ES 3.x
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: PostProcessing Android

Сообщение Alkos26Rus 30 дек 2022, 20:43

Saltant писал(а):Там тока можно поставить Vulkan, GLES2 и GLES3.

Ну, этого и хватит, на андроид вроде больше и нет. Там какой вверху стоит тот и будет в приоретете.

Saltant писал(а):Вот у меня планшет поддерживает только GLES 3.0, проверить на другом смартфоне где есть выше 3.0 не прокатит ибо в настройках не могу принудительно выставить конкретную версию GL ES 3.x.

Должны поддерживать несколько архитектур. Странный планшет у тебя. Возьми свой топовый андроид, он должен все поддерживать. Я бы начал с OpenCL 2.0, скорей твой постпроцессинг на нем не пашет.
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1642
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: PostProcessing Android

Сообщение Saltant 30 дек 2022, 20:54

Alkos26Rus писал(а):
Saltant писал(а):Там тока можно поставить Vulkan, GLES2 и GLES3.

Ну, этого и хватит, на андроид вроде больше и нет. Там какой вверху стоит тот и будет в приоретете.

Saltant писал(а):Вот у меня планшет поддерживает только GLES 3.0, проверить на другом смартфоне где есть выше 3.0 не прокатит ибо в настройках не могу принудительно выставить конкретную версию GL ES 3.x.

Должны поддерживать несколько архитектур. Странный планшет у тебя. Возьми свой топовый андроид, он должен все поддерживать. Я бы начал с OpenCL 2.0, скорей твой постпроцессинг на нем не пашет.

OpenGLES 2.0 в самом редакторе помечен как устаревший, по этому я могу выбрать GLES 3.0 и Vulkan, в целом там есть галочки какие 3.х версии требуются, я могу выбрать Require ES 3.1 / ES 3.1 + AEP / ES 3.2, но при любой галке планшет соответственно не поддерживается ибо у планшета только самая первая третья версия, т.е GL ES 3.0. Вероятно проблема именно в ней, т.к в 3.1+ уже накрутили шейдеры по современней, которые когда попадают ко мне в 3.0 соответственно всё ломают.

OpenGL ES 1.0 and 1.1 - This API specification is supported by Android 1.0 and higher.
OpenGL ES 2.0 - This API specification is supported by Android 2.2 (API level 8) and higher.
OpenGL ES 3.0 - This API specification is supported by Android 4.3 (API level 18) and higher.
OpenGL ES 3.1 - This API specification is supported by Android 5.0 (API level 21) and higher.

Исходя из гугл доков, 3.1 версия начинается с 5.0 ведройда (это смартфоны примерно 2014+ года), там по идеи всё должно работать, а планшетик мой к сожалению чутка не дотянул, он 2013 года и собсна GL ES 3.1 туды еще не завезли в железячки.

Я в общем дописал чутка кода, вот так:
Синтаксис:
Используется csharp
        if (SystemInfo.graphicsDeviceVersion.Contains("OpenGL ES 3.0"))
        {
            Camera.main.GetComponent<UniversalAdditionalCameraData>().renderPostProcessing = false;
        }
        else
        {
            Camera.main.GetComponent<UniversalAdditionalCameraData>().renderPostProcessing = true;
        }


В Авейке у гейм менеджера чекаю че там за девайсина, если 3.0 то тупо с камеры отключаю пост процессинг и в настройках игры указываю что функция недоступна для вашего мусорного девайса. Протестировал, вроде работает ок - по дефолту пост процессинг включен, и авейк отрабатывает, на планшете вырубается постпроцессинг и игра запускается, на остальных девайсах по дефолту игра запускается с постпроцессингом и в настройках активна кнопочка собсна вкл/выкл эффектов.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт


Вернуться в Общие вопросы

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

Сейчас этот форум просматривают: Google [Bot] и гости: 2


cron