둘의 상관관계는 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;
}
요렇게 구현하면 댐
'Unity' 카테고리의 다른 글
[Unity] 레이어 간 충돌 처리 세팅 (0) | 2023.04.16 |
---|---|
[Unity] Don't Call Firebase functions before CheckDependencied has finished 에러 (0) | 2023.02.23 |
[Unity] Lambert와 Blinn-Phong (쉐이더 스타트업) (0) | 2023.02.12 |
[Unity] Lambert Shader 구현 (쉐이더 스타트업) (0) | 2023.02.04 |
[Unity] Standard Shader SurfaceOutputStandard (쉐이더 스타트업) (0) | 2023.02.04 |