Unity Shader Study07 : RimLight
//float3 viewDir는 버텍스에서바라보는 카메라 방향을 나타냅니다.
// float rim = dot(o.Normal, IN.viewDir);
//o.Emission = pow(1-rim,_RimPower)*_RimColor.rgb;
Shader "Custom/Shader10_Fresnel" {
Properties {
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_RimColor ("RimColor", Color) = (1,1,1,1)
_RimPower ("RimPower",Range(1,10)) = 3
}
SubShader {
Tags { "RenderType"="Opaque" }
CGPROGRAM
#pragma surface surf Lambert noambient
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
float3 viewDir;
float4 _RimColor;
float _RimPower;
};
void surf (Input IN, inout SurfaceOutput o) {
fixed4 c = tex2D(_MainTex, IN.uv_MainTex);
o.Albedo = 0;
float rim = dot(o.Normal, IN.viewDir);
o.Emission = pow(1-rim,_RimPower)*_RimColor.rgb;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
// float rim = dot(o.Normal, IN.viewDir);
//o.Emission = pow(1-rim,_RimPower)*_RimColor.rgb;
Shader "Custom/Shader10_Fresnel" {
Properties {
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_RimColor ("RimColor", Color) = (1,1,1,1)
_RimPower ("RimPower",Range(1,10)) = 3
}
SubShader {
Tags { "RenderType"="Opaque" }
CGPROGRAM
#pragma surface surf Lambert noambient
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
float3 viewDir;
float4 _RimColor;
float _RimPower;
};
void surf (Input IN, inout SurfaceOutput o) {
fixed4 c = tex2D(_MainTex, IN.uv_MainTex);
o.Albedo = 0;
float rim = dot(o.Normal, IN.viewDir);
o.Emission = pow(1-rim,_RimPower)*_RimColor.rgb;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
댓글
댓글 쓰기