55 lines
1.0 KiB
Plaintext
55 lines
1.0 KiB
Plaintext
|
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"
|
||
|
}
|