Страница 1 из 1

Самописный шейдер - виснет Unity

СообщениеДобавлено: 11 июн 2018, 12:14
GSerge
Здравствуйте! Помогите разобраться с самописным шейдером. Работает относительно нормально, но при выборе объекта с этим шейдером - Unity зависает..
Вот (http://rgho.st/6h7bBdmNw) пустой проект с этим шейдером. Объект "Cube", при его выборе зависает Unity.

Вот сам шейдер. Может тут есть какие-нибудь подозрительные моменты, которые могут "пакостить"?
Синтаксис:
Используется csharp
Shader "Shtamp/lsSkySphereSky"

{
        Properties{
                _Color("Main Color", Color) = (1,1,1,1)
                _MainTex("Base (RGB) Trans (A)", 2D) = "white" {}
        }

        Category{

                //ZWrite Off
                Alphatest Greater 0
                Tags{ "Queue" = "Transparent"  "RenderType" = "Transparent" }

                SubShader{
               
                        ColorMaterial AmbientAndDiffuse
                        Lighting On
                        Blend SrcAlpha OneMinusSrcAlpha
               
                        Pass{
                                FOG {Mode off}
                                ColorMask RGBA

                                SetTexture[_MainTex]{
                                Combine texture, texture * primary
                                // * primary
                                }

                                SetTexture[_MainTex]{
                                ConstantColor[_Color]
                                Combine constant * previous
                                }
                        }
                }
        }
                // Fallback to Alpha Vertex Lit
                Fallback "Transparent/VertexLit"
}
 

Re: Самописный шейдер - виснет Unity

СообщениеДобавлено: 13 июн 2018, 07:45
jetyb
Подозрительно только, что шейдер написан в устаревшем синтаксисе, который вроде как не должен поддерживаться новыми версиями unity.

Re: Самописный шейдер - виснет Unity

СообщениеДобавлено: 13 июн 2018, 09:07
alt3d
Первый раз слышу чтобы шейдер мог привести к зависанию программы.
Может дело таки не в нем, в самом объекте?

Re: Самописный шейдер - виснет Unity

СообщениеДобавлено: 13 июн 2018, 10:22
GSerge
alt3d писал(а):Первый раз слышу чтобы шейдер мог привести к зависанию программы.
Может дело таки не в нем, в самом объекте?


Попробуйте, скачайте проект по ссылке выше. Создайте новый объект и добавьте на него этот шейдер. Или же просто создайте свой пустой проект и скачайте шейдер из моего.. и добавьте текстуру. Я тоже не понимаю почему виснет.. но это так((

Re: Самописный шейдер - виснет Unity

СообщениеДобавлено: 13 июн 2018, 10:26
GSerge
jetyb писал(а):Подозрительно только, что шейдер написан в устаревшем синтаксисе, который вроде как не должен поддерживаться новыми версиями unity.


Писал его по документации на сайте Unity.. Честно скажу - в шейдерах не бум бум(
Не могли бы вы переписать его в новом синтаксисе?

Re: Самописный шейдер - виснет Unity

СообщениеДобавлено: 13 июн 2018, 11:02
alt3d
GSerge писал(а):Попробуйте, скачайте проект по ссылке выше. Создайте новый объект и добавьте на него этот шейдер. Или же просто создайте свой пустой проект и скачайте шейдер из моего.. и добавьте текстуру. Я тоже не понимаю почему виснет.. но это так((


Лол, действительно падает из-за шейдера.
Проблема видимо во втором блоке SetTexture, если его закомментировать - все нормально работает.
Больше подсказать не могу, т.к. в этом ShaderLab вообще не разбираюсь