본문 바로가기
vfxai 잡학지식 vfxai 잡학지식

후디니 Boolean이 실패할 때 점검표: 닫힌 메시·노멀·겹친 면

vfx 잡학지식 읽는 시간 약 9분 조회 1

후디니 Boolean SOP에서 Subtract를 골랐는데 결과가 비거나, 바깥면에 구멍이 보이면 무엇부터 의심해야 할까요? 노멀을 뒤집는 것부터 할까요, PolyDoctor로 한 번에 고쳐 볼까요? 증상과 입력 상태를 고르면 확인 순서를 알려 주는 점검 도구와, Houdini 19.5.435에서 입력을 바꿔 실행한 결과를 함께 봅니다.

겉으로 비슷한 실패라도 원인은 다릅니다. A에서 B를 빼는 방향이 반대일 수 있고, Solid로 해석한 입력에 경계가 열려 있을 수도 있습니다. 노멀이나 겹친 면이 안쪽과 바깥쪽을 헷갈리게 만들기도 합니다. 먼저 화면에서 보이는 증상과 입력의 상태를 따로 잡아야, 수정 노드를 엉뚱한 곳에 쓰지 않습니다.

후디니 Boolean은 입력 의미와 Operation부터 확인합니다

Boolean SOP는 하나의 기능만 하는 노드가 아닙니다. Operation에서 Union, Intersect, Subtract, Shatter, Custom, Seam, Detect 등을 고릅니다. Subtract를 고른 뒤에도 기본 선택은 A-B입니다. A에서 B를 빼려는 작업인지, B에서 A를 빼려는 작업인지 먼저 확인하세요.

각 입력의 Treat As가 Solid면 표면을 부피를 감싼 경계로 해석합니다. Surface면 안쪽과 바깥쪽이 없는 얇은 면으로 봅니다. 따라서 얇은 판을 잘라내려는 경우와 닫힌 물체의 부피를 빼려는 경우는 같은 입력으로 보여도 기대하는 결과가 다릅니다. Surface로 바꾸는 것은 오류를 고치는 스위치가 아니라, 입력의 의미를 바꾸는 설정입니다.

SideFX 19.5 문서는 Solid 입력에 대해 일반적으로 닫혀 있고 빈틈이 없어야 하며, 모든 노멀은 바깥을 향하고, 세 개 이상 폴리곤이 만나는 non-manifold 엣지가 없어야 한다고 안내합니다. 다만 열린 표면이라도 모순이 생기지 않는다면 Solid로 사용할 수 있다고 덧붙입니다. 그러니 “열린 메시라면 Boolean은 무조건 안 된다”보다 “열린 경계가 다른 입력과 충돌해 안쪽·바깥쪽 판단을 모호하게 만드는가”가 정확한 기준입니다.

열린 엣지는 Output Edge Groups와 다른 항목입니다

Boolean의 Detect 모드는 첫 번째 입력을 통과시키면서 교차한 폴리곤을 그룹이나 속성으로 표시합니다. Operation이 Union·Intersect·Subtract 같은 Boolean 연산일 때는 A inside B, A outside B 같은 Output Primitive Groups와 A-A·A-B·B-B seams 같은 Output Edge Groups를 만들 수 있습니다. 이 엣지 그룹은 두 표면이 만난 seam이지, 메시 외곽의 열린 경계 엣지를 전부 모은 그룹이 아닙니다. Detect나 Resolve에서는 Output Edge Groups가 나오지 않습니다.

열린 경계 자체를 찾으려면 Group Create에서 Entity를 Edges로 두고 Unshared Edges를 켜세요. 인접 폴리곤이 하나뿐인 엣지가 그룹에 들어갑니다. 그룹이 비어 있으면 열린 경계가 없다는 뜻이고, 엣지가 남으면 경계를 따라가며 어디서 면이 빠졌는지 확인할 수 있습니다. PolyDoctor의 Non-Manifold Points나 Self-Intersecting 검사는 별도의 문제를 찾는 용도이므로 이 결과를 대체하지 않습니다.

Houdini 19.5.435에서 Boolean 결과를 입력별로 재봤습니다

Commercial 라이선스의 Houdini 19.5.435 hython에서 A-B Subtract를 실행했습니다. 기준 입력은 한 변 2인 닫힌 Box A와 반지름 0.65, 16 rows·32 columns인 polygon Sphere B입니다. 열린 박스는 Box의 폴리곤 0번을 삭제했고, 뒤집힌 입력은 B에 Reverse SOP를 적용했습니다. 겹친 면 사례는 한 변 2인 A 박스의 x=1 면과 B 박스의 왼쪽 면이 같은 평면에서 맞닿도록 배치했습니다.

