게임개발/게임 그래픽 프로그래밍
Lerp 함수 사용하기
pudding81
2024. 2. 16. 17:23
Shader "Custom/Lerp"
{
Properties
{
_Slider("Slider",Range(0,1))=0
_Grass ("Grass", 2D) = "white" {}
_Sand ("Sand", 2D) = "white" {}
_BrightDarkness("Bright Darkness",Range(-1,1))=0
}
SubShader
{
Tags { "RenderType"="Opaque" }
CGPROGRAM
#pragma surface surf Standard fullforwardshadows
#pragma target 3.0
sampler2D _Grass;
sampler2D _Sand;
float _Slider;
float _BrightDarkness;
struct Input
{
float2 uv_Grass;
float2 uv_Sand;
};
void surf (Input IN, inout SurfaceOutputStandard o)
{
fixed4 grass = tex2D (_Grass, IN.uv_Grass);
fixed4 sand = tex2D (_Sand, IN.uv_Sand);
//float4 e =lerp(grass,sand,_Slider);// 텍스쳐 2장 슬라이더로 조절하기
float3 g= (grass.r+grass.g+grass.b)/3+_BrightDarkness; //흑백 밝기 조절하기
float3 e =lerp(g,sand,1-grass.a);// 알파함수 이용 (sand,g,grass.a)
o.Emission =e;
}
ENDCG
}
FallBack "Diffuse"
}