후디니 UV Flatten·UV Unwrap·UV Project 차이 비교표
후디니 UV를 UV Project로 만들었는데, 모델 뒤쪽에서 같은 무늬가 겹쳐 보인다면 왜 그럴까요? 투영은 표면을 한 방향에서 바라본 좌표를 붙이므로, 닫힌 모델의 앞면과 뒷면이 같은 UV 위치를 차지할 수 있습니다. 노드 이름부터 고르기보다 모델 형태와 결과물을 먼저 정하세요.
평면·원통·유기체·하드서피스와 타일 텍스처·페인팅·게임 베이크를 고르면 시작 노드와 다음 단계를 추천하는 선택 도우미를 만들었습니다. 이어서 UV Project, UV Unwrap, UV Flatten의 생성 방식과 UV Layout의 역할을 비교하고, Rubber Toy 실측값으로 각 방법의 차이를 확인합니다.
후디니 UV 노드 선택 도우미
모델 형태와 목적을 고르고 버튼을 누르세요.
UV Project는 투영, UV Unwrap은 평면 자동 분할, UV Flatten은 seam 제어, UV Layout은 island packing을 맡습니다.
도우미는 시작점을 고르는 기준입니다. 실제 작업에서는 표면의 굴곡, seam 위치, 반복 텍스처의 스케일을 보고 바꾸세요. 특히 UV Layout은 새 UV를 펼치는 노드가 아니라, 이미 만들어진 UV island를 옮기고 크기를 조정하는 packing 단계입니다.
UV Project·UV Unwrap·UV Flatten은 만드는 방식이 다릅니다

