- Home /
 
Problem with custom shaders (surface function error)
I downloaded a voxel terrain package (Cubic World). Which I tested in a webplayer and everything worked fine, however when i try to run it in the editor all of the shaders seem to have errors, Currently i've been trying to solve These two (Map, & MapAlpha) but i cant find anything wrong with them. Here are the Errors.
Errors: 
! Surface shader function 'surf' not found at line 11
! Unrecognized #pragma surface directive: finalcolor:MyFinalColor at line 11
! Unrecognized #pragma surface directive: noambient at line 11 
And now the code 
 Shader "Map/Map Alpha" { Properties { _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {} }
     SubShader {
         Tags { "Queue"="Transparent" "RenderType"="TransparentCutout" }
         Blend SrcAlpha OneMinusSrcAlpha
         LOD 200
         
         CGPROGRAM
           #pragma surface surf Lambert finalcolor:MyFinalColor noambient
         struct Input {
             float2 uv_MainTex;
             float4 color : COLOR;
           };
         sampler2D _MainTex;
         
         void MyFinalColor(Input IN, SurfaceOutput o, inout fixed4 color) {
             color.rgb = o.Albedo.rgb;
             color.a = o.Alpha;
           }
         
           void surf (Input IN, inout SurfaceOutput o) {
               float3 light = IN.color.rgb;
               float sun = IN.color.a;
               float3 ambient = UNITY_LIGHTMODEL_AMBIENT * 2;
               ambient = min(ambient, sun);
               ambient = max(ambient, light);
               
               fixed4 color = tex2D (_MainTex, IN.uv_MainTex);
           
             o.Albedo = color.rgb * ambient;
             o.Alpha = color.a;
             clip(color.a-0.01f);
          }
         
         ENDCG
     }
     
     SubShader {
         Tags { "Queue"="Transparent" "RenderType"="Transparent" }
         LOD 80
         
         Pass {
             Lighting Off
             Blend SrcAlpha OneMinusSrcAlpha
             ZWrite Off
             
             Material {
                 Diffuse (1,1,1,1)
                 Ambient (1,1,1,1)
             }
             
             BindChannels {
                 Bind "Vertex", vertex
                    Bind "texcoord", texcoord
                    Bind "Color", color
             }
             
             SetTexture [_MainTex] {
                 Combine texture * primary
             } 
         }
     }
     FallBack "Unlit/Texture"
 }
 
               As you can see in the code. I DID declare surf & MyFinalColor, so whats the problem?
Interesting, I found that if i remove the myfinalcolor code it solves the surface function errors... ill keep working on this.
Your answer
 
             Follow this Question
Related Questions
All Charater controllers not working, (Same issue). 0 Answers
Shader error in ... : Syntax error at line 30 1 Answer
Shader compiler error - failed to read correct magic number 2 Answers
Can't open any projects: Shader compiler initialization error :Failed to read D3Dcompiler_47.DLL 2 Answers
Too many texture interpolators would be used for ForwardBase pass (again) 1 Answer