컴퓨터 3D 그래픽/미니 프로젝트(화염방사기)
최종 화염방사기의 아지랑이 효과 구현하기
JongSeok_12
2025. 2. 20. 22:30
2️⃣ 핵심 개념: Normal Map과 벡터(3Vector)
✅ (1) Normal Map(노멀 맵)이란?
Normal Map은 3D 표면의 굴곡을 가짜로 표현하는 특수한 텍스처입니다.
이 텍스처를 사용하면 실제로 표면이 기울어진 것처럼 보이게 만들 수 있어요.
🟢 RGB 값이 표면 기울기를 나타냄
- X축 (Red 채널) → 좌우 방향 기울기
- Y축 (Green 채널) → 위아래 방향 기울기
- Z축 (Blue 채널) → 표면이 얼마나 평평한지 (보통 1.0)
🔹 예제:
만약 Normal Map이 (1,1,1) 값이라면, X와 Y 방향으로 강하게 기울어져 있는 것입니다.
이 값을 이용해 빛이 굴절되는 효과(Heat Distortion)를 만들 수 있습니다.
✅ (2) 3Vector (3벡터)와 Normal Map의 관계
강의에서 설명한 것처럼 3벡터(Vector3)에서 X, Y 값을 조절하면 왜곡 강도가 달라집니다.
- Vector3(0,0,1) → 평평한 표면 (왜곡 없음)
- Vector3(0.5,0.5,1) → 살짝 기울어진 표면 (약한 왜곡)
- Vector3(1,1,1) → 강하게 기울어진 표면 (강한 왜곡)
👉 X, Y 값이 클수록 더 많이 기울어져서, 굴절(Refraction) 효과가 강해짐!
👉 반대로 X, Y 값을 0에 가깝게 하면 왜곡이 줄어듦.
3️⃣ Heat Distortion 머티리얼 제작 과정
머티리얼에서 열 왜곡 효과를 만들기 위해 3가지 핵심 작업을 수행해야 합니다.
📌 1. 기본 설정 (반투명 & Unlit)
- 새로운 머티리얼 생성 (M_HeatDistortion_Master)
- Blend Mode: Opaque → Translucent (반투명)
- Shading Model: Default Lit → Unlit (조명 영향 X)
- Opacity를 0으로 설정 → 완전히 투명한 오브젝트 생성
💡 🔎 용어 설명:
- Blend Mode (블렌드 모드) → 오브젝트의 투명도를 결정 (Opaque: 불투명, Translucent: 반투명)
- Shading Model (쉐이딩 모델) → 표면이 조명에 어떻게 반응할지 결정 (Unlit: 빛 영향을 받지 않음)
📌 2. Refraction (굴절) 효과 추가
🔥 Refraction(굴절) 값을 조정하여 빛을 휘게 만듦
- Refraction 값 1.33 (물의 굴절율) 설정
- 굴절 효과를 적용할 Normal Map 추가
- HT_Noise_Normal_B 또는 T_Noise_Normal_A 사용
- Normal Map을 Normal 소켓에 연결
💡 🔎 용어 설명:
- Refraction (굴절) → 빛이 다른 매질을 통과하면서 방향이 바뀌는 현상
- Normal Map → 표면의 기울기를 가짜로 표현하는 텍스처
📌 3. Panner (패너) 노드를 활용한 왜곡 애니메이션
🔥 Panner 노드를 사용하여 텍스처가 움직이게 만들어 동적인 왜곡 효과 추가
- Panner 노드 추가
- Speed X: 0.1
- Speed Y: 0.1
- Normal Map의 UV 입력에 연결
- Texture가 부드럽게 흐르면서 왜곡 효과 생성
💡 🔎 용어 설명:
- Panner (패너) → 텍스처를 지속적으로 이동시키는 노드
- UV → 텍스처가 모델에 어떻게 매핑되는지 결정하는 좌표 시스템
📌 4. 네모난 왜곡 제거 - 3Vector + Lerp 사용
🔥 Lerp(Linear Interpolation) 노드를 사용하여 불필요한 네모난 왜곡 제거!
✅ A 값 (기본값 - 왜곡 없는 상태)
- Vector3(0,0,1) → Z 값만 1.0으로 설정하여 완전히 평평한 상태 유지
- 즉, X, Y 값을 0으로 하면 Normal Map이 적용되지 않아 왜곡이 사라짐
✅ B 값 (적용할 왜곡 텍스처)
- 원래 적용하려던 **울렁이는 텍스처(Normal Map)**을 연결
✅ Alpha 값 (마스크 - 왜곡이 적용될 영역)
- Mask(마스크) 텍스처를 사용하여 왜곡이 적용될 부분을 지정
- 테두리 부분은 0 (A값 사용 → 왜곡 없음),
중앙 부분은 1 (B값 사용 → 왜곡 적용)
✅ 이렇게 하면 테두리는 평평하게 유지되면서, 원하는 부분에만 왜곡이 적용됨!
4️⃣ 최종 조정 및 테스트
🔥 Material Instance를 사용하여 세부 값 조정 가능
- Speed X, Speed Y → 왜곡 이동 속도
- Refraction Rate → 왜곡 강도 (1.2~1.5)
- Mask Contrast → 왜곡이 적용될 범위