| 노드 | UV를 만드는 방식 | 결과 | 먼저 고를 상황 |
|---|---|---|---|
| UV Project | 정해 둔 방향·형태로 표면에 좌표를 투영합니다. | 기본 Group/Attrib Type이 Vertices면 vertex `uv`; Points면 point `uv`입니다. | 평면이나 원통처럼 투영 방향을 설명하기 쉬운 모델 |
| UV Unwrap | 여러 기준 평면 가운데 각 면의 왜곡이 적은 방향으로 투영하고 영역을 배치합니다. | vertex `uv`를 만들며, 같은 평면에 대응하는 영역을 분리합니다. | 복잡한 메시의 빠른 자동 펼침 시작점 |
| UV Flatten | 지정한 seam에서 메시를 자른 뒤 섬을 평평하게 펼칩니다. | vertex `uv`; seam, pin, 정렬 제약으로 모양을 제어합니다. | 페인팅이나 베이크에서 seam 위치와 섬 모양을 직접 다듬을 때 |
| UV Layout | 기존 UV island를 대상 영역 안에 배치하고 크기를 조절합니다. | 새로 unwrap하지 않고 기존 UV를 packing합니다. | 0–1 타일이나 UDIM 안에서 간격과 활용 면적을 정할 때 |
UV Project: 한 방향에서 본 좌표를 붙입니다
프로젝터를 벽에 비추듯 UV Project는 정한 투영 방식으로 좌표를 만듭니다. Orthographic은 평면 면에, Cylindrical은 원통형 면에 쓰기 쉽습니다. Houdini 19.5에는 Polar, Toroidal, Plastic Wrap 투영도 있습니다. `Initialize`를 누르면 투영 지오메트리를 선택한 표면의 경계 상자에 맞출 수 있습니다.
다만 투영은 메시를 잘라 펼치는 작업과 다릅니다. 닫힌 유기체를 앞에서 투영하면 앞면과 뒷면이 같은 좌표에 놓일 수 있고, 옆으로 돌아가는 면은 길게 늘어날 수 있습니다. 타일 텍스처처럼 반복과 투영 방향이 중요한 경우에는 장점이지만, 한 장에 고유하게 칠하거나 베이크해야 한다면 UV 겹침을 먼저 검사하세요.
UV Unwrap: 기준 평면으로 자동 분할합니다
UV Unwrap은 면마다 기준 평면을 고르고, 같은 평면으로 투영한 연결 영역을 UV 공간에 배치합니다. UV Project처럼 하나의 시점만 쓰지 않으므로 여러 방향으로 꺾이는 메시의 시작 UV를 만들기 쉽습니다. Houdini 19.5 기본 설정은 6개의 평면, Square layout, Uniform scale, Spacing 2입니다.
자동 결과는 작업을 시작할 수 있는 펼침입니다. 섬 수와 방향이 페인팅에 편한지, 미세 overlap이나 너무 가는 섬이 있는지 살펴보세요. seam 위치를 직접 정하거나 사각형 모양으로 곧게 펴고 싶다면 UV Flatten으로 다듬는 쪽이 맞습니다.
UV Flatten: seam을 정한 뒤 펼칩니다
UV Flatten의 출발점은 seam입니다. 봉제선을 어디에 둘지 정한 뒤, 그 선에서 메시를 자르면 닫힌 표면을 겹치지 않는 여러 조각으로 펼칠 수 있습니다. UV Flatten은 seam을 자동으로 만들지 않습니다. seam이 없으면 표면을 UV 평면에 단순 투영하므로 겹침과 왜곡이 생길 수 있습니다.
seam은 Cut 도구로 직접 만들거나 UV Auto Seam을 앞에 둔 뒤 결과를 확인하세요. 대화형으로 seam을 추가한 뒤 UV Layout이 이전 배치를 계속 사용한다면, UV Flatten의 뷰포트에서 Repack을 눌러 새 seam을 배치에 반영하세요. 기본 SCP는 빠르고 비교적 강건한 방식이며, ABF는 더 느릴 수 있지만 면적 왜곡을 줄이는 쪽을 목표로 합니다.
UV Layout은 island를 펼치지 않고 packing합니다
UV Layout은 기존 UV island를 0–1 사각형, 지정한 사각형, UDIM 타일 등에 배치합니다. 섬을 만드는 노드 뒤에 붙이는 단계입니다. 앞면·뒷면이 같은 위치에 겹친 투영을 넣어도, UV Layout이 메시 내부의 겹침을 풀어 주지는 않습니다.
Houdini 19.5의 Scale은 Maximum과 Fixed 중에서 고릅니다. Maximum은 대상 영역 안에 들어가는 최대 크기를 찾고, Fixed는 지정한 배율을 사용합니다. 섬이 고정 배율로 들어가지 않으면 대상 상자 밖에 놓일 수 있으므로 출력도 확인하세요.
Island Padding은 UV 간격을 Search Resolution의 픽셀 수로 지정합니다. 기본 Search Resolution 1024에서 padding 1은 0–1 타일 너비의 대략 1/1024 간격입니다. 4K 텍스처에서 8픽셀 여백을 목표로 한다면 Search Resolution을 4096, padding을 8로 맞추는 식으로 시작할 수 있습니다. 실제 베이크에는 베이커의 팽창·dilation 설정과 UDIM 경계도 함께 고려하세요. Search Resolution을 실제 텍스처보다 크게 잡으면 작은 틈이 같은 픽셀로 내려앉을 수 있습니다.
텍스처가 멀리서만 이음새를 드러내면 UV padding과 밉맵이 만드는 경계도 함께 확인하세요. Substance Painter 베이크에 검은 얼룩이 생기는 경우에는 노멀과 케이지를 점검하는 순서가 다음 단계가 됩니다.
Rubber Toy 실측: UV Project는 겹치고, UV Unwrap은 섬을 나눴습니다
Houdini 19.5.435 Commercial의 `testgeometry_rubbertoy`(12,874 points, 12,854 polygons)에서 기존 vertex `uv`를 지운 뒤 세 노드를 같은 메시에서 비교했습니다. UV Project는 Texture 투영을 경계 상자에 맞췄고, UV Unwrap과 UV Flatten은 기본 설정을 사용했습니다. UV Flatten 행은 seam을 지정하지 않은 상태입니다.
| 적용 | UV 섬 수 | 면적비 CV | 교차 삼각형 쌍(합) |
|---|---|---|---|
| UV Project | 10 | 63.78% | 194,351쌍 · 합 1.01194 UV² |
| UV Unwrap | 124 | 11.56% | 111쌍 · 합 0.0000554 UV² |
| UV Flatten, seam 없음 | 10 | 55.05% | 77,211쌍 · 합 0.71423 UV² |
| UV Layout → UV Project | 10 | 63.78% | 121,498쌍 · 합 0.79091 UV² |
| UV Layout → UV Unwrap | 124 | 11.56% | 111쌍 · 합 0.0001244 UV² |
면적비 CV는 polygon별 UV 면적을 3D 면적으로 나눈 값들의 변동계수입니다. 값이 작으면 이 테스트에서 face별 면적비가 더 고르게 분포했다는 뜻이지, 각도 왜곡이나 전체 UV 품질을 점수화한 값은 아닙니다. 겹침 수는 polygon을 삼각형으로 나눈 뒤, 서로 다른 polygon에 속한 삼각형 쌍 가운데 교차 면적이 1e-9 UV²를 초과한 쌍의 개수입니다. 겹침 면적 합은 쌍마다 더해 다중 중첩은 중복될 수 있습니다.
이 결과에서 볼 점은 순위가 아니라 노드의 역할입니다. UV Project의 겹침은 뒤쪽 면이 앞쪽 면에 포개진 투영 문제였습니다. UV Layout을 뒤에 붙여 섬을 다시 배치해도 교차 쌍이 남았습니다. UV Unwrap은 이 모델을 124개 영역으로 나눠 시작 UV를 만들었습니다. UV Flatten은 seam이 없을 때 겹침이 많았으며, 이는 seam이 필요하다는 문서의 설명과 일치합니다. 모델 하나의 기본 설정 실측이므로 다른 메시의 결과까지 보장하지는 않습니다.
작업 목적에 따라 마지막 순서를 고르세요
- 타일 텍스처: 평면이면 UV Project의 Orthographic, 원통이면 Cylindrical을 먼저 고르세요. 반복 텍스처가 UV 공간 전체에서 자연스럽게 이어져야 한다면 island를 0–1에 억지로 packing하지 마세요.
- 페인팅: seam을 어디에 숨길지 직접 정해야 하면 UV Flatten으로 자르고 펼친 뒤 UV Layout으로 섬 간격을 정하세요. 복잡한 메시의 빠른 시작은 UV Unwrap으로 만들고 고칠 부분을 찾을 수 있습니다.
- 게임 베이크: UV Unwrap으로 빠르게 영역을 나누거나, seam을 직접 설계해야 하면 UV Flatten을 쓰세요. 그 다음 UV Layout으로 목표 타일에 packing하고, 의도하지 않은 overlap과 목표 해상도 기준 padding을 확인하세요.
한 문장으로 정리하면 이렇습니다. UV Project는 투영, UV Unwrap은 자동 분할, UV Flatten은 seam 제어, UV Layout은 기존 섬의 배치입니다. 목적에 맞는 생성 노드를 고른 뒤, 필요한 경우에만 UV Layout을 마지막에 붙이세요.
참고 자료
SideFX Houdini 19.5 공식 노드 문서
vfx 잡학지식
댓글 0
첫 댓글을 남겨보세요.