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"
}

 

'Shader > Shader - SurfaceShader' 카테고리의 다른 글

11 - 2 (Lambert 라이트연산)  (0) 2020.04.04
11 - 1  (0) 2020.04.04
Metallic(메탈릭) Smoothness(스무스니스)  (0) 2020.02.28
알파  (0) 2020.02.28
기본  (0) 2020.02.28