본문 바로가기
이펙트 (FX)/이펙트 팁 : Unreal

[Unreal/Houdini] Crafting Cinematic Waterfalls - Part 3/3 요약 (폭포 만들기 시리즈, VAT ,VDB)

by Minkyu Lee 2026. 8. 13.

https://dev.epicgames.com/community/learning/tutorials/9X5n/crafting-cinematic-waterfalls-part-3-unreal-engine-setup-and-real-time-integration

 

Crafting Cinematic Waterfalls – Part 3: Unreal Engine Setup and Real-Time Integration | Community tutorial

This article explores the final step in bringing cinematic waterfalls into Unreal Engine, focusing on real-time integration techniques. It covers the se...

dev.epicgames.com

 

1. 핵심 요약

Unreal Engine 안에서 재생 가능한 폭포 FX로 조립하는 최종 단계다.

핵심 기술은 VAT(Vertex Animation Texture), Sparse Volume Texture(VDB), Custom Motion Blur 이다.

 

큰 그림은 다음과 같다.

Houdini Simulation → VAT / VDB 데이터 → Unreal Import → Material & Shader Setup → Motion Blur → Water·Foam·Mist 조립 → 최적화 → 최종 Waterfall


2. Houdini → Unreal의 기본 개념

1. Unreal에서 시뮬레이션을 다시 하는 것이 아니다

먼저 전체 파이프라인에서 가장 중요한 개념이다.

Houdini에서 계산한 무거운 FLIP/Whitewater Simulation을 Unreal에서 다시 계산하는 방식이 아니다.

Houdini에서:

Simulation 계산
→ 결과 Bake
→ Unreal이 읽을 수 있는 형태로 변환

하고,

Unreal에서는:

Bake된 데이터를 GPU 기반으로 재생

하는 방식으로 접근한다.

그래서 Houdini와 Unreal의 역할을 다음처럼 나누어 이해하면 쉽다.

HoudiniUnreal Engine

Simulation Playback
FLIP / Whitewater 계산 실시간 재생
Mesh / Volume 생성 Material / Rendering
Cache Scene Integration
VAT / VDB Export 최종 Look Development

3. VAT — Main Water를 Unreal로 가져오기

2. Vertex Animation Texture의 역할

Part 3의 핵심 기술 중 하나가 VAT(Vertex Animation Texture)다. 

Part 1에서 만든 Main Water는 매 프레임 형태가 변한다.

일반적인 Static Mesh와 달리:

Frame 1 → Mesh 형태 A
Frame 2 → Mesh 형태 B
Frame 3 → Mesh 형태 C
...

처럼 계속 Vertex 위치가 변한다.

이 움직임을 Unreal에 전달하기 위해 Vertex의 Animation 정보를 Texture에 저장하는 것이 VAT의 기본 개념이다.

구조

Houdini Animated Mesh

Vertex Animation Data

Texture로 Bake

Unreal Material에서 Texture 읽기

Vertex Position 복원

폭포 Animation 재생

따라서 Unreal에서 Houdini FLIP을 계산하고 있는 것이 아니라 Houdini에서 미리 계산된 움직임을 재생하는 것이다.


4. VAT는 Geometry + Texture의 조합

3. 왜 Texture가 필요한가

일반 Texture라고 하면 보통 Base Color, Normal 같은 이미지 정보를 떠올리지만 VAT에서는 Texture가 Animation Data 저장소 역할을 한다.

Texture 안에 각 Vertex의:

  • Position 변화
  • Animation 관련 정보
  • 필요한 추가 데이터

등을 저장한다.

그리고 Unreal Material이 이 데이터를 읽어서 Vertex를 움직인다.

즉 VAT를 이해할 때는

Texture를 이미지가 아니라 데이터 저장 공간으로 사용한다.

라고 생각하면 쉽다.


5. Material이 Animation을 재생한다

4. Unreal Material의 역할

VAT에서는 Unreal Material이 단순히 물의 색을 결정하는 역할만 하는 것이 아니다.

Material/Shader가 Texture에 저장된 Animation Data를 읽어 실제로 Mesh를 변형시키는 역할까지 담당한다.

개념적으로:

Time

현재 Animation Frame 계산

VAT Texture에서 해당 Frame 데이터 읽기

Vertex Position 변경

Animated Water

의 구조가 된다.


6. Looping Waterfall

5. Houdini에서 만든 Loop를 Unreal에서 재생

폭포는 계속 흐르는 FX이기 때문에 Loop가 매우 중요하다.

Houdini에서 미리 Loop 가능한 Simulation 구간을 만들고 이를 VAT로 Bake한 뒤 Unreal에서 반복 재생한다.

예를 들어 개념적으로:

Frame 1 → 2 → 3 → ... → 100

다시 Frame 1

형태다.

이렇게 하면 Unreal에서 무한히 흐르는 폭포처럼 보이지만 실제로 가지고 있는 Animation 데이터는 제한된 구간뿐이다.


7. VDB / Sparse Volume Texture

6. 모든 것을 VAT로 처리하지 않는다

Main Water처럼 명확한 표면을 가진 요소는 Mesh + VAT가 적합하다.

하지만 폭포 주변의:

  • Mist
  • Spray
  • Volume 계열 FX
  • 공기 중에 퍼지는 Secondary Detail

등은 Mesh와 성격이 다르다.

이런 요소에는 VDB / Sparse Volume Texture 계열의 Workflow를 사용한다.

