SIGGRAPH 2025. [Paper] [Github]
Alexandre Binninger, Ruben Wiersma, Philipp Herholz, Olga Sorkine-Hornung
ETH Zurich
7 May 2025

Introduction

일반적인 메쉬 최적화 방식은 SDF를 최적화한 다음 Marching Cubes와 같은 isosurface 추출 방법을 사용하여 메쉬를 생성하는 것이다. 이 접근 방식은 isosurface 추출 기법의 한계를 그대로 물려받는다. 이러한 문제를 극복하기 위해 DMTetFlexiCubes는 최종 메쉬가 추출되는 공간 그리드 구조와 implicit한 표현을 함께 최적화하였다. 그러나 이러한 접근 방식들 역시 scaling 속성 부족으로 인한 높은 메모리 소비, self-intersection 발생 가능성, 복잡한 멀티스케일 그리드에서의 adaptive meshing 문제 등의 어려움에 직면한다.

이러한 문제들을 해결하기 위해, 본 논문에서는 사면체 그리드의 배치와 그리드 각 노드에서의 signed distance를 동시에 최적화할 수 있는 새로운 미분 가능한 isosurface 표현법인 TetWeave를 제안하였다. 미리 계산된 그리드 구조를 변형하는 DMTet이나 FlexiCubes와 달리, TetWeave는 임의의 포인트 클라우드에 대해 Delaunay triangulation을 사용하여 그리드를 생성한다. 이 그리드는 Marching Tetrahedra 알고리즘을 이용한 isosurface 추출에 사용되며, 이를 통해 메쉬가 watertight하고, 2-manifold이며, self-intersection이 없음을 보장한다.

TetWeave의 유연성은 미리 정의된 그리드를 사용하는 기존 방식보다 훨씬 낮은 비용으로 구현된다. 예를 들어, FlexiCubes는 voxel grid에서 시작하는데, 유연성을 위해 각 grid cell당 21개, grid point당 3개의 파라미터가 필요하다. 또한 FlexiCubes는 voxel grid에서 시작하기 때문에 그리드 해상도가 증가함에 따라 표면 해상도가 제대로 향상되지 않는다. 이로 인해 메모리 사용량이 많은 표현 방식이 생성되어 고주파 디테일을 재구성하는 데 어려움을 겪는다. TetWeave는 미리 정의된 그리드 구조에 의존하지 않는다. Grid point들은 주변 공간 내 어디든 자유롭게 이동할 수 있으며, 위치와 해당 위치에서의 SDF 값만 저장하면 된다.

메쉬 vertex 배치에 더 큰 유연성을 제공하기 위해, 각 점에 spherical harmonics 계수로 인코딩된 directional signed distance 개념을 도입하였다. 이를 통해 서로 다른 grid edge를 따라 서로 다른 표면 위치를 지정할 수 있어 메쉬 추출 과정에서 vertex 배치를 더욱 세밀하게 제어할 수 있다. 또한, 생성된 그리드에서 Marching Cubes 알고리즘을 실행하여 최소한의 미세 삼각형을 포함하는 고품질 triangulation을 생성하도록 하기 위해, 공정성을 측정하는 간단한 loss를 제안하였다. 마지막으로, 저자들은 최적화 과정에서 디테일을 개선하기 위해 리샘플링 기법을 통합하여 다양한 목적에 부합하는 adaptive meshing을 가능하게 하였다. 따라서 결과 메쉬의 해상도에 비례하는 선형적인 메모리 사용량 증가를 달성하는 동시에 적응형 해상도를 통해 고품질의 매우 상세한 메쉬를 생성한다.

Shape representation


TetWeave의 shape 표현은 매우 간단하다. 포인트 클라우드 \(P = \{p_1, \ldots, p_n\}\)로 구성되며, 각 점 \(p_i \in \mathbb{R}^3\)은 signed distance 값 $s_i \in \mathbb{R}$과 feature 벡터 \(\textbf{c}_i \in \mathbb{R}^q\)에 연결된다. 이 표현으로부터 세 단계에 걸쳐 표면 메쉬를 구성한다.

  1. $P$에서 Delaunay triangulation을 사용하여 사면체 그리드 $(P, T)$를 계산한다.
  2. 끝점의 signed distance 부호가 서로 반대인 active edge에 대해 $s_i$와 \(\textbf{c}_i\)로 directional signed distance \(\hat{s}_i (e)\)를 계산한다.
  3. Marching Tetrahedra를 사용하여 표면 메쉬 $(V, F)$를 추출한다.

1. Directional signed distance

