Проверка работоспособности шейдера.

Шейдеры и все-все-все.

Проверка работоспособности шейдера.

Сообщение IDoNotExist 29 авг 2016, 14:12

Как проверить работает ли шейдер в билде, у него нет никаких FallBack, в логе билда появляется сообщение "Note: Creation of internal variant of shader 'Test/TestShader' failed", и визуально видно что он не работает, но тем не менее Material.shader.isSupported возвращает true.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1289
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Проверка работоспособности шейдера.

Сообщение jetyb 29 авг 2016, 14:36

Material.passCount > 0?
jetyb
Адепт
 
Сообщения: 1362
Зарегистрирован: 31 окт 2011, 17:21

Re: Проверка работоспособности шейдера.

Сообщение IDoNotExist 29 авг 2016, 14:49

jetyb писал(а):Material.passCount > 0?

Вывел passCount в лог, возвращает 2.

Так же попробовал вывести Material.shader.isSupported в Update (до этого я выводил его в Start) и там уже он возвращает false, и passCount уже равно 1, я так думаю шейдер ломается после первой попытки что либо отрендерить.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1289
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Проверка работоспособности шейдера.

Сообщение jetyb 29 авг 2016, 15:20

Не знаю, тут надо шейдер и платформу смотреть.
Попробуйте еще с классами ShaderVariant поиграться.
jetyb
Адепт
 
Сообщения: 1362
Зарегистрирован: 31 окт 2011, 17:21

Re: Проверка работоспособности шейдера.

Сообщение IDoNotExist 29 авг 2016, 16:48

jetyb писал(а):Попробуйте еще с классами ShaderVariant поиграться.

Почитал про ShaderVariant, насколько понял он нужен для того, чтобы сделать Shader.WarmupAllShaders, только не для всех шейдеров, а для отдельного у меня шейдеров не много, поэтому попробовал делать Shader.WarmupAllShaders перед первоначальной проверкой шейдера на работоспособность, не помогло.

В общем пока что написал свой костыль, который создает сферу (GameObject.CreatePrimitive(PrimitiveType.Sphere)), перед камерой и вешает на её материал данный шейдер, после этого жду один кадр и записываю в статическую bool переменную значение Shader.isSupported, после этого уничтожаю сферу, а в скриптах которые юзают данный шейдер делаю инициализацию с задержкой, и проверяю данную статическую переменную, решение так себе, но зато работает.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1289
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Проверка работоспособности шейдера.

Сообщение jetyb 30 авг 2016, 08:00

Возможно еще шейдер (или его вариант компиляции) не включается в билд, см Projectsettings/Graphics
jetyb
Адепт
 
Сообщения: 1362
Зарегистрирован: 31 окт 2011, 17:21


Вернуться в Shader Lab

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

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