Shader "ProBuilder/Diffuse Texture Blend" { Properties { _FirstTex ("Texture", 2D) = "white" {} _SecondTex ("Texture", 2D) = "white" {} _ThirdTex ("Texture", 2D) = "white" {} _FourthTex ("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType" = "Opaque" } ColorMask RGB CGPROGRAM #pragma surface surf Lambert sampler2D _FirstTex; sampler2D _SecondTex; sampler2D _ThirdTex; sampler2D _FourthTex; struct Input { float4 color : COLOR; float2 uv_FirstTex; float2 uv_SecondTex; float2 uv_ThirdTex; float2 uv_FourthTex; }; void surf (Input IN, inout SurfaceOutput o) { fixed4 c0 = tex2D(_FirstTex, IN.uv_FirstTex); fixed4 c1 = tex2D(_SecondTex, IN.uv_SecondTex); fixed4 c2 = tex2D(_ThirdTex, IN.uv_ThirdTex); fixed4 c3 = tex2D(_FourthTex, IN.uv_FourthTex); fixed4 blend = normalize(IN.color); fixed4 rgba = c0 * blend.r; rgba = lerp(rgba, c1, blend.g); rgba = lerp(rgba, c2, blend.b); rgba = lerp(rgba, c3, blend.a); o.Albedo = rgba.rgb; } ENDCG } Fallback "Diffuse" }