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

후디니 PolyReduce와 Remesh 차이: 목표 폴리곤 수 맞추기

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

후디니에서 폴리곤을 500개로 줄이려는데 Output Polygon Count를 500으로 설정해도 480개가 남고, Remesh Target Size 0.20의 면적 근사는 246개인데 실제로는 490개가 나왔다면 무엇을 믿어야 할까요? 두 노드의 이름과 입력값만 보면 결과 개수를 바로 맞출 수 있을 것처럼 보입니다. 하지만 같은 메시를 직접 재보면 두 숫자 모두 다른 이유로 빗나갈 수 있습니다.

Houdini 19.5 공식 문서와 동일한 메시를 사용한 PC 측정값을 비교합니다. PolyReduce의 Target과 Remesh의 Target Size가 실제 결과에 어떤 차이를 만드는지 확인하고, 목표 개수에서 시작할 때 사용할 계산식도 살펴봅니다.

Target이라는 이름이 같아도 입력하는 값은 다릅니다

후디니 PolyReduce Percent To Keep 10과 Remesh 노드를 같은 입력에 연결한 화면
Houdini 22.0.466 Apprentice에서 Rubber Toy(폴리곤 12,854개)에 PolyReduce와 Remesh를 나란히 연결한 화면입니다. PolyReduce는 Percent To Keep 10으로 두자 노드 옆에 Reduced To: 9.99%가 표시됩니다.

PolyReduce는 폴리곤 수 감소를 목표로 하는 노드입니다. Target에서 원본 대비 비율 또는 출력 목표 개수를 지정합니다.

반면 Remesh는 표면을 삼각형으로 다시 구성합니다. 삼각형의 크기를 전체적으로 균일하게 만들거나, 표면의 곡률에 따라 간격을 달리할 때 사용합니다.

PolyReduce: Percent와 Count의 차이

PolyReduce의 Target에는 Percentage of Input Polygon Count와 Output Polygon Count 등 목표 지정 방식이 있습니다.

  • Percent To Keep: 원본 폴리곤 중 남길 비율을 지정합니다. 50이면 원본 수의 50%를 목표로 합니다.
  • Output Polygon Count: 원하는 출력 폴리곤 수를 직접 입력합니다. 500을 입력하면 500개를 목표로 줄입니다.

여기서 중요한 제한이 있습니다. Output Polygon Count에 입력한 수가 최종 출력 개수와 반드시 같지는 않습니다. SideFX 공식 문서는 최종 폴리곤 수가 지정한 목표보다 적을 수 있다고 설명합니다.

쿼드 메시를 다룬다면 Preserve Quads도 확인하세요. 이 옵션을 켜면 쿼드 입력에 대응하는 쿼드 출력을 만들도록 합니다. 이번 측정에서도 Preserve Quads를 켠 상태를 사용했습니다.

경계와 UV를 보호해야 한다면 Stiffen 설정을 확인하세요. Boundaries는 경계, Vertex Attribute Seams는 일반적으로 UV 같은 버텍스 속성의 경계에 해당합니다. 이 항목은 보호 여부를 단순히 켜고 끄는 설정이 아니라 보호 강도를 조절하는 가중치입니다. 결과 메시를 보면서 가중치를 조정하세요.

Remesh: Uniform과 Adaptive의 차이

Remesh는 고품질 삼각형으로 표면을 다시 구성합니다. 쿼드를 출력하기 위한 노드는 아닙니다.

Edge Lengths에서 다음 두 방식을 구분합니다.

  • Uniform: 표면 전체에 고정된 Target Size를 적용합니다. Target Size는 Houdini 단위로 지정하는 길이입니다.
  • Adaptive: 로컬 곡률에 따라 삼각형 크기를 가변적으로 조정합니다.

Uniform의 Target Size를 작게 설정하면 더 작은 삼각형을 목표로 재구성합니다. 하지만 Target Size는 폴리곤 개수가 아니라 길이입니다. 따라서 특정 값을 입력했다고 삼각형이 정확히 몇 개 생성된다고 보장할 수 없습니다.

Remesh의 Iterations는 반복 횟수입니다. 공식 문서에 따르면 반복 횟수를 늘리면 메시 품질과 처리 시간이 증가할 수 있습니다. 지나치게 많으면 형상이나 속성 보존에 불리할 수 있으며, 일반적으로 3~4회 정도가 실용적인 상한으로 설명됩니다. 이는 모든 메시의 최적 반복 횟수를 보장한다는 의미는 아닙니다.

Remesh는 기본적으로 경계와 비다양체(non-manifold) 엣지를 보존합니다. UV seam을 Harden하는 옵션도 제공합니다. 이는 PolyReduce의 Boundaries 및 Vertex Attribute Seams 가중치와는 다른 방식이므로 같은 설정으로 취급하지 마세요.

