Occlusion : 구석진 부분에 추가적인 음영을 표현하는 기능
일방적으로 환경광이 닿지 못해 그림자가 드리워진 부분도 분명이 존재한다.
하지만 매우 구석지거나 복잡한 물체들로 가려져 환경광이 닿지 못한곳은 더욱 어두워지는데
이것을 Ambient Occlusion이라고 한다. 그리고 이곳에 추가적인 음영을 표현해보겠다
Shader "Custom/NewSurfaceShader"
{
Properties
{
_Occlusion("Occlusion", 2D) = "white" {} //추가
}
SubShader
{
Tags { "RenderType"="Opaque" }
CGPROGRAM
#pragma surface surf Standard fullforwardshadows
sampler2D _Occlusion; //추가
void surf (Input IN, inout SurfaceOutputStandard o)
{
fixed4 c = tex2D(_MainTex, IN.uv_MainTex);
//Occlusion
fixed4 occlusion = tex2D(_Occlusion, IN.uv_MainTex); //추가
o.Occlusion = occlusion; //추가
}
ENDCG
}
FallBack "Diffuse"
}
코드가 너무 길어진 관계로 추가된 부분만 최대한 간추렸다
사실 노멀맵과 사용하는 방식이 크게 다르지 않다. 하지만 여기서 꼭 기억해야할 중요한게 하나 있는데
바로 Occlusion맵은 독립적인 UV를 받지않고 반드시 _MainTex와 같은 uv를 사용해야 한다는것이다
반응형