티스토리 뷰
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
링크