점당 하나의 signed distance만으로도 고품질 메쉬를 생성할 수 있지만, 이러한 표현 방식은 최적의 방법이 아닐 수 있다. Marching Tetrahedra 단계에서는 메쉬 vertex를 배치하기 위해 사면체 그리드의 edge들을 따라 거리가 필요하다. 이 거리는 edge마다 다르며, 하나의 거리만 저장하면 한 점에 연결된 모든 active edge를 고려한 절충안이 된다.


따라서 메쉬 vertex 배치에 더 큰 유연성을 확보하기 위해 directional signed distance $\hat{s}$를 정의했다. 이를 통해 특정 edge를 기반으로 vertex를 고유하게 배치할 수 있으며, 로컬 normal을 목표 표면에 더 잘 정렬하고 사면체 그리드의 edge가 메쉬의 서로 다른 영역에 걸쳐 있을 때 발생하는 아티팩트를 효과적으로 방지할 수 있다.


본 논문에서 사용하는 directional signed distance는 spherical harmonics (SH)로 인코딩된다. 각 점 $p_i$는 signed distance $s_i$와 SH 계수 \(\textbf{c}_i \in \mathbb{R}^q\)와 연관된다. 점 $p_i$와 $p_j$를 연결하는 active edge $e$가 주어졌을 때, 점 $p_i$에서의 $e$에 대한 directional signed distance는 다음과 같이 정의된다.

\[\begin{equation} \hat{s}_i (e) = (1 + \textrm{tanh} (\textrm{SH} (\theta_{i \rightarrow j}, \phi_{i \rightarrow j}, \textbf{c}_i))) s_i \end{equation}\]

(\(\theta_{i \rightarrow j}\)와 \(\phi_{i \rightarrow j}\)는 $p_j - p_i$의 극각과 방위각)

모든 edge $e$에 대해 \(\hat{s}_i (e)\)가 $s_i$와 같은 부호를 가지며 $(0, 2s_i)$ 범위의 값을 취하도록 한다. 이 두 가지 속성은 directional signed distance를 Marching Tetrahedra와 일치시키면서도 더 큰 유연성을 제공한다.

SH는 basis function의 선형 결합으로 계산되므로 미분이 간단하다. 또한 저주파 SH만 최적화함으로써 부드러운 방향 함수를 구현할 수 있으며, 계수를 추가하여 자유도를 쉽게 확장할 수 있다.

2. Mesh extraction

TetWeave는 Marching Tetrahedra 알고리즘의 변형을 사용하여 최종 메쉬를 추출한다. $(P, T)$에서 적어도 하나의 active edge에 속하는 점들을 active point라고 부른다. 각 active edge는 추출된 메쉬 $(V, F)$의 점을 정확히 하나 포함한다. Active edge $e$에서 두 점 $(p_1, p_2)$가 주어졌을 때, 대응하는 vertex는 다음과 같다.

\[\begin{equation} v_e = \frac{\hat{s}_2 (e) p_1 - \hat{s}_1 (e) p_2}{\hat{s}_2 (e) - \hat{s}_1 (e)} \end{equation}\]

표면 연결성 $F$는 edge의 부호를 기반으로 하는 lookup table에서 가져오며, Marching Tetrahedra에 사용되는 것과 동일한 lookup table이다.

Optimization Pipeline

TetWeave의 대표적인 최적화 task는 멀티뷰 3D 재구성이며, 대부분의 구성 요소는 gradient 계산이 필요한 모든 최적화 파이프라인에서 작동할 수 있다.

1. Multi-view 3D Reconstruction Objective

멀티뷰 3D 재구성을 위해 입력 시점 집합과 이에 대응하는 카메라 intrinsic과 extrinsic들이 주어진다. 목표는 캡처된 물체의 표면 geometry를 나타내는 메쉬 $(V, F)$를 복원하는 것이다. 입력 시점 집합은 실제 촬영한 사진이거나, GT 메쉬 \((V_\textrm{gt}, F_\textrm{gt})\)의 렌더링된 마스크 \(M_\textrm{gt}\), depth map \(D_\textrm{gt}\), normal map \(N_\textrm{gt}\)일 수 있다.

TetWeave에서 생성된 메쉬는 미분 가능한 rasterizer를 사용하여 렌더링하고 이미지 공간에서 loss를 계산한다. 그런 다음, autograd를 사용하여 TetWeave의 파라미터에 대한 loss의 gradient를 계산하고 gradient descent로 loss를 최소화한다. 멀티뷰 3D 재구성에서는 다음과 같은 loss를 사용한다.

\[\begin{equation} \mathcal{L}_\textrm{recons} = \lambda_\textrm{M} \| M - M_\textrm{gt} \| + \lambda_\textrm{D} \| M_\textrm{gt} (D - D_\textrm{gt}) \|^2 + \lambda_N \| M_\textrm{gt} (N - N_\textrm{gt}) \|^2 \end{equation}\]

