Unity/Graphics
쉐이더 Lerp, Metallic, Smoothness 적용
s0002
2023. 3. 15. 13:07
비에 젖은 느낌 내보기
Shader "Custom/vertexColor"
{
Properties
{
_MainTex("Texture",2D) = "white"{}
_MainTex1("Texture1",2D) = "white"{}
_MainTex2("Texture2",2D) = "white"{}
_MainTex3("Texture3",2D) = "white"{}
_BumpMap("Normal",2D) = "white"{}
_Metallic("Metalic",Range(0,1)) = 0
_Smoothness("Smoothness",Range(0,1)) = 0
}
SubShader
{
Tags { "RenderType" = "Opaque" }
CGPROGRAM
#pragma surface surf Standard noambient
#pragma target 3.0
sampler2D _MainTex;
sampler2D _MainTex1;
sampler2D _MainTex2;
sampler2D _MainTex3;
sampler2D _BumpMap;
float _Metallic;
float _Smoothness;
struct Input
{
float4 color: COLOR;
float2 uv_MainTex;
float2 uv_MainTex1;
float2 uv_MainTex2;
float2 uv_MainTex3;
float2 uv_BumpMap;
};
void surf (Input IN, inout SurfaceOutputStandard o)
{
float4 c=tex2D(_MainTex, IN.uv_MainTex);
float4 e = tex2D(_MainTex2, IN.uv_MainTex2);
float4 d = tex2D(_MainTex1, IN.uv_MainTex1);
float4 f = tex2D(_MainTex3, IN.uv_MainTex3);
float4 bump = tex2D(_BumpMap, IN.uv_BumpMap);
float3 n = UnpackNormal(bump);
o.Normal = float3(n.x*1.5, n.y*1.5, n.z);
//o.Emission = lerp(c.rgb, d.rgb, IN.color.r);
////o.Emission = lerp(o.Emission, e.rgb, IN.color.g);
//o.Emission = lerp(o.Emission, (f.r+f.g+f.b)/3, IN.color.b);
o.Albedo = lerp(c.rgb,d.rgb,1-IN.color.b);
//o.Albedo = lerp(o.Albedo, 0, IN.color.r);
o.Alpha = c.a;
o.Metallic = IN.color.b*_Metallic;
o.Smoothness = IN.color.b*_Smoothness;
}
ENDCG
}
FallBack "Diffuse"
}