Lerp : 선형 보간

형식
lerp(X, Y, s)
Shader "Custom/texShader"
{
Properties
{
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_MainTex2 ("Albedo (RGB)", 2D) = "white" {}
}
SubShader
{
Tags { "RenderType"="Opaque" }
CGPROGRAM
#pragma surface surf Standard fullforwardshadows
sampler2D _MainTex;
sampler2D _MainTex2;
struct Input
{
float2 uv_MainTex;
float2 uv_MainTex2;
};
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_MainTex2);
o.Albedo = lerp(c.rgb, d.rgb, 0.5);
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}
두개의 텍스쳐를 받는다.
lerp(c.rgb, d.rgb, 0.5); // 텍스쳐의 정점값의 보간 값을 Albedo에 넣어준다.

o.Albedo = lerp(c.rgb, d.rgb, c.a); // 보간값에 첫번째 텍스쳐의 알파값을 넣으면 Mask이미지를 만들 수 있다.


o.Albedo = lerp(d.rgb, c.rgb, c.a); // 반대로 Mask 효과 주기

'Unity > Unity_Shader' 카테고리의 다른 글
| 12. UV값 변환 (0) | 2023.05.04 |
|---|---|
| 11. UV (0) | 2023.05.04 |
| 09. 이미지를 흑백으로 바꾸는 방법 (0) | 2023.04.27 |
| 08. 쉐이더 텍스쳐 출력 (0) | 2023.04.27 |
| 07. 쉐이더 변수로 밝기 조절 (0) | 2023.04.25 |