Ошибка шейдера. ERROR: 0:332: 'glstate' : undeclared identi

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

Ошибка шейдера. ERROR: 0:332: 'glstate' : undeclared identi

Сообщение mrcoder 23 сен 2012, 21:59

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

взял стандартный рабочий шейдер кажется с форума юнити, однако по какой то причине он пишет следующие ошибки...
дело видимо в чем то простом... никто не подскажет? сам шейдер прикрепил.

Shader warning in 'Relief_Correct_Silhouettes': Program 'vertex_shader', Unknown profile option 'MaxTexIndirections' ignored at line 18

Shader error in 'Relief_Correct_Silhouettes': GLSL vertex shader: ERROR: 0:332: 'glstate' : undeclared identifier at line 19

Shader error in 'Relief_Correct_Silhouettes': Program 'vertex_shader', undefined variable "_ObjectSpaceCameraPos" at line 77
У вас нет доступа для просмотра вложений в этом сообщении.
Аватара пользователя
mrcoder
Старожил
 
Сообщения: 704
Зарегистрирован: 28 июн 2012, 22:40

Re: Ошибка шейдера. ERROR: 0:332: 'glstate' : undeclared identi

Сообщение magoga 23 сен 2012, 23:47

если мне не изменяет память, эта версия шейдера для unity 2.6, в той же теме есть ссылка на переписанный в SurfaceShader под unity3 и выше.
поищи в комментах
Аватара пользователя
magoga
UNIт
 
Сообщения: 98
Зарегистрирован: 22 мар 2010, 21:08

Re: Ошибка шейдера. ERROR: 0:332: 'glstate' : undeclared identi

Сообщение mrcoder 24 сен 2012, 10:06

ок. спасибо. посмотрю.
не знал что обратная совместимость не поддерживается в полной мере.... X(
вместо ощшибок хоть бы предупреждение выдавало об устаревшем обрашении
Аватара пользователя
mrcoder
Старожил
 
Сообщения: 704
Зарегистрирован: 28 июн 2012, 22:40

Re: Ошибка шейдера. ERROR: 0:332: 'glstate' : undeclared identi

Сообщение magoga 24 сен 2012, 12:09

не проверял но вот этот должен работать.

Синтаксис:
Используется glsl
Shader "Custom/Relief_Silhouette" {
Properties {
        _Color                          ("Main Color", Color) = (1,1,1,1)
        _SpecColor                      ("Specular Color", Color) = (0.5, 0.5, 0.5, 1)
        _Height                                 ("Height", Float) = -0.05
        _Tile                                   ("Tile Factor", Float) = 1
        _Cutoff                                 ("Alpha cutoff", Range(0,1)) = 0.5
        _useAlpha                       ("Use Alpha", Range(0,1)) = 1
        _Shininess                      ("Shininess", Range (0.01, 1)) = 0.078125
        _MainTex                        ("Base (RGB), Spec (A)", 2D) = "white" {}
        _NormalMap              ("Normalmap", 2D) = "bump" {}
        _HeightMap              ("Height (A)", 2D) = "bump" {}
}

SubShader {
                Tags {"IgnoreProjector"="True" "RenderType"="TransparentCutout"}
                LOD 300

                CGPROGRAM
                #pragma surface surf BlinnPhong alphatest:_Cutoff  
                #pragma target 3.0

                sampler2D _MainTex;
                sampler2D _NormalMap;
                sampler2D _HeightMap;
                float4 _Color;
                float _Height;
                float _Tile;
                float _Shininess;
                float _useAlpha;
               
                struct Input { // vertex input
                       
                        float2 uv_MainTex;
                        float2 uv_NormalMap;
                        float2 uv_HeightMap;
                        float3 viewDir;

                };
                       
                void surf (Input IN, inout SurfaceOutput o) {
                       
                        IN.uv_MainTex *= _Tile;
                        IN.viewDir      = normalize(IN.viewDir);
                       
                        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        //setup the view ray
                        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        float3 p                                        = float3(IN.uv_MainTex,0);
                        float3 v                                        = normalize(IN.viewDir*-1);
                        v.z                                             = abs(v.z);
                       
                        //depth bias
                        float depthBias         = 1.0 - v.z;
                        depthBias                               *= depthBias;
                        depthBias                               *= depthBias;
                        depthBias                               = 1.0 - depthBias * depthBias;
                       
                        v.xy                                            *= depthBias;
                        v.xy                                            *= _Height;
                        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        //ray intersection
                        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        const int linearSearchSteps = 20;
                        const int binarySearchSteps = 10;
                       
                        v /= v.z * linearSearchSteps;
                       
                        int i;
                        for( i=0;i<linearSearchSteps;i++ )
                        {
                                float tex = tex2D(_HeightMap, p.xy).a;
                                if (p.z<tex)            p+=v;
                        }
                       
                        for( i=0;i<binarySearchSteps;i++ )
                        {
                                v *= 0.5;
                                float tex = tex2D(_HeightMap, p.xy).a;
                                if (p.z < tex)          p += v; else    p -= v;
                        }
                       
                       
                        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        //final output
                        //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                   
                        half4 tex                       = tex2D(_MainTex, p.xy);
                       
                        half3 normal            = UnpackNormal(tex2D(_NormalMap,p.xy)); // normal map

                        normal.z                        = sqrt(1.0 - dot(normal.xy,  normal.xy));
                        o.Normal                        = normal;
                       
                        if(_useAlpha){
                                float alpha                                             =       1;              // border clamp
                                if (p.x < 0)            alpha           =       0;
                                if (p.y < 0)            alpha           =       0;
                                if (p.x > _Tile)        alpha           =       0;
                                if (p.y > _Tile)        alpha           =       0;
                               
                                o.Alpha = alpha;
                        }
                       
                        o.Gloss = tex.a;
                        o.Specular = _Shininess;
                        o.Albedo = tex.rgb * _Color.rgb;

                }
               
        ENDCG  
               
        }

        FallBack "Bumped Specular"
       
}

 
Аватара пользователя
magoga
UNIт
 
Сообщения: 98
Зарегистрирован: 22 мар 2010, 21:08

Re: Ошибка шейдера. ERROR: 0:332: 'glstate' : undeclared identi

Сообщение mrcoder 24 сен 2012, 15:42

спасибо.
Аватара пользователя
mrcoder
Старожил
 
Сообщения: 704
Зарегистрирован: 28 июн 2012, 22:40


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

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

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