언리얼 셰이더 노드 정리
러프니스(Roughness) 셰이더
물리 기반 렌더링(PBR)에서 표면의 거칠기를 표현하는 핵심 요소로,
빛이 표면에 어떻게 반사되는지를 결정합니다.
이 값은 0에서 1 사이의 범위를 가지며, 0에 가까울수록 표면이 매끄럽고 반사가 선명하며,
1에 가까울수록 표면이 거칠고 반사가 흐릿해집니다.
- 검은색(0): 매우 매끄러운 영역
- 흰색(1): 매우 거친 영역
TexCoord[0]
메시의 UV 좌표값을 가져오는 기본 노드
- TexCoord[0] UV 채널 0번의 좌표를 가져옴 (좌표 인덱스 0)
- 출력값 float2 (X=U, Y=V) 즉, (0~1) 범위의 UV 좌표
- 주 용도 텍스처 매핑, UV 기반 연산, 마스크 생성 등
Mask ( R G ) [Shift+C]
수학 연산
Multiply 곱하기 / Divide 나누기 / Add 더하기 / Subtract 빼기
Abs 절댓값 / 1-x one minus / Power 거듭제곱
프리뷰 > 우클릭 > 노드 프리뷰 시작
Lerp 셰이더 - 선형 보간 (Linear Interpolation)
A -0.5 시작값 / B 0.5 끝값 / Alpha 보간 계수 (0~1 사이 값)
Output = A * (1 - Alpha) + B * Alpha
= -0.5 * (1 - Alpha) + 0.5 * Alpha
즉, Alpha 값이 0이면 -0.5, 1이면 0.5, 그 사이면 선형적으로 보간됩니다.
어디에 쓰이냐면? Lerp(-0.5, 0.5)은 보통
- UV 중심 기준 좌우 반대 방향 offset 생성
- UV 좌표의 범위를 -0.5 ~ 0.5로 리매핑
- Radial falloff나 마스크 중심 정렬
예: TexCoord의 X축 (0~1)을 -0.5~0.5로 만들고 싶을 때 자주 씀.
Texture Sample
텍스처 데이터를 샘플링하는 데 사용
슬롯 | 설명 |
UVs | 텍스처를 매핑할 UV 좌표 입력 (보통 TexCoord 연결) |
Tex | 연결된 텍스처 에셋 |
Apply View MipBias | 뷰 마다 MipBias를 적용할지 여부 (보통 건드리지 않음) |
RGB | 텍스처의 R, G, B 채널 묶음 출력 |
R / G / B / A | 각 채널별 개별 출력 |
RGBA | 모든 채널을 float4로 출력 |
Append
두 개의 스칼라(float) 또는 벡터를 하나의 벡터로 결합할 때 사용
A 값 | B 값 | 결과 출력값 |
0.5 | 0.25 | float2(0.5, 0.25) |
float2(0.3, 0.6) | 0.2 | float3(0.3, 0.6, 0.2) |
주 용도
- UV 조합: X값은 노이즈, Y값은 타임 기반 스크롤 등 조합할 때
- Normal 조작: Normal Map 수정 시 커스텀 XYZ 만들기
- Distortion 연산: R값과 G값을 합쳐서 새로운 UV 방향으로 만들기
Panner
텍스처의 UV 좌표를 시간(Time)에 따라 지속적으로 이동(스크롤)시키는 데 사용
항목 | 설명 |
Coordinate | 입력 UV (보통 TexCoord) |
Time | 시간 기반 애니메이션 (기본은 자동 연결됨) |
Speed X / Y | X축, Y축 이동 속도※ -0.3이면 왼쪽으로, 0.3이면 위로 이동 |
Fresnel(프레넬)
화각에 따라 반사되는 빛의 세기가 달라지는 현상을 설명하는 용어
예를 들어 웅덩이 위에 서서 수직으로 내려다보는 경우 수면 위에 빛 반사가 많지는 않을 것이고
관찰자가 머리를 움직여 웅덩이의 수면이 시선과 평행이 될수록 수면 위의 빛 반사가 점점 더 많이 보일 것이다.
물과 유리는 모두 강한 프레넬 경향성을 띠며, 이는 정면에서 보면 상대적으로 투명해 보이고 비스듬한 각도에서 보면 빛을 더 많이 반사함을 뜻함.
언리얼 엔진에서 Fresnel 머티리얼 표현식은 표면 노멀과 카메라 방향의 내적을 기준으로 감쇠를 계산한다.
표면 노멀이 카메라를 똑바로 가리켰을 때 출력 값은 0, 표면 노멀이 카메라와 직각일 때 출력 값은 1이다.
음의 컬러가 없도록 결과는 [0, 1]로 범위제한된다.
입력값 | 설명 |
ExponentIn: 2.0 | 프레넬 강도 곡률 (값이 클수록 중심은 어둡고, 테두리 강조됨) |
BaseReflectFractionIn: 0.04 | 시선 정면 반사율 (보통 낮게 유지) |
Normal | 커스텀 노멀을 사용할 수 있음 (기본은 surface normal) |
출력 | 뷰어 방향 기반 테두리 강조 마스크 (0~1 float) |
입력값 |
설명 |
Base: Fresnel 출력 | 프레넬 마스크 값 |
Exp: 3.0 | 3제곱하여 테두리를 더욱 강조 (중앙은 더 어둡게) |