Unity
[Unity] Lim 라이트와 Fresnel 공식 (쉐이더 스타트업)
소리쿤
2023. 2. 12. 18:03
둘의 상관관계는 Fresnel 공식으로 Lim 라이트를 구현할 수 있음이고,
Fresnel 공식의 근간은 물체가 기울 수록 반사가 잘 된다임
원래는 금속, 비금속에 따라서 반사율이 좀 달라진 것까지 반영한다고 하는데, 그거는 잘 모름
암튼 아래 Lim 라이트 구현에 사용하는 이유는, 물체가 기울 수록 밝아진다. (반사가 잘 된다) 임
Lim 라이트가 뭐냐면
사진 출처:http://rapapa.net/?p=2381
어떻게 구현하냐면...
물체 to 카메라 벡터(V), 노말 벡터(N) 일 때,
V ㅇ N 을 하이라이트 정도로 취급하면 됨
그러면 카메라에 가까운 쪽은 밝고, 먼 쪽은 어두운데, 이걸 뒤집으면
가까운 쪽은 어둡고, 먼 쪽은 하얗게 되는 그런 효과...
void surf(Input IN, inout SurfaceOutput o)
{
fixed4 d = tex2D(_MainTex, IN.uv_MainTex);
o.Albedo = d.rgb;
o.Alpha = d.a;
o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
float rimVal = dot(IN.viewDir, o.Normal);
float invRimVal = 1 - rimVal;
float3 rimVec = pow(invRimVal, _RimPower) * float3(1, 0, 0);
o.Emission = rimVec;
}
요렇게 구현하면 댐