2. Regularization

본 논문에서는 메쉬 출력의 품질을 향상시키는 여러 정규화 항을 제안하였다. 이러한 정규화 항은 모든 응용 분야에 적용 가능하다. TetWeave의 그리드 토폴로지는 고정되어 있지 않으므로, self-intersection이 없음을 보장하면서 그리드 점의 위치를 ​​자유롭게 설정할 수 있도록 한다. 이러한 유연성 덕분에 결과 메쉬의 품질을 향상시키는 정규화 항을 사용할 수 있다.

본 논문에서는 적절한 triangulation을 유도하기 위해 gradient 기반 메쉬 최적화 파이프라인에 두 가지 정규화 항을 제안하였다.

Optimal Delaunay triangulations

저자들은 그리드 사면체가 균일하고 양호한 상태를 갖도록 하여 출력 삼각형 메쉬의 요소 품질을 향상시키고자 하였다. 따라서 FEM 분야에서 사용되는 Optimal Delaunay Triangulation (ODT) energy를 채택하였다. ODT는 고정된 vertex 집합에 대해 가능한 모든 triangulation에 걸쳐 interpolation 오차를 최소화하는 알고리즘이다. TetWeave는 Delaunay triangulation을 사용하여 그리드를 실시간으로 구성하기 때문에 ODT는 TetWeave에 적합하며, 주어진 점 집합에 대해 최적의 Delaunay connectivity를 식별하므로 본 논문의 파이프라인과의 일관성을 보장한다.

사면체 $T_i$에 대해, $T_i$의 외심을 기준으로 한 principal moment들의 합을 $M_{T_i}$라 하자. 또한 $T_i$의 외접구와 일치하고 동일한 질량을 가진 $S_{T_i}$에 대한 관성 모멘트를 \(M_{S_{T_i}}\)라 하자. 그러면 사면체 그리드 $(P, T)$에 대한 ODT loss는 다음과 같이 정의된다.

\[\begin{equation} \mathcal{L}_\textrm{ODT} = \sum_{T_i \in T} \vert M_{S_{T_i}} - M_{T_i} \vert \end{equation}\]

이 에너지를 최소화하면 정사면체 모양의 왜곡이 줄어들어 더욱 균일하고 조건이 양호한 triangulation이 가능해진다. 정사면체의 경우 이 에너지가 0이 된다.

Triangle fairness loss

저자들은 추출된 메쉬에서 균일한 삼각형이 형성되도록 유도하고자 하였다. 따라서 \(\frac{\pi}{3}\)에서 벗어나는 각도에 페널티를 부여하여 정삼각형 형성을 장려한다.

\[\begin{equation} \mathcal{L}_\textrm{fairness} = \sum_{f \in F} \frac{1}{3} \sum_{i=1}^3 (\theta_i - \frac{\pi}{3}) \end{equation}\]
Sign change regularizer

FlexiCubes와 유사하게, TetWeave 역시 supervision을 받지 못하는 부분에서 잘못된 geometry가 나타날 가능성이 있다. 따라서 저자들은 FlexiCubes와 동일한 정규화 기법을 적용하고, 모든 active edge에 대해 sign distance 값의 부호 변화에 페널티를 부여하였다.

\[\begin{equation} \mathcal{L}_\textrm{sign} = \sum_{(a, b) \in E_A} H (\sigma (s_a), \textrm{sign} (s_b)) \end{equation}\]

($E_A$는 active edge 집합, $H$는 cross-entropy, $\sigma$는 sigmoid function)

3. Point cloud refinement

TetWeave는 고정된 그리드에 의존하지 않으므로 필요한 위치에 적응적으로 점을 배치할 수 있다. 샘플링 접근 방식은 최적화에 기여하지 않는 active point와 연결되지 않은 passive point를 리샘플링하는 데 중점을 둔다. Passive point를 리샘플링하는 것 외에도 최적화 과정에서 가장 중요한 위치에 새로운 포인트를 점진적으로 추가한다.


현재 메쉬 $(V, F)$가 주어지면 메쉬의 bounding box를 계산하고, 이를 voxel grid $\mathcal{G}$로 세분화한다. 각 voxel $g_i \in \mathcal{G}$에는 중요도 값 $h(g_i)$가 할당되며, 이 값을 voxel grid에 대해 정규화하여 확률 분포 $\rho (g_i)$를 얻는다. 이에 따라 grid 전체에 대한 확률 분포 \(\rho (\mathcal{G}) = \{ \rho (g_i) \vert g_i \in \mathcal{G} \}\)를 정의한다.

