- Home /
Decal Shader, Change The Decal Color Separately
I have a decal shader that can have up to 6 different decals, the problem is just that I can only change all the decals to the same color. So I would like to change each decal's color separately.
 Shader "Multiple Decals" {
 Properties {
 _Color ("Main Color", Color) = (1,1,1,1)
 _MainTex ("Base (RGB)", 2D) = "white" {}
 _DecalTex ("Decal (RGBA)", 2D) = "black" {}
 _DecalTex2 ("Decal 2 (RGBA)", 2D) = "black" {}
 _DecalTex3 ("Decal 3 (RGBA)", 2D) = "black" {}
 _DecalTex4 ("Decal 4 (RGBA)", 2D) = "black" {}
 _DecalTex5 ("Decal 5 (RGBA)", 2D) = "black" {}
 _DecalTex6 ("Decal 6 (RGBA)", 2D) = "black" {}
 }
  
 SubShader {
 Tags { "RenderType"="Opaque" }
 LOD 250
  
 CGPROGRAM
 #pragma surface surf Lambert
  
 sampler2D _MainTex;
 fixed4 _Color;
 sampler2D _DecalTex;
 sampler2D _DecalTex2;
 sampler2D _DecalTex3;
 sampler2D _DecalTex4;
 sampler2D _DecalTex5;
 sampler2D _DecalTex6;
  
 struct Input {
 float2 uv_MainTex;
 float2 uv_DecalTex;
 float2 uv_DecalTex2;
 float2 uv_DecalTex3;
 float2 uv_DecalTex4;
 float2 uv_DecalTex5;
 float2 uv_DecalTex6;
 };
  
 void surf (Input IN, inout SurfaceOutput o) {
 fixed4 c = tex2D(_MainTex, IN.uv_MainTex);
 half4 decal = tex2D(_DecalTex, IN.uv_DecalTex);
 half4 decal2 = tex2D(_DecalTex2, IN.uv_DecalTex2);
 half4 decal3 = tex2D(_DecalTex3, IN.uv_DecalTex3);
 half4 decal4 = tex2D(_DecalTex4, IN.uv_DecalTex4);
 half4 decal5 = tex2D(_DecalTex5, IN.uv_DecalTex5);
 half4 decal6 = tex2D(_DecalTex6, IN.uv_DecalTex6);
 c.rgb = lerp (c.rgb, decal.rgb, decal.a);
 c.rgb = lerp (c.rgb, decal2.rgb, decal2.a);
 c.rgb = lerp (c.rgb, decal3.rgb, decal3.a);
 c.rgb = lerp (c.rgb, decal4.rgb, decal4.a);
 c.rgb = lerp (c.rgb, decal5.rgb, decal5.a);
 c.rgb = lerp (c.rgb, decal6.rgb, decal6.a);
 c *= _Color;
 o.Albedo = c.rgb;
 o.Alpha = c.a;
 }
 ENDCG
 }
  
 Fallback "Diffuse"
 }
               Comment
              
 
               
              Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                