Страница 1 из 2
Shader на весь экран
Добавлено:
05 дек 2021, 23:54
helis
Сделал шейдер исчезновения спрайта по гайду
https://www.youtube.com/watch?v=auglNRLM944если применить на маленьком спрайте все работает нормально, а я хотел сделать переход между уровнями и повесил этот шейдер на спрайт во весь экран. На компе в юнити все норм, но на телефоне начинаются дичайшие лаги во время присутствия в сцене объекта с шейдером(не только с этим, любой шейдер с каким-нибудь движущимся шумом, дает ту же проблему).
В куче других мобильных играх на этом же телефоне не лагают подобные шейдеры во весь экран, почему так?
Re: Shader на весь экран
Добавлено:
06 дек 2021, 00:11
waruiyume
Мысль первая: URP- говно адовой обезьяны!
Мысль вторая: лаги возникают при загрузки сцены и с шейдером никак не связаны.
Вообще, покажите шейдер и скрипт которым вы им управляете.
Re: Shader на весь экран
Добавлено:
06 дек 2021, 01:01
helis
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
Re: Shader на весь экран
Добавлено:
06 дек 2021, 04:45
waruiyume
Насколько я знаю шейдерграф только в скриптебл рендер райплайне работает, т.ч. URP причём.
Попробуйте убрать процедурный шум, поставив вместо него текстуру.
Re: Shader на весь экран
Добавлено:
07 дек 2021, 09:49
helis
С текстурой вроде получше стало, но например нод voronoi с движением через angleOffset нельзя заменить текстурой.
Да и все равно если делать шейдер с движением, например просто одну текстуру шума бесшовную через time двигать ,то получается чем больше площадь такого спрайта попадающего в камеру тем меньше фпс, если меньше четверти экрана занимает то почти незаметно, а если во весь экран то очень сильно заметно.
Неужели нельзя нормально использовать шейдерграф в мобильных играх? Ведь в других играх куча шейдеров на весь экран и фпс нормальный.
Re: Shader на весь экран
Добавлено:
07 дек 2021, 11:41
Tolking
Кто-то тут говорил, что спрайт с альфой на весь экран не тормозит... Что-то я забыл кто же это был?
Re: Shader на весь экран
Добавлено:
07 дек 2021, 12:57
waruiyume
Tolking, это называется "слышал звон, да не знает где он".
Re: Shader на весь экран
Добавлено:
07 дек 2021, 18:31
Tolking
Ну так и где он? Этот звон? Чем больше площадь, тем больше тормоза. Как сделать чтобы не тормозило? Или я не понимаю это другое?
Re: Shader на весь экран
Добавлено:
08 дек 2021, 00:39
waruiyume
Правильный ответ
Tolking писал(а):я не понимаю
Redmi 7a
apk:
https://disk.yandex.ru/d/YQmNWOEXuMPgTQ
Re: Shader на весь экран
Добавлено:
08 дек 2021, 07:34
helis
ну я ваще хз тогда, без шейдера 60 фпс, с ним 40(это в пустой сцене, там были двигающиеся объекты и с ними до 30 падает, хоте без шейдера 60 все равно)(honor 7c)
https://screenshare.ru/Hs7sT0BtВот сам шейдер, почему он фпс в 2 раза срезает?
https://screenshare.ru/1wewSl0p
Re: Shader на весь экран
Добавлено:
08 дек 2021, 10:35
Tolking
Это не правильный ответ. Это не один спрайт перекрывающий весь экран, это много "маленьких" спрайтов на экране. С этим проблем никогда не было... Чтобы нашу проблему решить мы спрайт на части порезали и проблемы не стало... Почему тормозит один единственный спрайт с альфой растянутый на весь экран. Причем тормозит не везде. Т.к. повторить в пустом проекте я не смог. Но такое есть! Тормозит! Прям до фризов! Или ТС тоже слышит звон?
Re: Shader на весь экран
Добавлено:
08 дек 2021, 11:03
waruiyume
Re: Shader на весь экран
Добавлено:
08 дек 2021, 11:43
helis
Ппц просто спрайтов на весь экран можно хоть сто штук накидать и крутить их с помощью аниматора, ничего не будет лагать, проблема в шейдере именно.
Re: Shader на весь экран
Добавлено:
08 дек 2021, 11:54
waruiyume
Если, через шейдер граф, сделать шейдер просто выводящий текстуру + прозрачность, тоже тормозит?
Re: Shader на весь экран
Добавлено:
08 дек 2021, 12:12
helis
Вообще ни капли.