Unreal Engine

Material Function(Outline Shader에 사용)

Keisa 2023. 9. 30. 08:42

step 노드: 

Step 머티리얼 표현식은 각 X 값이 Y의 참조 값보다 큰지 작은지에 따라 0 또는 1을 반환합니다.

아래에는 선형 그레이디언트(0에서 1)가 X 입력에 연결되어 있습니다. Y의 값(0.25)이 참조 값으로 사용됩니다. 0.25 미만의 모든 그레이디언트 값은 0(검은색)을 반환하고, 0.25 이상의 모든 값은 1(흰색)을 반환합니다.

 

 

Fresnel 노드:

Fresnel 은 관찰자가 바라보는 각도에 따라 반사되는 빛의 세기가 달라지는 현상을 설명하는 데 사용되는 용어입니다. 예를 들어 물 웅덩이 위에 서서 수직으로 내려다보는 경우, 반사되는 수면이 많이 보이지 않을 것입니다. 머리를 움직여 물 웅덩이의 수면이 시선과 평행이 되어갈수록, 수면의 반사면이 많아지는 것이 보일 것입니다.

UE4 에서 Fresnel 머티리얼 표현식 노드는 표면 노멀과 카메라까지의 방향의 내적을 기반으로 감쇠 계산을 합니다. 표면 노멀이 카메라를 바로 향하면 출력값은 0, 즉 발생하는 프레넬 이펙트가 없습니다. 표면 노멀이 카메라에 수직인 경우 출력값은 1, 즉 최대치의 프레넬 이펙트가 발생합니다. 그런 다음 그 결과를 [0,1] 범위로 제한시켜 가운데 음수 컬러가 생기지 않도록 합니다. 다음 그림은 이 개념을 나타냅니다.


구체 중앙의 0 인 부분은 프레넬 이펙트가 없는 것이 보입니다. 왜냐면 카메라가 바로 표면 노멀쪽을 향하고 있기 때문입니다. 표면 노멀과 카메라가 수직이 되어갈 수록, 즉 1 에 가까울 수록 프레넬 이펙트가 더욱 잘 보이게 되는데, 바로 그러한 작동방식 유형이 필요한 것입니다.

 

 



ExponentIn 지수 입력 - 프레넬 이펙트 감쇠를 제어합니다.
BaseReflectFrctionIn 기본 리플렉션 굴절 입력 - 표면을 직접 봤을 때의 스페큘러 리플렉션의 굴절율을 나타냅니다. 이 값을 1 로 설정하면 사실상 프레넬이 꺼집니다.
Normal 노멀 - 여기에 노멀을 입력시켜 프레넬 이펙트의 렌더링 방식에 영향을 끼칠 수 있습니다. 이 프로퍼티는 노멀 맵이나 벡터 3 입력 중 하나를 제공하는 것으로는 설정할 수 없습니다.

Saturate 노드:

Saturate (포화) 노드는 값을 0 과 1 사이로 범위 제한합니다. 0 보다 낮으면 0 으로 올리고, 1 보다 크면 1 로 낮추며, 0 이상 1 이하 값은 그대로 유지됩니다. Saturate 의 인스트럭션 비용은 대부분의 그래픽 하드웨어에서 거의 무료이므로, 입력 또는 출력 값을 0 과 1 사이로 범위 제한하려는 경우 이 노드를 사용하면 머티리얼 퍼포먼스 영향이 거의 없습니다.