샘플링할 점의 개수가 $K$개 주어졌을 때, $\rho (\mathcal{G})$로 parameterize된 다항 분포에 $K$번의 시행을 통해 $k_i$개의 점을 샘플링한다. 그런 다음 voxel $g_i$에서 $k_i$개의 점을 무작위로 샘플링한다. 샘플링된 각 점에 대해, 포함하는 사면체 $T$ 내에서의 무게중심 좌표를 결정하고, $T$의 vertex 파라미터의 barycentric interpolation을 통해 signed distance와 SH 계수를 초기화한다.

특정 요구 사항에 따라 $h$를 정의할 수 있다. 예를 들어, 균일 샘플링은 메쉬와 교차하는 voxel에 대해 $h(g_i) = 1$로 설정하고, 그렇지 않은 voxel에 대해서는 $h(g_i) = 0$으로 설정하면 된다. 이를 통해 메쉬 해상도를 동적으로 조정할 수 있다.

4. Adaptive meshing


저자들은 멀티뷰 3D 재구성과 같은 inverse rendering 분야에 적합한 중요도 함수 $h$를 제안하였다. 뷰 $k$에 대해, 카메라 파라미터 \(\theta_k\)를 입력 받은 rasterizer $\mathcal{I}$로 현재 메쉬 $(V, F)$를 렌더링하고, GT 이미지를 \(\tilde{I}_k\)라 하자. 각 픽셀 $(u, v)$에 대해 error $E_k (u,v)$를 다음과 같이 계산힌다.

\[\begin{equation} E_k (u,v) = \vert \tilde{I}_k (u,v) - \mathcal{I} (V, F, \theta_k) (u, v) \end{equation}\]

다음으로, 각 픽셀은 rasterization을 사용하여 현재 메쉬에 projection된다. Voxel $g_i$에 projection되는 모든 픽셀의 error 값은 모든 뷰에 걸쳐 누적한 다음 정규화하여 $h (g_i)$를 계산한다.

\[\begin{equation} h(g_i) = \frac{\sum_k \sum_{(u,v) \in \mathcal{N}_{g_i}} E_k (u,v)}{\vert \mathcal{N}_{g_i} \vert} \end{equation}\]

메쉬 외부에 있는 픽셀은 무시된다. Passive point들을 리샘플링하는 것 외에도, shape 표현에 점들을 점진적으로 추가한다. 따라서 결과 메쉬는 중요도 함수 $h$에 맞춰 조정된다.

5. Multi-stage optimization

저자들은 TetWeave에 대한 다단계 최적화 방법을 제안하였다. TetWeave의 유연성 향상과 재구성된 표면 주변의 더 높은 그리드 해상도는 더 많은 자유도를 제공한다. 이러한 자유도는 단순 최적화 시 노이즈가 많은 형상을 초래할 수 있다. 또한, 다단계 최적화를 하면 Delaunay triangulation 횟수를 줄여 전반적인 속도를 향상시킬 수 있다.

Main stage (5000 iteration) 동안에는 그리드 포인트 위치와 SDF 값을 모두 업데이트하고 모든 정규화 기법을 적용한다. 그리드 포인트 수는 목표 포인트 수에 도달할 때까지 리샘플링을 통해 점진적으로 증가한다. 포인트 수가 증가함에 따라 Delaunay triangulation을 다시 계산하는 데 상당한 비용이 소요된다. 이를 완화하기 위해 기본적으로 $m$ iteration마다 한 번씩만 다시 계산하고, 업데이트 사이에는 포인트 위치를 고정한다. 업데이트 전에 $m$ iteration 동안의 포인트 위치에 대한 gradient를 합산하여 그리드가 여러 시점의 정보를 통합하도록 한다.

Late stage (2000 iteration) 동안에는 포인트 위치는 고정되어 있으며, Delaunay triangulation은 더 이상 재계산되지 않는다. 최적화는 signed distance 값과 SH 계수를 개선하는 데에만 집중한다. 또한, ODT loss와 fairness loss 항은 사용하지 않는다.

Experiments

1. Comparisons

다음은 다른 메쉬 추출 방법들과 비교한 결과이다.


다음은 메쉬 압축 방법들과 비교한 결과이다.

2. Ablation

다음은 중요도 함수 $h$에 따른 결과를 비교한 것이다.


다음은 SH에 대한 ablation 결과이다.

3. Discussion

다음은 목표 그리드 포인트 수에 따라 생성된 메쉬를 비교한 결과이다. (목표 수 / active point 수)


다음은 파라미터 수에 따른 chamfer distance를 비교한 결과이다.


다음은 FlexiCubes와의 런타임 비교 결과이다.

Limitations

얇은 구조를 다루는 데에는 부적합하다.