이펙트아카데미 특강/외주/커뮤니티
언리얼 - HLSL 심층 설명 2 -원형(Circle) 기반 쉐이더를 구현(한글자막)파트 1. VFX 기술 심층 요약
1. 영상 주제 및 학습 목표
- 주제는 Unreal Engine의 Material Editor에서 원형(Circle) 기반 쉐이더를 구현하는 것으로, 수학적 원형 방정식을 노드 그래프로 재현하고 타일링 및 동적 플래싱 효과를 추가하여 VFX 쉐이더를 제작하는 과정이다. 구현 목적은 UV 좌표를 활용한 기하학적 형태 생성을 통해 쉐이더의 본질인 '숫자 기반 수학 로직'을 강조하며, 복잡한 노드 연결 대신 Distance 노드 같은 간단한 도구로 효율적 원형을 만드는 데 초점을 맞춘다.
- 학습 목표는 원형 방정식(x² + y² = r²)의 UE 적용 시 발생하는 UV 범위(0~1) 제한 문제를 해결하고, Distance를 이용한 거리 기반 접근으로 프로세스를 단순화하는 것이다. 추가로 Frac를 통한 정적/동적 타일링과 Sin 기반 애니메이션을 통해 실무에서 반복 패턴과 시간 기반 변화를 구현할 수 있도록 한다.
2. 전체 제작 프로세스 상세 단계
- 단계 1: TexCoord(UV)를 BreakFloat2로 X,Y 분리 후 각 성분을 Subtract(0.5)로 중심 이동, Multiply(자기 자신)로 제곱 계산, Add로 합산하여 x² + y² = r² 방정식 구현. UV 0~1 범위로 1/4 원형만 나오는 문제 발생.
- 단계 2: Power 노드의 음수 입력 제한(base must be positive)으로 정사각형 왜곡 발생 확인 후 Multiply로 제곱 대체, Step 노드로 거리 임계값 비교하여 0/1 마스킹 적용(안쪽 흰색/바깥 검정 반전 가능).
- 단계 3: Distance 노드(TexCoord와 Vector2(0.5,0.5))로 두 점 간 거리 직접 계산, Power(2)로 r² 복원하여 노드 수 최소화.
- 단계 4: 타일링 구현 - UV에 Multiply(scale, 예:4 또는 10) 후 Frac(소수 부분 추출) 적용으로 정적 그리드 반복(정수 부분 무시하여 0~1 범위 복원).
- 단계 5: 동적 플래싱 - Time Sin으로 주기 생성, Distance(d)와 곱해 크기별 펄스 효과, Abs(Sin) Power로 하얀 과노출 방지 및 밝기(L) 조절.
-------------------------
파트 2. 시간대별 주요 흐름 요약
- [00:01] - 새 Material 생성 후 원형 쉐이더 제작 시작, UV(TexCoord)로 x² + y² = r² 방정식 적용 시도.
- [00:25] - BreakFloat2로 UV 분리, Power 노드로 X²와 Y² 계산하나 1/4 원형만 출력되는 UV 0~1 범위 문제 설명.
- [01:16] - UV 좌표축(X 오른쪽, Y 아래)으로 인해 양수 영역만 원형 표시됨을 지적, 공식 자체는 정상임을 확인.
- [02:10] - 중심을 (0.5,0.5)로 이동: Subtract(0.5) 후 Power 적용하나 음수 입력으로 정사각형 왜곡 발생.
- [03:23] - Power 대신 Multiply(자기 자신)으로 제곱 대체, 원형 완성되나 노드 복잡성 지적.
- [05:38] - Distance 노드(TexCoord, (0.5,0.5))로 간단 원형 구현, r = sqrt(x² + y²) 원리 설명.
- [06:14] - Distance 출력에 Power(2)로 r² 복원, Distance의 양수 출력으로 Power 안전 사용.
- [07:36] - Step 노드 연결로 회색 제거(거리 < r 시 1 출력), 입력 반전으로 안/밖 색상 조절.
- [11:27] - 타일링 시작: UV 4 후 Frac(소수 부분)로 그리드 반복, scale 10으로 확대 조절.
- [13:32] - Custom 노드에 Frac(Multiply(UV, read_size)) 내장으로 모듈화.
- [14:46] - 동적 애니: Sin(Time) d(거리)로 플래싱, Abs(Sin) Power L(밝기)로 과노출 방지.
- [17:10] - HLSL 코드 구현: return step(0.1, pow(length(UV - p), 2))로 노드 로직 재현.
- [17:53] - 쉐이더 본질은 수학 숫자 이해 강조, 고급 수학 불필요.
-------------------------
파트 3. AI 기술 첨언 및 피드백
- 기술적 보완 제안: Distance 기반 원형을 Voronoi 노드와 결합해 다중 원 패턴 최적화, 타일링 시 WorldPosition으로 월드 스케일 동기화하여 LOD(레벨 오브 디테일) 성능 향상. 플래싱에 Lerp(Sin(Time), 0, d fade) 추가로 부드러운 페이드아웃 구현, HLSL Custom 노드에서 define으로 r 값 상수화해 컴파일 최적화.
- 학습 포인트 피드백: UV 0~1 제약과 노드 입력 제한(Power 음수 무시)을 가장 집중 배워야 하며, Distance vs 수동 제곱의 인과(단순성 vs 제어성)를 이해하면 실무 쉐이더 설계 역량이 급상승한다. 수학 공식의 기하학적 해석(거리 균등)이 VFX 형태 생성의 핵심.
-------------------------
파트 4. 핵심 기술 용어 및 파라미터 사전
- 주요 기술 용어 해설
1. Distance - 두 점(벡터) 간 유클리드 거리를 계산하는 노드로, 영상에서 TexCoord와 (0.5,0.5) 입력으로 원형 방정식 sqrt((x-0.5)^2 + (y-0.5)^2)을 한 번에 구현해 노드 복잡도 줄임. 양수 출력으로 후속 Power 안전.
2. Frac - 입력 값의 소수 부분만 추출하는 함수(floor 반대), 타일링에서 UV scale(4~10) 후 적용 시 정수 부분 제거로 0~1 범위 복원, 무한 그리드 반복 생성.
3. Step - 두 값 비교(x < y 시 0, else 1 출력)로 하드 마스킹, 거리(d)와 r 비교로 원형 내부/외부 0/1 분리, 회색 그라데이션 제거.
1. 0.5 - UV 중심 이동 Subtract 값으로, 0~1 범위 중앙 배치 시 전체 원형 노출. UV 양수 영역 제한 극복, 원형이 텍스처 중앙에 완벽 위치.
2. 4 또는 10 - 타일링 Multiply scale로, 4는 4x4=16개 그리드(좌표 4배 확대), 10은 고밀도 패턴. Frac와 결합 시 정적 반복 수 결정, VFX 배경 패턴에 적합.
3. 2 (Power 지수) - r² 복원 및 형태 강조로, Distance(r) 입력 제곱 시 원형 경계 선명화. 0.5는 축소(부드러운 원), 3+은 확대(별형 왜곡) 의도.
에반 언리얼5 이펙트 그룹과정[26년초 시작] : https://cafe.naver.com/unrealfx/20727
KUPAFX Stylized 유니티 이펙트 취업과정 : https://cafe.naver.com/unrealfx/21249
트리키 언리얼+후디니 활용 게임 VFX 연출과정 : https://cafe.naver.com/unrealfx/25629
max님의 쌩기초 메쉬활용 이펙트과정 1달특강 : https://cafe.naver.com/unrealfx/24469
eVan텍스쳐 단품과정 : https://cafe.naver.com/unrealfx/24468
rak 유니티 UI연출이펙트 : https://gamefx.co.kr/bbs/page.php?hid=Rak_intro
언리얼엔진, 쉐이더, 원형쉐이더, Distance노드, 타일링, Frac함수, 플래싱애니, Step마스킹, HLSL코드, UV조작