
참고 자료
Hoj Dee - Fresnel in Unreal Engine: A Beginner’s Guide
Epic's Documentation - 머티리얼에 프레넬 사용하기
lifeisforu - [ PBR 이란 무엇인가 ] Fresnel 이란?
“Fresnel”이라는 용어는 프랑스의 물리학자 오귀스탱 장 프레넬에 의해 만들어진 공식으로 원래 광학에서, 빛이 한 매질(interface)을 만나 반사 및 굴절될 때 반사율이나 굴절률 변화에 따라 빛의 반사/투과 정도가 입사 각도에 따라 달라지는 현상을 설명하는 Fresnel 방정식(Fresnel equations)에서 유래한다.
빛이 매질 경계면에 닿을 때 입사 각도가 크면 (즉, 빛이 평면 표면을 스치는 듯한 방향으로 볼 때) 반사가 강해지고, 입사 각도가 작으면 (빛이 정면에 가까울 때) 반사가 약해지는 경향이 있다. 이 현상을 Fresnel 효과라 부른다.

간단히 말해:
정면 방향에서 보면 반사가 거의 없고 (또는 미미하고)
옆면 또는 경사면 쪽에서 보면 반사가 더 강해지는
“가장자리 강조(edge-highlight) 혹은 실루엣 강조(silhouette accentuation)”등의 효과가 Fresnel이다.
이런 특성은 유리, 물, 일부 반사 재질 등에서 자연스럽게 나타난다.

언리얼 엔진에서는 Fresnel 효과를 머티리얼 수준에서 간단하게 모사할 수 있는 노드가 제공된다.
이로 인해 조명이나 씬에 추가적인 광원을 두지 않고도 가장자리 강조(rim lighting) 또는 실루엣을 강조하는 효과를 낼 수 있다.
언리얼 엔진에서 Fresnel 머티리얼 표현식은 표면 노멀과 카메라 방향의 내적을 기준으로 감쇠를 계산합니다. 표면 노멀이 카메라를 똑바로 가리켰을 때 출력 값은 0이며, 프레넬 이펙트가 일어나지 않음을 뜻합니다. 표면 노멀이 카메라와 직각일 때 출력 값은 1이며, 프레넬 이펙트가 완전히 일어남을 뜻합니다. 그런 다음 중앙에 음의 컬러가 없도록 결과는 [0, 1]로 범위제한됩니다.

위 그림처럼 카메라의 View Direction와 Normal 방향이 동일하면 0의 값이 되며, 경계쪽으로 갈 수록 Normal과 View가 직각이 되어 값이 증가하게 된다.
언리얼 머티리얼 편집기에서는 두 가지 방식의 Fresnel 노드가 제공된다:
두 방식 모두 기본 아이디어는 동일하지만, Function 쪽이 더 유연하고 제어 가능한 파라미터가 많다.

| 프로퍼티 | 설명 |
|---|---|
| ExponentIn | 프레넬 이펙트의 감쇠를 제어하는 입력입니다. |
| BaseReflectFractionIn | 표면을 정면에서 볼 때의 스페큘러 리플렉션 부분을 지정합니다. 이 값을 1로 설정하면 프레넬이 사실상 비활성화됩니다. |
| Normal | 노멀 맵을 입력하여 프레넬 이펙트 렌더링 방식을 변경할 수 있습니다. 노멀 맵은 탄젠트 스페이스에서 월드 스페이스로 변환해야 합니다. |

| 프로퍼티 | 설명 |
|---|---|
| Normal Vector (V3) | 노멀을 입력하여 프레넬 이펙트 렌더링 방식을 수정할 수 있습니다. 정확한 결과를 얻으려면 Transform 노드(탄젠트 스페이스 → 월드 스페이스)를 통해 노멀 맵을 전달해야 합니다. |
| Camera Vector (V3) | 카메라 및 표면 노멀 간의 내적을 결정하는 데 사용되는 카메라 벡터를 수동으로 변경합니다. |
| Invert Fresnel (B) | 프레넬 이펙트를 반전합니다. 프레넬을 중앙이나 에지에만 적용하고 싶은 경우 유용합니다. |
| Power (S) | 스칼라를 입력하여 프레넬 이펙트의 규모 또는 감쇠를 제어합니다. 큰 수를 입력하면 영향을 받는 영역이 좁아지고, 작은 수를 입력하면 표면의 더 넓은 부분에 영향을 줍니다. |
| Use Cheap Contrast (B) | 활성화 시 Fresnel 노드는 빛과 어둠 간의 대비를 계산하기 위해 더 저렴한 메서드를 사용합니다. |
| Cheap Contrast Dark (S) | 프레넬의 어두운 정도를 제어합니다. Use Cheap Contrast가 활성화된 경우에만 효과가 있습니다. |
| Cheap Contrast Bright (S) | 프레넬 이펙트의 밝은 정도를 제어합니다. Use Cheap Contrast가 활성화된 경우에만 효과가 있습니다. |
| Clamp Fresnel Dot Product (B) | 프레넬 내적의 결과를 0~1 사이로 범위 제한합니다. 기본적으로 true이며, Static Bool을 false로 설정하여 오버라이드할 수 있습니다. |