Shader/Shader - SurfaceShader
버텍스 컬러를 마스킹 기능으로 사용하기
소나무꼴
2020. 2. 28. 16:53
버텍스 칼라를 마스킹 용으로 사용하여
맵을 그릴때나 파손된 벽 재질 등에 유용하게 사용가능
Shader "Custom/VCMask" {
Properties {
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_MainTex2("Albedo (RGB)", 2D) = "white" {}
_MainTex3("Albedo (RGB)", 2D) = "white" {}
_MainTex4("Albedo (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "RenderType" = "Opaque"}// "Queue" = "Transparent" }
CGPROGRAM
#pragma surface surf Standard // alpha:fade
sampler2D _MainTex;
sampler2D _MainTex2;
sampler2D _MainTex3;
sampler2D _MainTex4;
struct Input {
float2 uv_MainTex;
float4 color:COLOR;
};
float _di;
UNITY_INSTANCING_BUFFER_START(Props)
UNITY_INSTANCING_BUFFER_END(Props)
void surf (Input IN, inout SurfaceOutputStandard o) {
fixed4 c = tex2D(_MainTex, IN.uv_MainTex);
fixed4 d = tex2D(_MainTex2, IN.uv_MainTex);
fixed4 e = tex2D(_MainTex3, IN.uv_MainTex);
fixed4 f = tex2D(_MainTex4, IN.uv_MainTex);
o.Albedo = lerp(c.rgb, d.rgb, IN.color.r);
o.Albedo = lerp(o.Albedo, e.rgb, IN.color.g);
o.Albedo = lerp(o.Albedo, f.rgb, IN.color.b);
// o.Emission = IN.color.rgb;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}