티스토리 뷰

Unity/Shader Graph

Fresnel Effect

연홍 2021. 1. 13. 15:20
728x90

Fresnel Effect는 시야각에 따라 표면의 반사율이 달라지는 효과로, 입사각에 접근하면 더 많은 빛이 반사됩니다.

Fresnel Effect는 표면 법선과 뷰 방향 사이의 각도를 계산하여 이를 근사화합니다. 각도가 클 수록 반환값이 커집니다.

 

즉, 노드는 메시의 Normal View Dir (카메라에서 픽셀 위치까지의 벡터)을 기반으로 값을 출력합니다 . 그들 사이  각도 가 클 수록 반환되는 값이 커집니다. 90도 각도 차이에서 이것은 정확히 1 입니다. 카메라를 향하는 법선은 더 작은 값을 반환하거나 정확히 정렬 된 경우 0을 반환 하며 Power 값을 지정하여 이를 조정할 수 있습니다.

(aka Rim Light)

 

void Unity_FresnelEffect_float(float3 Normal, float3 ViewDir,
    float Power, out float Out) {
    Out = pow((1.0 - saturate(dot(normalize(Normal),
          normalize(ViewDir)))), Power);
}

 

셰이더가 Transparent이고 Two Sided를 사용 하는 경우 메시의 법선은 일반적으로 뷰 방향에서 멀리 떨어져 있으므로 1 을 반환 합니다. 이것이 의도한 결과가 아니라면 이를 방지하기위해 Normal Vector 입력을 뒤집어서 Is Front Face 노드와 함께 Branch를 사용하여 앞면에 대한 프레넬효과 출력을 할 수 있습니다.

 

 

'Unity > Shader Graph' 카테고리의 다른 글

Voronoi  (0) 2021.01.15
Render Texture  (0) 2021.01.14
Vertex Displacement  (0) 2021.01.14
Scene Color & Scene Depth  (0) 2021.01.13
Polar Coordinates  (0) 2021.01.13
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31