- Home /
 
Help Fixing Error in this Shader?
I do not know the shader well.
And the following error.
I would like to modify.
In addition, the shader code would like this performance in the mobile?
 Shader "Custom/Custom_Shader"
 {
     Properties 
     {
 _Diffuse("_Diffuse", 2D) = "black" {}
 _Normal("_Normal", 2D) = "black" {}
 _Spec_int("_Spec_int", Float) = 0
 _Gloss_int("_Gloss_int", Float) = 0
 _Fresnel_int("_Fresnel_int", Float) = 0.5
 _Fresnel_ratio("_Fresnel_ratio", Float) = 3
 _Fresnel_Color("_Fresnel_Color", Color) = (1,1,1,1)
 _Half_Lambert("_Half_Lambert", Float) = 0.5
 _Half_Lambert2("_Half_Lambert2", Float) = 0.5
 
     }
     
     SubShader 
     {
         Tags
         {
 "Queue"="Geometry"
 "IgnoreProjector"="False"
 "RenderType"="Opaque"
 
         }
 
         
 Cull Back
 ZWrite On
 ZTest LEqual
 ColorMask RGBA
 Fog{
 }
 
 
 CGPROGRAM
 #pragma surface surf BlinnPhongEditor  vertex:vert
 
 #ifndef SHADER_API_D3D11
     #pragma target 3.0
 #else
     #pragma target 4.0
 #endif
 
 sampler2D _Diffuse;
 sampler2D _Normal;
 float _Spec_int;
 float _Gloss_int;
 float _Fresnel_int;
 float _Fresnel_ratio;
 float4 _Fresnel_Color;
 float _Half_Lambert;
 float _Half_Lambert2;
 
             struct EditorSurfaceOutput {
                 half3 Albedo;
                 half3 Normal;
                 half3 Emission;
                 half3 Gloss;
                 half Specular;
                 half Alpha;
                 half4 Custom;
             };
             
             inline half4 LightingBlinnPhongEditor_PrePass (EditorSurfaceOutput s, half4 light)
             {
 float4 Multiply0=light * _Half_Lambert2.xxxx;
 float4 Add0=Multiply0 + _Half_Lambert.xxxx;
 float4 Multiply1=Add0 * Add0;
 float4 Multiply2=float4( s.Albedo.x, s.Albedo.y, s.Albedo.z, 1.0 ) * Multiply1;
 float4 Splat0=light.w;
 float4 Multiply5=float4( s.Gloss.x, s.Gloss.y, s.Gloss.z, 1.0 ) * Splat0;
 float4 Multiply4=light * Multiply5;
 float4 Add1=Multiply2 + Multiply4;
 float4 Mask0=float4(Add1.x,Add1.y,Add1.z,0.0);
 float4 Luminance0= Luminance( Multiply5.xyz ).xxxx;
 float4 Add2=Luminance0 + float4( s.Albedo.x, s.Albedo.y, s.Albedo.z, 1.0 );
 float4 Mask1=float4(0.0,0.0,0.0,Add2.w);
 float4 Add3=Mask0 + Mask1;
 return Add3;
 
             }
 
             inline half4 LightingBlinnPhongEditor (EditorSurfaceOutput s, half3 lightDir, half3 viewDir, half atten)
             {
                 half3 h = normalize (lightDir + viewDir);
                 
                 half diff = max (0, dot ( lightDir, s.Normal ));
                 
                 float nh = max (0, dot (s.Normal, h));
                 float spec = pow (nh, s.Specular*128.0);
                 
                 half4 res;
                 res.rgb = _LightColor0.rgb * diff;
                 res.w = spec * Luminance (_LightColor0.rgb);
                 res *= atten * 2.0;
 
                 return LightingBlinnPhongEditor_PrePass( s, res );
             }
             
             struct Input {
                 float2 uv_Diffuse;
 float2 uv_Normal;
 float3 viewDir;
 
             };
 
             void vert (inout appdata_full v, out Input o) {                
                 float4 VertexOutputMaster0_0_NoInput = float4(0,0,0,0);
                 float4 VertexOutputMaster0_1_NoInput = float4(0,0,0,0);
                 float4 VertexOutputMaster0_2_NoInput = float4(0,0,0,0);
                 float4 VertexOutputMaster0_3_NoInput = float4(0,0,0,0);
 
 
             }
             
 
             void surf (Input IN, inout EditorSurfaceOutput o) {
                 o.Normal = float3(0.0,0.0,1.0);
                 o.Alpha = 1.0;
                 o.Albedo = 0.0;
                 o.Emission = 0.0;
                 o.Gloss = 0.0;
                 o.Specular = 0.0;
                 o.Custom = 0.0;
                 
 float4 Tex2D0=tex2D(_Diffuse,(IN.uv_Diffuse.xyxy).xy);
 float4 Tex2DNormal0=float4(UnpackNormal( tex2D(_Normal,(IN.uv_Normal.xyxy).xy)).xyz, 1.0 );
 float4 Multiply3=Tex2D0.aaaa * _Spec_int.xxxx;
 float4 Fresnel0_1_NoInput = float4(0,0,1,1);
 float4 Fresnel0=(1.0 - dot( normalize( float4( IN.viewDir.x, IN.viewDir.y,IN.viewDir.z,1.0 ).xyz), normalize( Fresnel0_1_NoInput.xyz ) )).xxxx;
 float4 Pow0=pow(Fresnel0,_Fresnel_ratio.xxxx);
 float4 Multiply4=_Fresnel_Color * Pow0;
 float4 Multiply1=Multiply4 * _Fresnel_int.xxxx;
 float4 Multiply2=Multiply3 * Multiply1;
 float4 Master0_5_NoInput = float4(1,1,1,1);
 float4 Master0_7_NoInput = float4(0,0,0,0);
 float4 Master0_6_NoInput = float4(1,1,1,1);
 o.Albedo = Tex2D0;
 o.Normal = Tex2DNormal0;
 o.Emission = Multiply2;
 o.Specular = _Gloss_int.xxxx;
 o.Gloss = Multiply3;
 
                 o.Normal = normalize(o.Normal);
             }
         ENDCG
     }
     Fallback "Diffuse"
 }
 
              
               Comment
              
 
               
              What error? And what mobile? That seems an awful lot of shader instructions for a mobile device, but whether it's acceptable performance or not is only for you to tell by actually testing it on a target device.
Your answer
 
             Follow this Question
Related Questions
Mobile Shader with Albedo Color and Normal Map 0 Answers
Reflect Fresnel Mobile VR 0 Answers
Mali-G76 ShaderGraph PBR Shader,when shadervariant missing cause crash 0 Answers
U5 shader coming out solid black on newer iOS devices (iPad 2 Air / iPhone 6) 1 Answer
Do our company need a Facebook business account for integrating our unity game? 1 Answer