뷰벡터와 노말을 내적한다.
외곽선을 얇게 만들기 위해 제곱한다.
코드
Shader "Custom/Part12-1"
{
Properties
{
_MainTex ("Albedo (RGB)", 2D) = "white" {}
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
// Physically based Standard lighting model, and enable shadows on all light types
#pragma surface surf Lambert noambient
// Use shader model 3.0 target, to get nicer looking lighting
#pragma target 3.0
sampler2D _MainTex;
struct Input
{
float2 uv_MainTex;
float3 viewDir; // '버텍스에서' 바라보는 카메라의 방향
};
UNITY_INSTANCING_BUFFER_START(Props)
// put more per-instance properties here
UNITY_INSTANCING_BUFFER_END(Props)
void surf (Input IN, inout SurfaceOutput o)
{
fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
o.Albedo = 0;
float rim = 1-dot(o.Normal, IN.viewDir);
o.Emission = pow(rim, 3);
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}
'셰이더 (Shader) > 유니티 쉐이더 스타트업 - 정종필' 카테고리의 다른 글
[Unity/Shader] 파트12-3 : 홀로그램 제작 (0) | 2023.08.17 |
---|---|
[Unity/Shader] 파트12-2 : Rim 라이트 완성 (0) | 2023.08.16 |
[Unity/Shader] 파트11-4 : Lambert 라이트 완성 (0) | 2023.08.16 |
[Unity/Shader] 파트11-3 : Half-Lambert 라이트 연산 (0) | 2023.08.15 |
[Unity/Shader] 파트11-2 : Lambert 라이트 연산 (0) | 2023.08.12 |
댓글