같은 메시에서 측정한 폴리곤 수와 Cook 시간

다음 수치는 Houdini 19.5.435 hython, Commercial 환경에서 직접 측정한 결과입니다. 두 노드를 같은 입력 메시로 연결해 비교했습니다.

측정에 사용한 입력 메시의 조건은 다음과 같습니다.

  • 입력 생성: Grid SOP
  • 점 배열: 65×65점
  • 원본 폴리곤: 64×64 = 4,096개 쿼드
  • Grid 크기: X-Z 2×2
  • 높이 변형: Y 방향에 0.15*sin(@P.x*3)*cos(@P.z*4) 적용
  • 토폴로지: 열린 곡면
  • 원본 표면 면적: 4.2620595 Houdini 단위²

각 설정은 매번 새로운 SOP 노드를 생성해 같은 입력을 5회 계산했습니다. 아래 Cook 시간은 그 5회 결과의 중앙값입니다. PolyReduce는 Preserve Quads를 켰으며, Remesh는 Uniform과 Iterations 2를 사용했습니다.

노드와 설정목표·계산 기준실제 출력5회 Cook 중앙값
PolyReduce
Percent To Keep 50%
2,048개2,048 쿼드14.1ms
PolyReduce
Output Polygon Count 500
500개480 쿼드16.2ms
Remesh
Target Size 0.10
984.3 삼각형 근사1,132 삼각형
근사 대비 +15.0%
24.5ms
Remesh
Target Size 0.15
437.5 삼각형 근사650 삼각형
근사 대비 +48.6%
25.5ms
Remesh
Target Size 0.20
246.1 삼각형 근사490 삼각형
근사 대비 +99.1%
25.4ms

PolyReduce 50%는 이 테스트에서 목표와 실제 출력이 일치했습니다. 4,096개 쿼드의 절반인 2,048개가 출력됐습니다.

반면 Output Polygon Count를 500으로 설정했을 때 실제 출력은 480개였습니다. 요청한 목표보다 20개 적었습니다. 따라서 Count 모드도 정확한 출력 개수를 보장하는 설정으로 해석하면 안 됩니다.

Remesh에서는 Target Size를 0.10, 0.15, 0.20으로 늘리자 실제 삼각형 수가 각각 1,132개, 650개, 490개로 변했습니다. 방향은 계산식의 예상과 같았지만 실제 수는 근삿값과 일치하지 않았습니다.

특히 Target Size 0.20에서는 면적으로 계산한 246.1개보다 실제 출력이 약 99.1% 많았습니다. 열린 경계를 비롯한 입력 토폴로지도 결과에 영향을 줄 수 있지만, 이 측정만으로 차이가 발생한 원인을 하나로 확정할 수는 없습니다.

Cook 시간 역시 이 PC의 해당 메시에서 얻은 측정값입니다. 표의 수치만으로 PolyReduce가 모든 환경에서 Remesh보다 빠르거나, 설정에 따른 처리 시간이 일정하다고 일반화할 수 없습니다. 입력 메시와 설정을 달리한 성능 결과는 여기서 측정하지 않았습니다.

목표 폴리곤 수를 계산하는 두 가지 식

1. PolyReduce Percent 예상값

PolyReduce를 비율로 설정할 때 단순한 목표 개수는 다음 식으로 계산할 수 있습니다.

예상 폴리곤 수 = 원본 폴리곤 수 × Percent To Keep ÷ 100

원본이 4,096개이고 Percent To Keep을 50으로 설정하면 4,096 × 50 ÷ 100 = 2,048개입니다.

Count 모드에서는 입력한 Output Polygon Count가 요청 목표입니다. 예를 들어 500을 입력하면 목표는 500개입니다. 다만 실제 출력이 목표보다 적을 수 있으므로 계산값과 결과값을 구분해야 합니다.

2. Remesh Uniform 삼각형 수 근사

Remesh에서는 표면 면적과 Target Size로 삼각형 개수를 대략 추정할 수 있습니다.

등변 삼각형의 한 변을 Target Size와 같다고 가정하면 삼각형 하나의 면적은 다음과 같습니다.

삼각형 하나의 면적 ≈ (√3 ÷ 4) × Target Size²

이를 이용한 전체 삼각형 수의 이상적인 근사는 다음과 같습니다.

예상 삼각형 수 N ≈ 표면 면적 ÷ ((√3 ÷ 4) × Target Size²)

이번 측정 메시의 면적 4.2620595와 Target Size 0.15를 대입하면 약 437.5개입니다. 그러나 실제 Remesh 출력은 650개였습니다.

반대로 원하는 삼각형 개수 N에서 시작할 Target Size를 추정할 수도 있습니다.

근사 Target Size ≈ √(4 × 표면 면적 ÷ (√3 × 목표 삼각형 수))

