WinCNT

PBR(Physically Based Rendering) - 프레넬 반사(Fresnel Reflectance) 본문

게임 프로그래밍(학습 내용 정리)/3D Graphic Engine

PBR(Physically Based Rendering) - 프레넬 반사(Fresnel Reflectance)

WinCNT_SSS 2022. 7. 22. 12:32

프레넬 반사

모든 표면전반사(Total internal reflection)한다

굴절률이 서로 다른 두 매질이 맞닿은 경계면을 빛이 통과할 때,

입사각이 임계각을 넘어서면 빛이 흡수되지 못하고 정반사하는데, 이를 전반사라고 한다

 

이 현상은 오귀스탱 장 프레넬(Augustin-Jean Fresnel)이 프레넬 방정식으로 유도하여

프레넬 반사(Fresnel Reflectance)라고도 한다

프레넬 반사를 볼 수 있는 사례. 출처: https://youtu.be/LNwMJeWFr0U

 

빛이 하나이거나 단순한 모델인 경우는 (다른 항과의 곱셈으로 인해 희미해져서)

PBR에서의 프레넬 항을 구현해도 별 차이가 안 느껴질 수 있지만

사방에서 빛이 들어오거나 GI(글로벌 일루미네이션)에서 확실히 느껴진다

 

프레넬 반사율 그래프

 

위의 그래프는 물체별 입사각에 따른 프레넬 반사율을 나타낸 것이다

가로축이 입사각(물체의 노멀과 시점의 각도)이며, 세로축이 가로축에 따른 물질별 프네렐 반사율이다

 

PBR에서는 연산 부하를 줄이기 위해 원복 식보다 슐릭 근사식을 주로 사용한다

 

슐릭 근사(Schlick’s approximation)

프레넬 식을 좀 더 단순하게 구하기 위한 식이다

F0는 기본 반사율을 의미하며 F0의 n1, n2는 두 매질의 굴절률에 대한 것이다

그런데 보통 조명 연산은 공기 중의 물체에 대해서 하기 때문에

n1에는 공기(라는 매질의) 굴절률인 1을 두고 계산한다

 

메탈인 경우는 광택을 표현하기 위해 금속성(0~1의 값)을 프레넬 함수의 반사 계수인 F0로도 사용한다

(금속성은 물체의 광택(반사율)를 나타내기 위한 것이고 F0은 입사각이 0도일 때의 반사율을 나타내기 때문인가??)

F0에다 메탈릭 수치를 곱해야한다(왜일까??)

 


AO(Ambiendt Occlusion)

프레넬과 상관은 없지만 MRA(ARM) 맵의 한 채널을 차지하므로 일단 추가

AO를 Map으로 적용

사실상 손 맵, 라이트 맵과 비슷함
(Occlusion의 정도를 제공한다는 것이 다름)

 

주의점

프네넬은 Legacy의 Specular 아닌 부분에서도 정반사(Specular)가 일어나는 것이다

PBR의 Specular에서 상당히 중요한 부분이다

 

조도 - 들어가는 빛

휘도 - 나오는 빛

 

 

참고 사이트

https://lifeisforu.tistory.com/384?category=567143 

 

[ PBR 이란 무엇인가 ] 17. Fresnel 이란?

주의 : 잘못된 내용이 포함되어 있을 수 있으므로 이상하면 참고자료를 확인하세요. [ PBR 이란 무엇인가 ] Fresnel 이란? 프레넬 공식이란? 앞서 [ [ 번역 ] 모든 것은 프레넬을 가집니다 ] 와 [ Ref

lifeisforu.tistory.com

 

SSS