Shader на весь экран

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Shader на весь экран

Сообщение helis 05 дек 2021, 23:54

Сделал шейдер исчезновения спрайта по гайду
https://www.youtube.com/watch?v=auglNRLM944
если применить на маленьком спрайте все работает нормально, а я хотел сделать переход между уровнями и повесил этот шейдер на спрайт во весь экран. На компе в юнити все норм, но на телефоне начинаются дичайшие лаги во время присутствия в сцене объекта с шейдером(не только с этим, любой шейдер с каким-нибудь движущимся шумом, дает ту же проблему).
В куче других мобильных играх на этом же телефоне не лагают подобные шейдеры во весь экран, почему так?
helis
UNец
 
Сообщения: 29
Зарегистрирован: 04 апр 2019, 08:50

Re: Shader на весь экран

Сообщение waruiyume 06 дек 2021, 00:11

Мысль первая: URP- говно адовой обезьяны!
Мысль вторая: лаги возникают при загрузки сцены и с шейдером никак не связаны.
Вообще, покажите шейдер и скрипт которым вы им управляете.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Shader на весь экран

Сообщение helis 06 дек 2021, 01:01

1. Я не использую пост-процессинг, такчто URP не причем тут(наверное, хз).
2. Не совсем правильно выразился, переход между уровнями происходит без смены сцены, просто появляется спрайт перекрывающий весь экран и пропадает по нажатию кнопки.
Синтаксис:
Используется csharp
void Start()
{
   StartCoroutine("dissolveMenu");
}

public IEnumerator dissolveMenu()
{
     while (dissolveMenuFon > 0)
     {
         dissolveMenuFon -= Time.deltaTime;
         menuFonMat.SetFloat("_dissCount", dissolveMenuFon);
         yield return null;
     }
     startLvl();
}

public IEnumerator undissolve()
{
      while (dissolveMenuFon < 1)
      {
            dissolveMenuFon += Time.deltaTime;
            menuFonMat.SetFloat("_dissCount", dissolveMenuFon);
            yield return null;
     }
}
 

корутина undissolve() запускается при прохождении уровня.
вряд ли дело в скрипте, потомучто даже если спрайт с шейдером на весь экран без скрипта добавить в сцену начинаются лаги.

https://screenshare.ru/pW3NSCQ8

вот еще такой простецкий шейдер который не управляется вообще скриптом сделал и с ним растянутым на весь экран тоже нереальные лаги происходят

https://screenshare.ru/hbNbYHr8
helis
UNец
 
Сообщения: 29
Зарегистрирован: 04 апр 2019, 08:50

Re: Shader на весь экран

Сообщение waruiyume 06 дек 2021, 04:45

Насколько я знаю шейдерграф только в скриптебл рендер райплайне работает, т.ч. URP причём.
Попробуйте убрать процедурный шум, поставив вместо него текстуру.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Shader на весь экран

Сообщение helis 07 дек 2021, 09:49

С текстурой вроде получше стало, но например нод voronoi с движением через angleOffset нельзя заменить текстурой.
Да и все равно если делать шейдер с движением, например просто одну текстуру шума бесшовную через time двигать ,то получается чем больше площадь такого спрайта попадающего в камеру тем меньше фпс, если меньше четверти экрана занимает то почти незаметно, а если во весь экран то очень сильно заметно.
Неужели нельзя нормально использовать шейдерграф в мобильных играх? Ведь в других играх куча шейдеров на весь экран и фпс нормальный.
helis
UNец
 
Сообщения: 29
Зарегистрирован: 04 апр 2019, 08:50

Re: Shader на весь экран

Сообщение Tolking 07 дек 2021, 11:41

Кто-то тут говорил, что спрайт с альфой на весь экран не тормозит... Что-то я забыл кто же это был?
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2714
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Shader на весь экран

Сообщение waruiyume 07 дек 2021, 12:57

Tolking, это называется "слышал звон, да не знает где он".
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Shader на весь экран

Сообщение Tolking 07 дек 2021, 18:31

Ну так и где он? Этот звон? Чем больше площадь, тем больше тормоза. Как сделать чтобы не тормозило? Или я не понимаю это другое?
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2714
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Shader на весь экран

Сообщение waruiyume 08 дек 2021, 00:39

Правильный ответ
Tolking писал(а):я не понимаю

Redmi 7a
Скрытый текст:
Изображение

apk: https://disk.yandex.ru/d/YQmNWOEXuMPgTQ
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Shader на весь экран

Сообщение helis 08 дек 2021, 07:34

ну я ваще хз тогда, без шейдера 60 фпс, с ним 40(это в пустой сцене, там были двигающиеся объекты и с ними до 30 падает, хоте без шейдера 60 все равно)(honor 7c)
https://screenshare.ru/Hs7sT0Bt
Вот сам шейдер, почему он фпс в 2 раза срезает?
https://screenshare.ru/1wewSl0p
helis
UNец
 
Сообщения: 29
Зарегистрирован: 04 апр 2019, 08:50

Re: Shader на весь экран

Сообщение Tolking 08 дек 2021, 10:35

waruiyume писал(а):Правильный ответ
Tolking писал(а):я не понимаю

Redmi 7a
Скрытый текст:
Изображение

apk: https://disk.yandex.ru/d/YQmNWOEXuMPgTQ

Это не правильный ответ. Это не один спрайт перекрывающий весь экран, это много "маленьких" спрайтов на экране. С этим проблем никогда не было... Чтобы нашу проблему решить мы спрайт на части порезали и проблемы не стало... Почему тормозит один единственный спрайт с альфой растянутый на весь экран. Причем тормозит не везде. Т.к. повторить в пустом проекте я не смог. Но такое есть! Тормозит! Прям до фризов! Или ТС тоже слышит звон?
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2714
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Shader на весь экран

Сообщение waruiyume 08 дек 2021, 11:03

:-@
Скрытый текст:
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Shader на весь экран

Сообщение helis 08 дек 2021, 11:43

Ппц просто спрайтов на весь экран можно хоть сто штук накидать и крутить их с помощью аниматора, ничего не будет лагать, проблема в шейдере именно.
helis
UNец
 
Сообщения: 29
Зарегистрирован: 04 апр 2019, 08:50

Re: Shader на весь экран

Сообщение waruiyume 08 дек 2021, 11:54

Если, через шейдер граф, сделать шейдер просто выводящий текстуру + прозрачность, тоже тормозит?
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Shader на весь экран

Сообщение helis 08 дек 2021, 12:12

Вообще ни капли.
helis
UNец
 
Сообщения: 29
Зарегистрирован: 04 апр 2019, 08:50

След.

Вернуться в Почемучка

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

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