이 역산 결과는 처음 시도할 크기의 참고값입니다. 실제 Remesh 출력 개수를 직접 지정하거나 보장하는 값은 아닙니다.

면적에서 개수를 추정한다는 점은 후디니 Scatter 포인트 수와 밀도 계산과 연결됩니다. 다만 Scatter의 면적당 점 개수와 Remesh의 삼각형 크기 근사는 서로 다른 계산입니다.

PolyReduce·Remesh 목표 개수 계산기

원본 폴리곤 수와 표면 면적을 입력한 뒤 계산해 보세요. PolyReduce는 비율 또는 개수 목표를 표시하고, Remesh는 등변 삼각형을 가정한 이상적인 개수를 계산합니다.

Remesh 목표 삼각형 수를 따로 입력하면 그 개수에 대응하는 근사 Target Size도 확인할 수 있습니다. 이 값은 실제 결과를 보장하지 않습니다.

메시 목표 개수 계산

기본 입력값은 본문 측정 메시의 조건을 참고했습니다. 계산 결과는 목표 또는 이상적인 근사값입니다.

PolyReduce 목표·예상 폴리곤 수 2,048개 Percent는 단순 비율 계산입니다. Count의 실제 출력은 목표보다 적을 수 있습니다.
Remesh 이상적인 삼각형 수 약 437.5개 Uniform과 등변 삼각형 면적을 가정한 근사입니다.
목표 삼각형 수에서 역산한 근사 Target Size 약 0.1403 Houdini 단위 Remesh의 실제 삼각형 수를 고정하는 값이 아닌 시작 참고값입니다.

참고: PolyReduce의 폴리곤 수와 Remesh의 삼각형 수는 동일한 토폴로지 기준이 아닐 수 있습니다. 특히 Preserve Quads를 사용한 쿼드 개수와 Remesh 삼각형 개수를 직접 같은 수로 비교하지 마세요. 실제 출력은 노드 결과에서 확인해야 합니다.

비교 항목PolyReduceRemesh
주요 목적폴리곤 수 줄이기삼각형 재배치
핵심 설정TargetTarget Size
개수 지정Percent 또는 Count정확한 개수 직접 지정 불가
크기 기준입력 대비 비율 또는 개수삼각형 목표 크기
쿼드 처리Preserve Quads 옵션 제공삼각형 출력
경계 처리Stiffen 가중치로 보호 강도 조절기본 경계 보존 및 UV seam Harden 옵션

작업 목적에 따라 노드를 선택하는 순서

두 노드 중 어느 것이 더 좋은지보다 먼저 어떤 결과가 필요한지 정해야 합니다.

  1. 폴리곤 개수가 우선인지 확인하세요. 원본 대비 일정 비율로 줄이거나 목표 출력 개수를 지정하려는 작업이라면 PolyReduce의 Target을 확인하세요.
  2. 쿼드 유지가 필요하다면 Preserve Quads를 확인하세요. 경계와 UV seam이 중요한 경우 Stiffen의 Boundaries와 Vertex Attribute Seams 가중치를 결과를 보면서 조정하세요.
  3. 삼각형의 배치가 우선이라면 Remesh를 확인하세요. 균일한 목표 크기에는 Uniform, 곡률에 따른 가변 크기에는 Adaptive를 검토하세요.
  4. Remesh의 개수는 실제 출력으로 검증하세요. 면적 계산기로 시작 Target Size를 추정한 뒤 결과 삼각형 수를 확인하세요. Iterations를 변경할 때는 메시 품질뿐 아니라 형상과 속성 보존도 함께 확인하세요.

결론적으로 목표 폴리곤 수를 직접 지정하려면 PolyReduce의 Target을, 표면의 삼각형 간격을 Uniform 또는 Adaptive 방식으로 다시 배치하려면 Remesh를 사용합니다.

단, PolyReduce의 Count도 정확한 출력 수를 보장하지 않으며, Remesh의 Target Size는 애초에 폴리곤 수를 지정하는 값이 아닙니다. 두 노드 모두 설정 목표와 실제 출력을 구분해야 합니다.

마무리: 설정값보다 실제 출력 확인

이번 Houdini 19.5.435 측정에서는 PolyReduce 50%가 2,048개 쿼드로 목표와 일치했지만, Count 500은 480개로 출력됐습니다. Remesh Uniform도 면적 기반 삼각형 수 근사와 실제 결과 사이에 차이가 있었습니다.

따라서 먼저 필요한 것이 폴리곤 수 감소인지, 삼각형 배치의 재구성인지를 구분하세요. 계산값은 설정을 시작하는 기준으로 사용하고, 최종 개수와 형상은 실제 노드 결과에서 확인하세요.

공식 참고자료

설정의 정의와 세부 동작은 아래 Houdini 19.5 SideFX 공식 문서에서 확인할 수 있습니다.

vfx 잡학지식

함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.