입력 상태Boolean 출력 폴리곤열린 엣지관찰
닫힌 박스 – 닫힌 구860박스와 내부 구 표면이 남음
A 박스 면 1개 삭제854한 면의 경계 4개가 열림
B 구에 Reverse 적용800출력 범위가 구 크기로 바뀜
두 박스가 한 면에서 맞닿음70경계 엣지는 없지만 면이 분할됨

이 숫자는 위에 적은 크기와 입력 순서에서 얻은 한 번의 관찰이지, 모든 씬의 정답은 아닙니다. 특히 뒤집힌 구는 열린 엣지가 0개였지만 결과 범위가 반지름 0.65인 구 안에만 남았습니다. 닫혀 있다는 사실만으로 Boolean 결과가 맞다고 판단할 수 없습니다. 이 테스트에서는 Correct Normals on Reversed Faces를 켜고 끄더라도 뒤집힌 입력의 결과 폴리곤 수와 범위가 같았습니다.

또한 이 PC의 Houdini 19.5.435에서는 열린 박스 입력의 Boolean 노드 경고가 비어 있었지만, 22.0.466 화면에서는 열린 경계 엣지를 가리키는 경고가 표시됐습니다. 경고가 보이면 Node Info와 지정 그룹을 확인하세요. 경고가 없더라도 Group Create의 Unshared Edges로 경계를 직접 확인하는 편이 안전합니다.

후디니 Boolean Subtract에서 면을 지운 열린 박스를 입력해 경고가 뜬 네트워크
Houdini 22.0.466 Apprentice에서 같은 구를 정상 박스와 면 하나를 지운 박스에서 각각 Subtract한 화면입니다. 열린 박스 쪽 Boolean에는 경고 표시가 뜨고, 메시지는 “Crossed boundary (unshared) edges in solid A”였습니다.

증상과 입력 상태를 골라 후디니 Boolean 점검 순서를 확인하세요

어디부터 확인할지 고르세요

증상 하나와 입력 상태 하나를 고르면 다음 점검 순서가 나옵니다. 노드 이름은 Houdini 화면 표기 그대로 적었습니다.

수정 노드를 한꺼번에 넣지 말고 한 단계씩 다시 계산합니다

  1. Operation과 A/B 순서를 확인하세요. Subtract의 A-B와 B-A가 의도와 같은지 봅니다.
  2. 입력 경계를 Group Create에서 Group Type을 Edges로 설정하고 Unshared Edges를 켜 확인하세요. Solid로 쓸 메시라면 열린 경계를 먼저 찾습니다.
  3. Solid와 Surface 의미를 정하세요. 닫힌 부피를 계산할 때는 Solid, 안쪽·바깥쪽이 없는 얇은 면을 다룰 때는 Surface를 선택합니다.
  4. 노멀과 겹친 면을 검사하세요. Reverse는 뒤집힌 폴리곤만 골라 적용하고, Clean은 degenerate primitive나 중복 면을 확인하는 데 씁니다.
  5. 자기 교차와 연결 상태는 PolyDoctor를 Mark로 먼저 보세요. 점 위치가 맞지 않아 연결을 의도한 경우에만 Fuse를 시험하세요. 이 글에서는 Fuse Snap Distance 계산은 다루지 않습니다.
  6. 마지막으로 결과를 재세요. 닫힌 메시라면 Measure의 Volume을 전후 비교하고, 경계 엣지 그룹과 뷰포트를 함께 확인하세요. 부피 수치와 경계 그룹, 뷰포트를 함께 확인하세요.

후디니 Boolean이 실패할 때는 열린 경계와 해석부터 봅니다

Boolean이 실패하면 먼저 경계 엣지와 Solid/Surface 해석을 확인하고, 그 다음 노멀·겹친 면·자기 교차를 봅니다. 실측에서 면 하나를 지운 박스는 출력에 열린 엣지 네 개가 남았지만, 뒤집힌 구는 열린 엣지 없이도 결과 범위가 달라졌습니다. 경계 검사와 결과 모양 확인을 함께 해야 하는 이유입니다.

문제가 확인되면 Clean, Reverse, PolyDoctor 같은 노드를 한 번에 모두 연결하지 말고 하나씩 적용하세요. 바꿀 때마다 열린 엣지 수와 결과 모양을 다시 보면, 고친 노드와 결과가 연결되어 다음 Boolean에서도 같은 기준을 쓸 수 있습니다.

Group Create의 그룹 이름이나 패턴 문법이 낯설다면, 후디니 Group 칸 패턴 문법 글에서 번호 범위와 조건식을 이어서 확인하세요.

참고 자료

아래 공식 문서에서 Houdini 19.5 노드 동작과 그룹 조건을 확인할 수 있습니다.

vfx 잡학지식

함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.