Quantcast
Viewing all articles
Browse latest Browse all 2891

Invalid Subscript Metallic

I keep getting the message "Shader error in 'Toony Colors Free/Regular': invalid subscript 'Metallic' at line 98 (on d3d11)".

this is my code. Shader "Toony Colors Free/Regular" { Properties { //TOONY COLORS _Color ("Color", Color) = (0.5,0.5,0.5,1.0) _HColor ("Highlight Color", Color) = (0.6,0.6,0.6,1.0) _SColor ("Shadow Color", Color) = (0.3,0.3,0.3,1.0) //DIFFUSE _MainTex ("Main Texture (RGB)", 2D) = "white" {} _Glossiness("Smoothness", Range(0,1)) = 0.5 _Metallic("Metallic", Range(0,1)) = 0.0 _BumpMap("Normal Map", 2D) = "bump" {} //TOONY COLORS RAMP _Ramp ("Toon Ramp (RGB)", 2D) = "gray" {} } SubShader { Tags { "RenderType"="Opaque" } CGPROGRAM #pragma surface surf ToonyColorsCustom #pragma target 3.0 #pragma glsl //================================================================ // VARIABLES fixed4 _Color; sampler2D _MainTex; struct Input { half2 uv_MainTex; float2 uv_BumpMap; }; sampler2D _BumpMap; half _Glossiness; half _Metallic; //================================================================ // CUSTOM LIGHTING //Lighting-related variables fixed4 _HColor; fixed4 _SColor; sampler2D _Ramp; //Custom SurfaceOutput struct SurfaceOutputCustom { fixed3 Albedo; fixed3 Normal; fixed3 Emission; half Specular; half _Glossiness; half _Metallic; fixed Alpha; }; inline half4 LightingToonyColorsCustom (SurfaceOutputCustom s, half3 lightDir, half3 viewDir, half atten) { s.Normal = normalize(s.Normal); fixed ndl = max(0, dot(s.Normal, lightDir)*0.5 + 0.5); fixed3 ramp = tex2D(_Ramp, fixed2(ndl,ndl)); #if !(POINT) && !(SPOT) ramp *= atten; #endif _SColor = lerp(_HColor, _SColor, _SColor.a); //Shadows intensity through alpha ramp = lerp(_SColor.rgb,_HColor.rgb,ramp); fixed4 c; c.rgb = s.Albedo * _LightColor0.rgb * ramp; c.a = s.Alpha; #if (POINT || SPOT) c.rgb *= atten; #endif return c; } //================================================================ // SURFACE FUNCTION void surf (Input IN, inout SurfaceOutputCustom o) { fixed4 mainTex = tex2D(_MainTex, IN.uv_MainTex); o.Albedo = mainTex.rgb * _Color.rgb; o.Metallic = _Metallic; o.Smoothness = _Glossiness; o.Alpha = mainTex.a * _Color.a; o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap)); } ENDCG } Fallback "Diffuse" CustomEditor "TCF_MaterialInspector" } ,I keep getting message "invalid subscript 'metallic' at line 98 (on d3d11).
This is my shader code. Shader "Toony Colors Free/Regular" { Properties { //TOONY COLORS _Color ("Color", Color) = (0.5,0.5,0.5,1.0) _HColor ("Highlight Color", Color) = (0.6,0.6,0.6,1.0) _SColor ("Shadow Color", Color) = (0.3,0.3,0.3,1.0) //DIFFUSE _MainTex ("Main Texture (RGB)", 2D) = "white" {} _Glossiness("Smoothness", Range(0,1)) = 0.5 _Metallic("Metallic", Range(0,1)) = 0.0 _BumpMap("Normal Map", 2D) = "bump" {} //TOONY COLORS RAMP _Ramp ("Toon Ramp (RGB)", 2D) = "gray" {} } SubShader { Tags { "RenderType"="Opaque" } CGPROGRAM #pragma surface surf ToonyColorsCustom #pragma target 3.0 #pragma glsl //================================================================ // VARIABLES fixed4 _Color; sampler2D _MainTex; struct Input { half2 uv_MainTex; float2 uv_BumpMap; }; sampler2D _BumpMap; half _Glossiness; half _Metallic; //================================================================ // CUSTOM LIGHTING //Lighting-related variables fixed4 _HColor; fixed4 _SColor; sampler2D _Ramp; //Custom SurfaceOutput struct SurfaceOutputCustom { fixed3 Albedo; fixed3 Normal; fixed3 Emission; half Specular; half _Glossiness; half _Metallic; fixed Alpha; }; inline half4 LightingToonyColorsCustom (SurfaceOutputCustom s, half3 lightDir, half3 viewDir, half atten) { s.Normal = normalize(s.Normal); fixed ndl = max(0, dot(s.Normal, lightDir)*0.5 + 0.5); fixed3 ramp = tex2D(_Ramp, fixed2(ndl,ndl)); #if !(POINT) && !(SPOT) ramp *= atten; #endif _SColor = lerp(_HColor, _SColor, _SColor.a); //Shadows intensity through alpha ramp = lerp(_SColor.rgb,_HColor.rgb,ramp); fixed4 c; c.rgb = s.Albedo * _LightColor0.rgb * ramp; c.a = s.Alpha; #if (POINT || SPOT) c.rgb *= atten; #endif return c; } //================================================================ // SURFACE FUNCTION void surf (Input IN, inout SurfaceOutputCustom o) { fixed4 mainTex = tex2D(_MainTex, IN.uv_MainTex); o.Albedo = mainTex.rgb * _Color.rgb; o.Metallic = _Metallic; o.Smoothness = _Glossiness; o.Alpha = mainTex.a * _Color.a; o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap)); } ENDCG } Fallback "Diffuse" CustomEditor "TCF_MaterialInspector" }

Viewing all articles
Browse latest Browse all 2891

Trending Articles