Part 3에서도 VAT와 함께 Sparse Volume Texture(VDB)를 핵심 실시간 통합 기술로 다룬다. 


8. Sparse Volume Texture의 개념

7. Volume 데이터를 효율적으로 다룬다

Volume은 3차원 공간 전체에 정보를 가지고 있기 때문에 데이터가 매우 커질 수 있다.

하지만 실제 FX에서는 모든 공간에 정보가 있는 것이 아니다.

예를 들어 Mist가 존재하는 영역만 Density가 있고 나머지는 비어 있다.

그래서 Sparse 방식에서는 실제로 필요한 영역 중심으로 데이터를 저장한다.

개념적으로:

Houdini VDB

Sparse Volume Data

Unreal Sparse Volume Texture

Volume Material

Mist / Volumetric FX

라고 이해하면 된다.


9. VAT와 VDB의 역할 분담

여기까지 이해하면 Part 3의 구조가 훨씬 명확해진다.

Main Water

FLIP Mesh → VAT

물의 큰 표면과 Animation을 담당한다.

Volume / Mist 계열

VDB → Sparse Volume Texture

폭포 주변의 공기감과 볼륨 디테일을 담당한다.

따라서 하나의 폭포를 하나의 기술로 해결하는 것이 아니라

FX 특성에 따라 가장 적절한 표현 방식을 선택해서 마지막에 합치는 구조다.


10. Motion Blur가 중요한 이유

8. 폭포는 움직임이 매우 빠르다

Part 3에서 또 하나 중요하게 다루는 것이 Custom Motion Blur Workflow다. 

폭포는 빠른 속도로 아래로 떨어지기 때문에 Motion Blur가 없으면 물의 움직임이:

  • 너무 또렷하거나
  • 끊겨 보이거나
  • 시뮬레이션 특유의 자연스러운 속도감이 사라질 수 있다.

그래서 Houdini Simulation의 Motion 정보를 Unreal Rendering에서도 최대한 유지하는 것이 중요하다.


11. Motion Vector 활용

9. "어디에 있는가"뿐 아니라 "어디로 움직이는가"

Houdini Simulation에는 Position뿐 아니라 Velocity 정보가 있다.

이 정보는 물이 현재 어디에 있는지만 알려주는 것이 아니라 어느 방향으로 얼마나 빠르게 움직이는지를 알려준다.

개념적으로:

Position = 현재 위치

Velocity = 움직이는 방향 + 속도

라고 볼 수 있다.

이를 Motion Vector와 연결하면 Unreal에서도 Houdini Simulation의 움직임을 기반으로 더 자연스러운 Motion Blur를 표현할 수 있다.


12. 최종 폭포는 여러 시스템의 합성

10. 하나의 거대한 Asset이 아니다

Part 3까지 오면 처음에는 하나의 폭포처럼 보였던 결과가 실제로는 여러 시스템의 조합이라는 것을 알 수 있다.

예를 들어 전체적인 개념은:

Main Water

VAT Animated Mesh

Foam / Splash

Secondary FX

Mist / Volume

Sparse Volume Texture

Materials

Water / Foam / Volume Look

Motion Blur

움직임의 자연스러움

이런 요소들이 Unreal 안에서 결합되어 최종적인 Cinematic Waterfall을 만든다.


13. Unreal에서 Look Development

11. Houdini 결과를 그대로 보여주는 것이 아니다

Houdini에서 Simulation이 좋다고 해서 Unreal에서도 자동으로 동일하게 보이는 것은 아니다.

Unreal에서는 다시:

  • Material
  • Lighting
  • Transparency
  • Water 표현
  • Foam 표현
  • Volume 표현
  • Motion Blur

등을 조정해야 한다.

즉 Houdini는 Motion / Simulation을 만드는 단계이고 Unreal은 그 데이터를 이용해 최종적으로 화면에 보이는 결과를 만드는 단계라고 볼 수 있다.


14. 최적화도 파이프라인의 일부

12. "가져올 수 있다"와 "실시간으로 사용할 수 있다"는 다르다

Houdini에서 엄청난 양의 Simulation 데이터를 만들었다고 해서 그대로 Unreal로 가져오는 것이 좋은 방법은 아니다.

Part 3의 목표는 Houdini Simulation의 Fidelity를 유지하면서도 실시간 환경에서 사용할 수 있는 형태로 최적화하는 것이다.

따라서 전체 파이프라인에서 계속 고려하는 것이:

Quality ↔ Performance

의 균형이다.

이 때문에 VAT, Sparse Volume Texture 같은 기술을 사용하는 것이다.


15. Part 1 → Part 2 → Part 3 전체 구조 정리

이제 세 편을 하나로 합쳐보면 이 시리즈에서 설명하려는 것이 상당히 명확하다.

PART 1 — Main Water

Geometry / Source

FLIP Simulation

POP Force / Art Direction

Main Water

VDB Meshing

Loop


PART 2 — Secondary FX

Main FLIP

Whitewater Source

Whitewater Simulation

Foam / Splash

SOP Processing

Layering / Cache

Export 준비


PART 3 — Unreal Engine

Houdini Export

Main Water → VAT

Volume → Sparse Volume Texture

Unreal Material / Shader

Animation Playback

Motion Vector / Motion Blur

Lighting / Look Development

Optimization

Final Cinematic Waterfall

댓글