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"

댓글

이 블로그의 인기 게시물

About AActor!!! "UObject" has no member "BeginPlay"

UNREAL Android build information

C++ 생성자 위임 (delegating constructor)