Unreal Engine : 프레넬과 선형보간법

 Fresnel

프레넬 계수 

빛이 어떤 매질에서 다른 매질로 향할 때 모두 반사되거나 모두 투영되지 않고

빛의 일부는 반사되고 일부는 투영된다. 


굴절률과 입사각이 주어질때 프레넬 방정식을 이용하면 입사하는 빛에 대한 반사율을 

알려준다.





수학은 아니겠지...









엔진에서 시뮬레이션 해보겠습니다.




프레넬 노드는 카메라 시점으로 물체의 정면과
측면에 따라 0~1의 값을 출력해 줍니다.




'구'로 설명하자면 정면은 0, 측면은 1입니다.



설명을 위해 베이스 컬러에 연결해 보면
가운데는0, 외곽은 1이기 때문에

이러한 형태로 보입니다.

해당 부분을 투명도가 있는 물체에 적용해 보겠습니다.





셰이더의 블랜드 모드는 Translucent


라이팅모드는  Surface TranslucencyVolume

프레넬 노드는 오파시티에 연결해 줍니다.



짜잔 외곽만 남았습니다.








굴절률만 넣으면 다소 어색함이 있기 때문입니다. 왜 에에?


왜? 빛의 굴절은 입사각에 따라 각도가 달라집니다.




오호..







우선 수치만 넣어보죠


입사각과  상관없이 굴절률이 일정하게 들어갑니다. 



그럼 입사각에 따라 굴절률을 다르게 표현하려면 어찌해야할까요 ?

Fresnel와 Linearinterpolate 이 필요합니다.


철자가 너무 길고 어려워..


프레넬과 선형보간이 필요합니다.


선형 보간이란?

선형 보간법은 1차원 직선상에서 두 점의 값이 주어졌을 때 

그 사이의 값을 추정하기 위해 직선 거리에 따라 선형적으로 계산(비례식)하는 방법이다.




C의 X 좌표가 주어졌을때 보관법을 이용하여

Y좌표를 알아 낼 수 있다. 


C의 X가5일때 Y는?

2  --- 5 --- 7

5는 2와 7 사이의 60%

1과 4 사이의 60%는? 2.8 (1 + 3x0.6)





아무튼 적용해 봅시다.


프레넬에서 적용된 0~1의 값은

1~1.33으로 치환되어 굴절에 입력됩니다.




꽤 근사합니다.    



프레넬과 선형 보간은 계속해서 나올테니 잘 이해해 두시면 좋습니다.





댓글

이 블로그의 인기 게시물

Making Dice (Blender, Quixel Mixer)

Bake Normal map & ID map (With Blender, Substance)

게임을 만드는 것에 대하여 (1)