Consistent Point Orientation for Manifold Surfaces via Boundary Integration

Weizhou Liu liuweizhou@mail.bnu.edu.cn 0009-0007-9127-8313 Beijing Normal UniversityChina Xingce Wang wangxingce@bnu.edu.cn 0000-0002-3177-8902 Beijing Normal UniversityChina Haichuan Zhao 201931210007@mail.bnu.edu.cn 0000-0003-4967-7533 Beijing Normal UniversityChina Xingfei Xue xuexf@mail.bnu.edu.cn 0009-0003-9411-5350 Beijing Normal UniversityChina Zhongke Wu zwu@bnu.edu.cn 0000-0003-3735-6476 Beijing Normal UniversityChina Xuequan Lu b.lu@latrobe.edu.au 0000-0003-0959-408X La Trobe UniversityAustralia  and  Ying He yhe@ntu.edu.sg 0000-0002-6749-4485 Nanyang Technological UniversitySingapore
Abstract.

This paper introduces a new approach for generating globally consistent normals for point clouds sampled from manifold surfaces. Given that the generalized winding number (GWN) field generated by a point cloud with globally consistent normals is a solution to a PDE with jump boundary conditions and possesses harmonic properties, and the Dirichlet energy of the GWN field can be defined as an integral over the boundary surface, we formulate a boundary energy derived from the Dirichlet energy of the GWN. Taking as input a point cloud with randomly oriented normals, we optimize this energy to restore the global harmonicity of the GWN field, thereby recovering the globally consistent normals. Experiments show that our method outperforms state-of-the-art approaches, exhibiting enhanced robustness to noise, outliers, complex topologies, and thin structures. Our code can be found at https://github.com/liuweizhou319/BIM.

Unoriented point clouds, globally consistent point orientation, harmonic function, generalized winding number, boundary integration
ccs: Computing methodologies Point-based models

1. Introduction

Point clouds with globally consistent normals have numerous downstream applications, such as point set upsampling (Huang et al., 2013; Feng et al., 2022), point cloud filtering (Zhang et al., 2020; Lu et al., 2022), surface reconstruction (Kazhdan et al., 2006; Huang et al., 2009; Calakli and Taubin, 2011; Kazhdan and Hoppe, 2013; Lu et al., 2018; Mescheder et al., 2019; Sellán and Jacobson, 2022, 2023), and segmentation (Khaloo and Lattanzi, 2017). As a fundamental problem in computer graphics, it remains challenging due to the complexity of object geometry, topology, and the influence of noise.

Most existing methods (Hoppe et al., 1992; Cazals and Pouget, 2003; Pauly et al., 2003; König and Gumhold, 2009; Schertler et al., 2017; Metzer et al., 2021) estimate normals perpendicular to the point cloud surface and then use propagation to flip inconsistent normals. As pointed out by Li et al. (2023a), propagation strategies are affected by the direction of distribution of the unoriented normal vectors and often lead to undesirable results. Moreover, neighborhood-based normal estimation methods tend to perform poorly when dealing with noise and geometries with small reach. In the past few years, there has been significant advancement in the field of globally consistent normal estimation. iPSR (Hou et al., 2022) reconstructs surfaces from unoriented point clouds by iteratively refining the normals obtained from the PSR solver (Kazhdan et al., 2006). While effective for dense point clouds, iPSR encounters difficulties with sparse inputs. In sparsely sampled regions, the potential generation of erroneous normals by iPSR can result in disconnected components in the reconstructed surface. There are also deep learning-based methods for point normal estimation or orientation (Guerrero et al., 2018; Ben-Shabat et al., 2019; Zhu et al., 2021; Li et al., 2023a, b, c, d). While these methods enhance the precision of predictions, they typically do not reverse the normals when the prediction of normal orientation is inconsistent.

The generalized winding number (GWN) (Jacobson et al., 2013) has proven to be a powerful tool for robust segmentation of 3D surfaces into distinct inside and outside regions. Its application extends to the orientation of triangle meshes and point clouds, showcasing its versatility in the field of geometric processing. Building on this foundational work, Takayama et al. (2014) proposed to orient triangle soups by minimizing the Dirichlet energy associated with the GWN field. Barill et al. (2018) developed a point cloud-based approach to estimating the GWN, linking point cloud normals to the generalized winding number. More recently, PGR (Lin et al., 2022) and GCNO (Xu et al., 2023) adopted point-based GWN for orienting point clouds. They regularize the values of the GWN both inside and outside the point cloud. Despite these advancements, these methods are usually limited to small-scale models due to their high computational cost. Additionally, they are not effective in handling models with complex topology and often fail to robustly address issues posed by thin structures and noise.

Our work aims at developing a robust approach for computing globally consistent normal orientations in point clouds sampled from manifold surfaces. We identify harmonicity and jump boundary conditions as two key factors in point cloud orientation. Leveraging the fact that the Dirichlet energy of the GWN field can be expressed as an integral over the boundary (Takayama et al., 2014), we introduce a new boundary energy formulation. In this framework, the normals associated with each point are variables. This boundary energy coincides with the Dirichlet energy only when the normals are globally consistent. By imposing constraints on the range of the GWN values, we observe an inverse correlation between boundary energy and Dirichlet energy: the boundary energy is small for randomly oriented normals, and becomes large when normals are globally consistent. This observation motivates us to maximize the boundary energy from initially random normals. Employing an efficient L-BFGS solver, we iteratively enhance the global harmonicity of the generalized winding number field, eventually yielding globally consistent normals. Extensive experiments demonstrate the effectiveness of our method, achieving high-quality orientation and reconstruction results.

2. Related Work

The problem of global point orientation dates back to the 1990s, in the seminal work of Hoppe et al. (1992). The authors calculated initial normals utilizing principal component analysis, and subsequently corrected inconsistent normals through propagation. This pioneering work has inspired many follow-up works, including (König and Gumhold, 2009; Jakob et al., 2019; Levin, 1998; Mitra and Nguyen, 2003; Alliez et al., 2007; Boulch and Marlet, 2012; Xu et al., 2022), among others. Although these methods perform well with simple models, their performance deteriorates in the presence of complex geometries and data imperfections, especially in the presence of noise and outliers.

Reconstructing 3D surfaces from unoriented point clouds is closely related to the problem of point orientation. A popular approach for 3D reconstruction involves using an implicit function to represent the target surface, where the gradients of this function at a particular level set serve as the point normals. Current approaches predict globally consistent normals by using signed/unsigned distance fields or by considering point clouds as dipoles to generate generalized winding number fields. Mullen et al. (2010) computed an unsigned distance field for the input point cloud, subsequently determining the sign by minimizing the Dirichlet energy. NGLO (Li et al., 2023a) enhanced normal accuracy by optimizing gradients based on the fitted distance field. NeuralGF (Li et al., 2023b) introduced a novel paradigm of learning gradients for fitting a signed distance field with neural implicit functions, enabling unsupervised point cloud normal estimation. The Dipole method (Metzer et al., 2021) maximizes the electric field gradient of the point cloud using a greedy strategy, aiming to approximate the generalized winding number. iPSR (Hou et al., 2022) iteratively refined the surface by feeding the normals obtained from the previous iteration into the PSR (Kazhdan and Hoppe, 2013) solver, gradually improving the surface quality. PGR (Lin et al., 2022) treats normals and surface element areas as unknown parameters, interpreting the indicator function as a member of a parametric function space using the Gauss formula, and recovering the normals by estimating the values of the indicator function. GCNO (Xu et al., 2023) incorporated the prior knowledge of the generalized winding number field as an approximation to the indicator function for point clouds with globally consistent normals. Despite significant advancements in the field of 3D reconstruction, existing methods for reconstructing 3D surfaces from unoriented point clouds still suffer from various issues. For example, NGLO’s dependency on a training set limits its ability to robustly handle diverse types of data and noise levels. Dipole may generate conflicting normals at thin structures. iPSR can lead to disconnected components in cases of sparse point clouds. PGR lacks robustness to noise and demands high computational resources. GCNO’s effectiveness is contingent upon an even distribution of Voronoi vertices both inside and outside the point cloud–a condition that, when unmet, significantly degrades the quality of the results.

PDEs with jump boundary conditions are widely used in surface reconstruction, rendering, and fluid simulation. In surface reconstruction, jump boundary conditions are used to infer the implicit function from the point cloud with consistent normals. The indicator function obtained from the PSR (Kazhdan et al., 2006; Kazhdan and Hoppe, 2013) solver effectively satisfies the jump boundary conditions. The generalized winding number generated by point clouds with globally consistent normals (Barill et al., 2018) can be regarded as an approximate solution to the Poisson equation with jump boundary conditions. The surface can be reconstructed by extracting the iso-surfaces from the generalized winding number. In rendering, Poisson vector graphics (Hou et al., 2020) and diffusion curves (Orzan et al., 2008) treat the input strokes as jump boundary conditions and accomplish color rendering by solving Laplace’s equation. In fluid simulation (Leal, 2007), jump boundary conditions are used to represent the physical properties at the interface between two fluids. Recently, Feng et al. (2023) proposed a method for computing the winding number for discrete surfaces. They approached the problem by considering the relationship between the winding number and harmonic functions and solved it by solving Laplace’s equation with jump boundary conditions.

3. Preliminaries

Given a solid object Ω3Ωsuperscript3\Omega\subset\mathbb{R}^{3}roman_Ω ⊂ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT, we denote its boundary surface by ΩΩ\partial\Omega∂ roman_Ω. Let 𝒫={𝐩i|𝐩iΩ}i=1n𝒫superscriptsubscriptconditional-setsubscript𝐩𝑖subscript𝐩𝑖Ω𝑖1𝑛\mathcal{P}=\{\mathbf{p}_{i}|\mathbf{p}_{i}\in\partial\Omega\}_{i=1}^{n}caligraphic_P = { bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT | bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ∈ ∂ roman_Ω } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT be a point cloud sampling the manifold surface. For each point 𝐩isubscript𝐩𝑖\mathbf{p}_{i}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, we denote by 𝐧^isubscript^𝐧𝑖\hat{\mathbf{n}}_{i}over^ start_ARG bold_n end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT its outward unit normal. We denote the inner product in 3superscript3\mathbb{R}^{3}blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT by ,\langle\cdot,\cdot\rangle⟨ ⋅ , ⋅ ⟩.

3.1. Poisson’s Equation with Jump Boundary Conditions

Poisson’s equation with jump boundary conditions finds extensive applications across physics, scientific computing, simulation, and geometric processing. The equation is formulated as:

(1) Δu(𝐱)=f(𝐱),𝐱3Ω,formulae-sequenceΔ𝑢𝐱𝑓𝐱𝐱superscript3Ω\Delta u(\mathbf{x})=f(\mathbf{x}),\;\;\mathbf{x}\in\;\mathbb{R}^{3}\setminus% \partial\Omega,roman_Δ italic_u ( bold_x ) = italic_f ( bold_x ) , bold_x ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ∖ ∂ roman_Ω ,

subject to the Dirichlet boundary condition

(2) u+(𝐱)u(𝐱)=k,𝐱Ω,formulae-sequencesuperscript𝑢𝐱superscript𝑢𝐱𝑘𝐱Ωu^{+}(\mathbf{x})-u^{-}(\mathbf{x})=k,\;\;\mathbf{x}\in\;\partial\Omega,italic_u start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ( bold_x ) - italic_u start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ( bold_x ) = italic_k , bold_x ∈ ∂ roman_Ω ,

and the Neumann boundary condition

(3) u+(𝐱)/𝐧𝐱=u(𝐱)/𝐧𝐱,𝐱Ω,formulae-sequencesuperscript𝑢𝐱subscript𝐧𝐱superscript𝑢𝐱subscript𝐧𝐱𝐱Ω\partial u^{+}(\mathbf{x})/\partial\mathbf{n}_{\mathbf{x}}=\partial u^{-}(% \mathbf{x})/\partial\mathbf{n}_{\mathbf{x}},\;\;\mathbf{x}\in\;\partial\Omega,∂ italic_u start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ( bold_x ) / ∂ bold_n start_POSTSUBSCRIPT bold_x end_POSTSUBSCRIPT = ∂ italic_u start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ( bold_x ) / ∂ bold_n start_POSTSUBSCRIPT bold_x end_POSTSUBSCRIPT , bold_x ∈ ∂ roman_Ω ,

where u:3:𝑢superscript3u:\mathbb{R}^{3}\to\mathbb{R}italic_u : blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT → blackboard_R is the sought solution, f:3:𝑓superscript3f:\mathbb{R}^{3}\to\mathbb{R}italic_f : blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT → blackboard_R represents a source term, and k𝑘kitalic_k is a constant. The term 𝐧𝐱subscript𝐧𝐱\mathbf{n}_{\mathbf{x}}bold_n start_POSTSUBSCRIPT bold_x end_POSTSUBSCRIPT denotes the globally consistent outward normal at 𝐱𝐱\mathbf{x}bold_x. We also define exterior and interior boundary values as the limiting values of u𝑢uitalic_u at the boundary from the exterior and interior, respectively. That is, u±(𝐱)=limϵ0u(𝐱±ϵ𝐧𝐱)superscript𝑢plus-or-minus𝐱subscriptitalic-ϵ0𝑢plus-or-minus𝐱italic-ϵsubscript𝐧𝐱u^{\pm}(\mathbf{x})=\lim_{\epsilon\to 0}u(\mathbf{x}\pm\epsilon\mathbf{n}_{% \mathbf{x}})italic_u start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT ( bold_x ) = roman_lim start_POSTSUBSCRIPT italic_ϵ → 0 end_POSTSUBSCRIPT italic_u ( bold_x ± italic_ϵ bold_n start_POSTSUBSCRIPT bold_x end_POSTSUBSCRIPT ) for xΩ𝑥Ωx\in\partial\Omegaitalic_x ∈ ∂ roman_Ω. When f=0𝑓0f=0italic_f = 0, the solution u𝑢uitalic_u is harmonic, and in this context, u𝑢uitalic_u also minimizes the Dirichlet energy functional 3Ωu2subscriptsuperscript3Ωsuperscriptnorm𝑢2\int_{\mathbb{R}^{3}\setminus\partial\Omega}\|\nabla u\|^{2}∫ start_POSTSUBSCRIPT blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ∖ ∂ roman_Ω end_POSTSUBSCRIPT ∥ ∇ italic_u ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT.

3.2. Boundary Integral Equation

The boundary element method is a powerful tool for solving partial differential equations. BEM transforms the differential equation within the computational domain into a boundary integral equation. The boundary is then discretized into elements, allowing the discretization of the boundary integral equation as a dense system of linear equations without requiring explicit discretization of the computational domain.

Equation (1) can be expressed in the form of a Boundary Integral Equation (Costabel, 1987) using the Poisson kernel and Green’s function as follows:

(4) u(𝐱)=3ΩG(𝐱,𝐲)f(𝐲)d𝐲𝑢𝐱subscriptsuperscript3Ω𝐺𝐱𝐲𝑓𝐲differential-d𝐲\displaystyle u(\mathbf{x})=\int_{\mathbb{R}^{3}\setminus\partial\Omega}G(% \mathbf{x},\mathbf{y})f(\mathbf{y})\mathrm{d}\mathbf{y}italic_u ( bold_x ) = ∫ start_POSTSUBSCRIPT blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ∖ ∂ roman_Ω end_POSTSUBSCRIPT italic_G ( bold_x , bold_y ) italic_f ( bold_y ) roman_d bold_y
+\displaystyle++ ΩP(𝐱,𝐳)[u+(𝐳)u(𝐳)]G(𝐱,𝐳)[u+(𝐳)𝐧𝐳u(𝐳)𝐧𝐳]d𝐳subscriptΩ𝑃𝐱𝐳delimited-[]superscript𝑢𝐳superscript𝑢𝐳𝐺𝐱𝐳delimited-[]superscript𝑢𝐳subscript𝐧𝐳superscript𝑢𝐳subscript𝐧𝐳d𝐳\displaystyle\int_{\partial\Omega}P(\mathbf{x},\mathbf{z})\left[u^{+}(\mathbf{% z})-u^{-}(\mathbf{z})\right]-G(\mathbf{x},\mathbf{z})\left[\frac{\partial u^{+% }(\mathbf{z})}{\partial\mathbf{n}_{\mathbf{z}}}-\frac{\partial u^{-}(\mathbf{z% })}{\partial\mathbf{n}_{\mathbf{z}}}\right]\mathrm{d}\mathbf{z}∫ start_POSTSUBSCRIPT ∂ roman_Ω end_POSTSUBSCRIPT italic_P ( bold_x , bold_z ) [ italic_u start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ( bold_z ) - italic_u start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ( bold_z ) ] - italic_G ( bold_x , bold_z ) [ divide start_ARG ∂ italic_u start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ( bold_z ) end_ARG start_ARG ∂ bold_n start_POSTSUBSCRIPT bold_z end_POSTSUBSCRIPT end_ARG - divide start_ARG ∂ italic_u start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ( bold_z ) end_ARG start_ARG ∂ bold_n start_POSTSUBSCRIPT bold_z end_POSTSUBSCRIPT end_ARG ] roman_d bold_z
=\displaystyle== ΩG(𝐱,𝐲)f(𝐲)d𝐲+ΩP(𝐱,𝐳)[u+(𝐳)u(𝐳)]d𝐳subscriptΩ𝐺𝐱𝐲𝑓𝐲differential-d𝐲subscriptΩ𝑃𝐱𝐳delimited-[]superscript𝑢𝐳superscript𝑢𝐳differential-d𝐳\displaystyle\int_{\Omega}G(\mathbf{x},\mathbf{y})f(\mathbf{y})\mathrm{d}% \mathbf{y}+\int_{\partial\Omega}P(\mathbf{x},\mathbf{z})\left[u^{+}(\mathbf{z}% )-u^{-}(\mathbf{z})\right]\mathrm{d}\mathbf{z}∫ start_POSTSUBSCRIPT roman_Ω end_POSTSUBSCRIPT italic_G ( bold_x , bold_y ) italic_f ( bold_y ) roman_d bold_y + ∫ start_POSTSUBSCRIPT ∂ roman_Ω end_POSTSUBSCRIPT italic_P ( bold_x , bold_z ) [ italic_u start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ( bold_z ) - italic_u start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ( bold_z ) ] roman_d bold_z

where G(𝐱,𝐲)𝐺𝐱𝐲G(\mathbf{x},\mathbf{y})italic_G ( bold_x , bold_y ) represents Green’s function satisfying ΔG(𝐱,𝐲)=δ𝐲(𝐱)Δ𝐺𝐱𝐲subscript𝛿𝐲𝐱\Delta G(\mathbf{x},\mathbf{y})=\delta_{\mathbf{y}}(\mathbf{x})roman_Δ italic_G ( bold_x , bold_y ) = italic_δ start_POSTSUBSCRIPT bold_y end_POSTSUBSCRIPT ( bold_x ). Here δ𝐲(𝐱)subscript𝛿𝐲𝐱\delta_{\mathbf{y}}(\mathbf{x})italic_δ start_POSTSUBSCRIPT bold_y end_POSTSUBSCRIPT ( bold_x ) is Dirac delta function and P(𝐱,𝐲)𝑃𝐱𝐲P(\mathbf{x},\mathbf{y})italic_P ( bold_x , bold_y ) denotes the Poisson kernel. The final term in the second integral vanishes due to the Neumann boundary condition.

3.3. Generalized Winding Number

The generalized winding number is the number of times a point in space is enclosed by a surface. As shown in (Jacobson et al., 2013), the generalized winding number w𝑤witalic_w, generated by globally consistent outward normals, satisfies Laplace’s equation. This condition represents a special case of Equation (1) when k=1𝑘1k=-1italic_k = - 1 and f0𝑓0f\equiv 0italic_f ≡ 0. Consequently, we can express w𝑤witalic_w using Equation (4) as

(5) w(𝐱)=ΩP(𝐱,𝐳)𝑑𝐳.𝑤𝐱subscriptΩ𝑃𝐱𝐳differential-d𝐳w(\mathbf{x})=\int_{\partial\Omega}P(\mathbf{x},\mathbf{z})d\mathbf{z}.italic_w ( bold_x ) = ∫ start_POSTSUBSCRIPT ∂ roman_Ω end_POSTSUBSCRIPT italic_P ( bold_x , bold_z ) italic_d bold_z .

The Poisson kernel P(𝐱,𝐲)𝑃𝐱𝐲P(\mathbf{x},\mathbf{y})italic_P ( bold_x , bold_y ), which is the directional derivative of Green’s function in the direction 𝐯𝐲subscript𝐯𝐲\mathbf{v}_{\mathbf{y}}bold_v start_POSTSUBSCRIPT bold_y end_POSTSUBSCRIPT, is given by:

P(𝐱,𝐲)=G(𝐱,𝐲)𝐯𝐲=14π𝐧𝐲,𝐱𝐲𝐱𝐲3.𝑃𝐱𝐲𝐺𝐱𝐲subscript𝐯𝐲14𝜋subscript𝐧𝐲𝐱𝐲superscriptnorm𝐱𝐲3P(\mathbf{x},\mathbf{y})=\frac{\partial G(\mathbf{x},\mathbf{y})}{\partial% \mathbf{v}_{\mathbf{y}}}=\frac{1}{4\pi}\frac{\langle\mathbf{n}_{\mathbf{y}},% \mathbf{x}-\mathbf{y}\rangle}{\|\mathbf{x}-\mathbf{y}\|^{3}}.italic_P ( bold_x , bold_y ) = divide start_ARG ∂ italic_G ( bold_x , bold_y ) end_ARG start_ARG ∂ bold_v start_POSTSUBSCRIPT bold_y end_POSTSUBSCRIPT end_ARG = divide start_ARG 1 end_ARG start_ARG 4 italic_π end_ARG divide start_ARG ⟨ bold_n start_POSTSUBSCRIPT bold_y end_POSTSUBSCRIPT , bold_x - bold_y ⟩ end_ARG start_ARG ∥ bold_x - bold_y ∥ start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT end_ARG .

Given an oriented point cloud 𝒫𝒫\mathcal{P}caligraphic_P, where each point 𝐩isubscript𝐩𝑖\mathbf{p}_{i}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT is associated with a globally consistent outward normal 𝐧isubscript𝐧𝑖\mathbf{n}_{i}bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, Barill et al. (2018) approximates the GWN for an arbitrary query point 𝐪3𝐪superscript3\mathbf{q}\in\mathbb{R}^{3}bold_q ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT by

(6) w(𝐪):=i=1nai14π𝐧i,𝐩i𝐪𝐩i𝐪3=i=1naiP(𝐪,𝐩i).assign𝑤𝐪superscriptsubscript𝑖1𝑛subscript𝑎𝑖14𝜋subscript𝐧𝑖subscript𝐩𝑖𝐪superscriptnormsubscript𝐩𝑖𝐪3superscriptsubscript𝑖1𝑛subscript𝑎𝑖𝑃𝐪subscript𝐩𝑖w(\mathbf{q}):=\sum\limits_{i=1}^{n}{a_{i}}\frac{1}{4\pi}\frac{\langle\mathbf{% n}_{i},\mathbf{p}_{i}-\mathbf{q}\rangle}{\|\mathbf{p}_{i}-\mathbf{q}\|^{3}}=% \sum\limits_{i=1}^{n}a_{i}P(\mathbf{q},\mathbf{p}_{i}).italic_w ( bold_q ) := ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT italic_a start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT divide start_ARG 1 end_ARG start_ARG 4 italic_π end_ARG divide start_ARG ⟨ bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - bold_q ⟩ end_ARG start_ARG ∥ bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - bold_q ∥ start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT end_ARG = ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT italic_a start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_P ( bold_q , bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) .
[Uncaptioned image]

10

Here aisubscript𝑎𝑖a_{i}italic_a start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT is the geodesic Voronoi area of point 𝐩isubscript𝐩𝑖\mathbf{p}_{i}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, representing the contribution of point 𝐩isubscript𝐩𝑖\mathbf{p}_{i}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT to the surface integral. Since computing geodesic Voronoi diagram on discrete surfaces is time consuming, Barill et al. (2018) suggested calculating aisubscript𝑎𝑖a_{i}italic_a start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT as a 2D Voronoi area by projecting 𝐩isubscript𝐩𝑖\mathbf{p}_{i}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT and its k𝑘kitalic_k-nearest neighbors to the tangent plane of 𝐩isubscript𝐩𝑖\mathbf{p}_{i}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT. Jacobson et al. (2013) showed that the GWN for points that are away from the surface is harmonic, satisfying Δw=0Δ𝑤0\Delta w=0roman_Δ italic_w = 0. Furthermore, as observed by Xu et al. (2023), the GWN produced by a point cloud with randomly oriented normals is nearly zero everywhere (see Figure 2).

4. Method

Our method takes a point cloud 𝒫={𝐩i}i=1n𝒫superscriptsubscriptsubscript𝐩𝑖𝑖1𝑛\mathcal{P}=\{\mathbf{p}_{i}\}_{i=1}^{n}caligraphic_P = { bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT, which is sampled from a closed, orientable manifold surface ΩΩ\partial\Omega∂ roman_Ω as input. It begins by assigning a random normal to each point in the cloud. The core of our method lies in the regularization of the generalized winding number w𝑤witalic_w by optimizing an objective function related to the Dirichlet energy of w𝑤witalic_w. After orientation, we use sPSR (Kazhdan and Hoppe, 2013) to obtain the watertight surface.

Notations

Throughout the paper, we denote by 𝐧^={𝐧^i}i=1n^𝐧superscriptsubscriptsubscript^𝐧𝑖𝑖1𝑛\hat{\mathbf{n}}=\{\hat{\mathbf{n}}_{i}\}_{i=1}^{n}over^ start_ARG bold_n end_ARG = { over^ start_ARG bold_n end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT the set of globally consistent outward unit normal of the surface ΩΩ\partial\Omega∂ roman_Ω, and by 𝐧={𝐧i}i=1n𝐧superscriptsubscriptsubscript𝐧𝑖𝑖1𝑛\mathbf{n}=\{\mathbf{n}_{i}\}_{i=1}^{n}bold_n = { bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT an arbitrary unit normal field. Although the GWN for the input point cloud is computed in a discrete manner, we treat the GWN as a continuous field for the sake of clarity in our discussion. We define Ω+superscriptΩ\Omega^{+}roman_Ω start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT (resp. ΩsuperscriptΩ\Omega^{-}roman_Ω start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT) to be the exterior (resp. interior) of the surface111To ease discussion, we also define ΩsuperscriptΩ\Omega^{-}roman_Ω start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT, which is the same as the solid ΩΩ\Omegaroman_Ω, for the interior of the solid object.. The GWN for points 𝐱Ω𝐱Ω\mathbf{x}\in\partial\Omegabold_x ∈ ∂ roman_Ω is defined as w±=limϵ0w(𝐱±ϵ𝐧^)superscript𝑤plus-or-minussubscriptitalic-ϵ0𝑤plus-or-minus𝐱italic-ϵ^𝐧w^{\pm}=\lim_{\epsilon\to 0}w(\mathbf{x}\pm\epsilon\hat{\mathbf{n}})italic_w start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT = roman_lim start_POSTSUBSCRIPT italic_ϵ → 0 end_POSTSUBSCRIPT italic_w ( bold_x ± italic_ϵ over^ start_ARG bold_n end_ARG ). We define the consistently oriented normals, 𝐧^+superscript^𝐧\hat{\mathbf{n}}^{+}over^ start_ARG bold_n end_ARG start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT and 𝐧^superscript^𝐧\hat{\mathbf{n}}^{-}over^ start_ARG bold_n end_ARG start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT, respectively, for the boundary of Ω+superscriptΩ\Omega^{+}roman_Ω start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT and ΩsuperscriptΩ\Omega^{-}roman_Ω start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT, where 𝐧^+=𝐧^superscript^𝐧^𝐧\hat{\mathbf{n}}^{+}=-\hat{\mathbf{n}}over^ start_ARG bold_n end_ARG start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT = - over^ start_ARG bold_n end_ARG and 𝐧^=𝐧^superscript^𝐧^𝐧\hat{\mathbf{n}}^{-}=\hat{\mathbf{n}}over^ start_ARG bold_n end_ARG start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT = over^ start_ARG bold_n end_ARG.

4.1. Boundary Energy

Since the GWN field associated with a globally consistent orientation is a harmonic function away from the surface and thereby minimizes the Dirichlet energy, Takayama et al. (2014) proposed the minimization of the Dirichlet energy in approximating the GWN from polygonal soups. The Dirichlet energy is defined as an integral over the whole space, excluding the boundary surface ΩΩ\partial\Omega∂ roman_Ω, and is given by:

min3Ωw2:=Ω+w2+Ωw2.assignsubscriptsuperscript3Ωsuperscriptnorm𝑤2subscriptsuperscriptΩsuperscriptnorm𝑤2subscriptsuperscriptΩsuperscriptnorm𝑤2\min\int_{\mathbb{R}^{3}\setminus\partial\Omega}\|\nabla w\|^{2}:=\int_{\Omega% ^{+}}\|\nabla w\|^{2}+\int_{\Omega^{-}}\|\nabla w\|^{2}.roman_min ∫ start_POSTSUBSCRIPT blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ∖ ∂ roman_Ω end_POSTSUBSCRIPT ∥ ∇ italic_w ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT := ∫ start_POSTSUBSCRIPT roman_Ω start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ∥ ∇ italic_w ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + ∫ start_POSTSUBSCRIPT roman_Ω start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ∥ ∇ italic_w ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT .

A straightforward approach to compute the Dirichlet energy involves subdividing the finite volume around ΩΩ\partial\Omega∂ roman_Ω into sufficiently small elements to accurately capture the variations of the GWN. Subsequently, numerical integration is performed on this discretized space to calculate the Dirichlet energy. In order to calculate integrals accurately, a high-resolution and high-quality tetrahedral mesh is typically necessary, particularly when ΩΩ\partial\Omega∂ roman_Ω has complex geometry and topology. An alternative solution, as proposed by Takayama et al. (2014), is to convert the volume integral 3Ωw2subscriptsuperscript3Ωsuperscriptnorm𝑤2\int_{\mathbb{R}^{3}\setminus\partial\Omega}\|\nabla w\|^{2}∫ start_POSTSUBSCRIPT blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ∖ ∂ roman_Ω end_POSTSUBSCRIPT ∥ ∇ italic_w ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT into boundary integrals using Green’s first identity

(7) 3Ωw2=Ω(ww+)𝐧^w,subscriptsuperscript3Ωsuperscriptnorm𝑤2subscriptΩsuperscript𝑤superscript𝑤subscript^𝐧superscript𝑤\int_{\mathbb{R}^{3}\setminus\partial\Omega}\|\nabla w\|^{2}=\int_{\partial% \Omega}(w^{-}-w^{+})\nabla_{\hat{\mathbf{n}}}w^{-},∫ start_POSTSUBSCRIPT blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ∖ ∂ roman_Ω end_POSTSUBSCRIPT ∥ ∇ italic_w ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT = ∫ start_POSTSUBSCRIPT ∂ roman_Ω end_POSTSUBSCRIPT ( italic_w start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT - italic_w start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) ∇ start_POSTSUBSCRIPT over^ start_ARG bold_n end_ARG end_POSTSUBSCRIPT italic_w start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ,

where 𝐧^subscript^𝐧\nabla_{\hat{\mathbf{n}}}∇ start_POSTSUBSCRIPT over^ start_ARG bold_n end_ARG end_POSTSUBSCRIPT denotes the directional derivative along normal direction 𝐧^^𝐧\hat{\mathbf{n}}over^ start_ARG bold_n end_ARG.

We extend the Dirichlet energy associated with globally consistent normals 𝐧^^𝐧\hat{\mathbf{n}}over^ start_ARG bold_n end_ARG to an arbitrary normal vector field 𝐧𝐧\mathbf{n}bold_n, and define the boundary energy as

(8) f(𝐧):=Ω(ww+)𝐧w.assign𝑓𝐧subscriptΩsuperscript𝑤superscript𝑤subscript𝐧superscript𝑤f(\mathbf{n}):=\int_{\partial\Omega}(w^{-}-w^{+})\nabla_{\mathbf{n}}w^{-}.italic_f ( bold_n ) := ∫ start_POSTSUBSCRIPT ∂ roman_Ω end_POSTSUBSCRIPT ( italic_w start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT - italic_w start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) ∇ start_POSTSUBSCRIPT bold_n end_POSTSUBSCRIPT italic_w start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT .

Given an arbitrary normal field 𝐧𝐧\bf nbold_n, we decompose each normal vector 𝐧𝐧\mathbf{n}bold_n into two components relative to the globally consistent outward normal 𝐧^^𝐧\hat{\mathbf{n}}over^ start_ARG bold_n end_ARG – a tangential component 𝐧tsubscript𝐧𝑡\mathbf{n}_{t}bold_n start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT and a normal component 𝐧nsubscript𝐧𝑛\mathbf{n}_{n}bold_n start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, that is, 𝐧=𝐧n+𝐧t𝐧subscript𝐧𝑛subscript𝐧𝑡\mathbf{n}=\mathbf{n}_{n}+\mathbf{n}_{t}bold_n = bold_n start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT + bold_n start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT. Leveraging the linearity of directional derivatives, we can express the boundary energy for 𝐧𝐧\mathbf{n}bold_n as a sum of its components: f(𝐧)=f(𝐧n)+f(𝐧t)𝑓𝐧𝑓subscript𝐧𝑛𝑓subscript𝐧𝑡f(\mathbf{n})=f(\mathbf{n}_{n})+f(\mathbf{n}_{t})italic_f ( bold_n ) = italic_f ( bold_n start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) + italic_f ( bold_n start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ).

Empirical analysis leads to two key observations: 1) When normals are oriented randomly, both the tangential and normal components of the boundary energy approach zero, yet the Dirichlet energy remains high (Figure 2, bottom). 2) Conversely, when normals are globally consistent, the tangential component remains negligible f(𝐧t)0𝑓subscript𝐧𝑡0f(\mathbf{n}_{t})\approx 0italic_f ( bold_n start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) ≈ 0, whereas the normal component is large, leading to f(𝐧)f(𝐧n)𝑓𝐧𝑓subscript𝐧𝑛f(\mathbf{n})\approx f(\mathbf{n}_{n})italic_f ( bold_n ) ≈ italic_f ( bold_n start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) (Figure 2, top). Under this condition, the Dirichlet energy is reduced, aligning with the boundary energy. These observations highlight the competing trends in Dirichlet and boundary energies during the process of transforming random normals to consistent normals. This serves as the inspiration for our approach to directly maximize the boundary energy f(𝐧)𝑓𝐧f(\mathbf{n})italic_f ( bold_n ). As a result, our optimization becomes

(9) maxf(𝐧):=Ω(ww+)𝐧wassign𝑓𝐧subscriptΩsuperscript𝑤superscript𝑤subscript𝐧superscript𝑤\max f(\mathbf{n}):=\int_{\partial\Omega}\left(w^{-}-w^{+}\right)\nabla_{% \mathbf{n}}w^{-}roman_max italic_f ( bold_n ) := ∫ start_POSTSUBSCRIPT ∂ roman_Ω end_POSTSUBSCRIPT ( italic_w start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT - italic_w start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) ∇ start_POSTSUBSCRIPT bold_n end_POSTSUBSCRIPT italic_w start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT
Remark 1

It is important to note that the boundary energy f(𝐧)𝑓𝐧f(\mathbf{n})italic_f ( bold_n ), despite a superficial similarity to the Dirichlet energy, represents a fundamentally different concept. These two forms of energy coincide only when the normal associated to each point is perpendicular to the surface. For an arbitrary normal field 𝐧𝐧\bf nbold_n, the two energies diverge. Furthermore, computing the Dirichlet energy for an arbitrary normal field 𝐧𝐧\bf nbold_n involves discretizing the space for volume integration - a computationally intensive task. Thus, minimizing the Dirichlet energy with randomly initialized normals is theoretically possible, but it is impractical for real-world applications. Our method overcomes this obstacle by converting volume integration to boundary integration when dealing with random normals, significantly reducing computational demands and eliminating the need for interior discretization.

4.2. Discretization

4.2.1. Sampling GWN Field

Approximating the boundary integral in Equation (9) using the input points {𝐩i}i=1nsuperscriptsubscriptsubscript𝐩𝑖𝑖1𝑛\{\mathbf{p}_{i}\}_{i=1}^{n}{ bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT yields

f(𝐧)i=1nai(w(𝐩i)w+(𝐩i))𝐧w(𝐩i).𝑓𝐧superscriptsubscript𝑖1𝑛subscript𝑎𝑖superscript𝑤subscript𝐩𝑖superscript𝑤subscript𝐩𝑖subscript𝐧superscript𝑤subscript𝐩𝑖f(\mathbf{n})\approx\sum\limits_{i=1}^{n}a_{i}\left(w^{-}(\mathbf{p}_{i})-w^{+% }(\mathbf{p}_{i})\right)\nabla_{\mathbf{n}}w^{-}(\mathbf{p}_{i}).italic_f ( bold_n ) ≈ ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT italic_a start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_w start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) - italic_w start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ) ∇ start_POSTSUBSCRIPT bold_n end_POSTSUBSCRIPT italic_w start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) .

Given that w𝑤witalic_w and its gradient can be analytically computed using Equation (6), the primary task is to discretize w(𝐩i)superscript𝑤subscript𝐩𝑖w^{-}(\mathbf{p}_{i})italic_w start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) and w+(𝐩i)superscript𝑤subscript𝐩𝑖w^{+}(\mathbf{p}_{i})italic_w start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ). In our approach, the discretization involves identifying two distinct points 𝐩i+subscriptsuperscript𝐩𝑖\mathbf{p}^{+}_{i}bold_p start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT and 𝐩isubscriptsuperscript𝐩𝑖\mathbf{p}^{-}_{i}bold_p start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT for each input point 𝐩isubscript𝐩𝑖\mathbf{p}_{i}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT. These points are strategically positioned such that 𝐩i+subscriptsuperscript𝐩𝑖\mathbf{p}^{+}_{i}bold_p start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT is located outside ΩΩ\Omegaroman_Ω and 𝐩isubscriptsuperscript𝐩𝑖\mathbf{p}^{-}_{i}bold_p start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT inside ΩΩ\Omegaroman_Ω. This arrangement ensures that the approximations w+(𝐩i)w(𝐩i+)superscript𝑤subscript𝐩𝑖𝑤superscriptsubscript𝐩𝑖w^{+}(\mathbf{p}_{i})\approx w(\mathbf{p}_{i}^{+})italic_w start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ≈ italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) and w(𝐩i)w(𝐩i)superscript𝑤subscript𝐩𝑖𝑤superscriptsubscript𝐩𝑖w^{-}(\mathbf{p}_{i})\approx w(\mathbf{p}_{i}^{-})italic_w start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ≈ italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ) hold true.

Refer to caption
Refer to caption

(a) Normal displacement (b) Voronoi diagram

Figure 1. Illustration of GWN sampling strategies. Input points are represented as large grey circles, with Voronoi vertices shown as small yellow circles. The interior ΩsuperscriptΩ\Omega^{-}roman_Ω start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT is shaded blue and the exterior is in gray. A representative point 𝐩isubscript𝐩𝑖\mathbf{p}_{i}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT is highlighted in black, with its associated samples 𝐩i+superscriptsubscript𝐩𝑖\mathbf{p}_{i}^{+}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT and 𝐩isuperscriptsubscript𝐩𝑖\mathbf{p}_{i}^{-}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT shown as red and blue triangles, respectively. (a) The normal displacement strategy, though straightforward and easy to implement, is ineffective for models with thin structures. In this example, it positions both 𝐩i+(=𝐩i+𝐧i)annotatedsuperscriptsubscript𝐩𝑖absentsubscript𝐩𝑖subscript𝐧𝑖\mathbf{p}_{i}^{+}~{}(=\mathbf{p}_{i}+\mathbf{n}_{i})bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ( = bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT + bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) and 𝐩i(=𝐩i𝐧i)annotatedsuperscriptsubscript𝐩𝑖absentsubscript𝐩𝑖subscript𝐧𝑖\mathbf{p}_{i}^{-}~{}(=\mathbf{p}_{i}-\mathbf{n}_{i})bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ( = bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) on the same side of the target surface (specifically, both inside the surface). (b) Using Voronoi diagrams, we identify 𝐩i±superscriptsubscript𝐩𝑖plus-or-minus\mathbf{p}_{i}^{\pm}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT by selecting two Voronoi vertices associated with 𝐩isubscript𝐩𝑖\mathbf{p}_{i}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT that best align with the current normal 𝐧isubscript𝐧𝑖\mathbf{n}_{i}bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT. This approach ensures that for the majority of the input points, their chosen 𝐩±superscript𝐩plus-or-minus\mathbf{p}^{\pm}bold_p start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT are consistently positioned on opposite sides of ΩΩ\partial\Omega∂ roman_Ω, thereby providing a reliable sampling of the GWN field around the target surface.

A straightforward approach for identifying 𝐩i±superscriptsubscript𝐩𝑖plus-or-minus\mathbf{p}_{i}^{\pm}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT is to set 𝐩i±=𝐩i±ϵ𝐧isuperscriptsubscript𝐩𝑖plus-or-minusplus-or-minussubscript𝐩𝑖italic-ϵsuperscriptsubscript𝐧𝑖\mathbf{p}_{i}^{\pm}=\mathbf{p}_{i}\pm\epsilon\mathbf{n}_{i}^{{}^{\prime}}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT = bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ± italic_ϵ bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT start_FLOATSUPERSCRIPT ′ end_FLOATSUPERSCRIPT end_POSTSUPERSCRIPT, where 𝐧isuperscriptsubscript𝐧𝑖\mathbf{n}_{i}^{{}^{\prime}}bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT start_FLOATSUPERSCRIPT ′ end_FLOATSUPERSCRIPT end_POSTSUPERSCRIPT denotes the current estimate of the normal and ϵ(>0)annotateditalic-ϵabsent0\epsilon~{}(>0)italic_ϵ ( > 0 ) is a predetermined value. However, this strategy does not reliably ensure that 𝐩isuperscriptsubscript𝐩𝑖\mathbf{p}_{i}^{-}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT and 𝐩i+superscriptsubscript𝐩𝑖\mathbf{p}_{i}^{+}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT are located inside and outside the surface, respectively, especially in cases involving complex geometries and thin structures (see Figure 1 (a)).

To avoid these issues, we opt for Voronoi vertices to discretize 𝐩±superscript𝐩plus-or-minus\mathbf{p}^{\pm}bold_p start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT. Given that many Voronoi cells are infinite, we truncate them using an enlarged bounding box of the input point cloud 𝒫𝒫\mathcal{P}caligraphic_P. Both the Voronoi vertices and the vertices along the clipped boundary are considered as potential candidates for 𝐩±superscript𝐩plus-or-minus\mathbf{p}^{\pm}bold_p start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT. This strategy is supported by two key observations: Firstly, most Voronoi vertices, although not necessarily far away from the point cloud222As pointed out in Amenta et al. (1998), in two dimensions, the Voronoi vertices of a dense set of sample points on a curve approximate the medial axis of the curve. However, this is not necessarily true in three dimensions., tend to be on opposite sides of the target surface in practice, thereby providing suitable candidate positions for 𝐩±superscript𝐩plus-or-minus\mathbf{p}^{\pm}bold_p start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT. Secondly, as demonstrated in (Xu et al., 2023), Voronoi vertices exhibit considerable robustness against noise so that we can use them to distinguish interior and exterior. Computational results further confirm that for models with low levels noise, employing Voronoi vertices yields a reliable sampling of the GWN field around the surface. For a more detailed discussion, refer to the supplementary material. In our implementation, for each 𝐩isubscript𝐩𝑖\mathbf{p}_{i}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, we identify 𝐩i+superscriptsubscript𝐩𝑖\mathbf{p}_{i}^{+}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT and 𝐩isuperscriptsubscript𝐩𝑖\mathbf{p}_{i}^{-}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT as the two Voronoi vertices of the Voronoi cell associated with 𝐩isubscript𝐩𝑖\mathbf{p}_{i}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT that best align with the current normal 𝐧isubscript𝐧𝑖\mathbf{n}_{i}bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT (see Figure 1 (b)).

Remark 2

At the beginning of the optimization process with randomly initialized normals, some points 𝐩isubscript𝐩𝑖\mathbf{p}_{i}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT may experience inside-out flipping, where 𝐩i+superscriptsubscript𝐩𝑖\mathbf{p}_{i}^{+}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT is positioned inside and 𝐩isuperscriptsubscript𝐩𝑖\mathbf{p}_{i}^{-}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT outside. This inside-out configuration does not hinder our boundary energy maximization, as the samples 𝐩i+superscriptsubscript𝐩𝑖\mathbf{p}_{i}^{+}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT and 𝐩isuperscriptsubscript𝐩𝑖\mathbf{p}_{i}^{-}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT still remain on opposite sides of the target surface. Computational results show that the energy maximization process effectively reduces the frequency of such inside-out cases. For example, on the Bunny model, after 10 iterations, all 𝐩i+superscriptsubscript𝐩𝑖\mathbf{p}_{i}^{+}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT are consistently positioned outside and all 𝐩isuperscriptsubscript𝐩𝑖\mathbf{p}_{i}^{-}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT inside. See Figure 4 in the supplementary material.

4.2.2. Energy Maximization

Using the Voronoi vertices to sample the GWN field around ΩΩ\partial\Omega∂ roman_Ω, we can express the maximization problem in Equation (9) as:

maxi=1nai(w(𝐩i)w(𝐩i+))𝐧iw(𝐩i)superscriptsubscript𝑖1𝑛subscript𝑎𝑖𝑤superscriptsubscript𝐩𝑖𝑤superscriptsubscript𝐩𝑖subscriptsubscript𝐧𝑖𝑤subscript𝐩𝑖\max\sum\limits_{i=1}^{n}a_{i}\left(w(\mathbf{p}_{i}^{-})-w(\mathbf{p}_{i}^{+}% )\right)\nabla_{\mathbf{n}_{i}}w(\mathbf{p}_{i})roman_max ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT italic_a start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ) - italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) ) ∇ start_POSTSUBSCRIPT bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT )
Refer to caption

¡5¿102superscript10210^{2}10 start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT-101
𝐧𝐧\mathbf{n}bold_nw2superscriptnorm𝑤2\|\nabla w\|^{2}∥ ∇ italic_w ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPTw𝑤witalic_w

Figure 2. Visualization of the GWN field w𝑤witalic_w and its gradient w2superscriptnorm𝑤2\|\nabla w\|^{2}∥ ∇ italic_w ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT for globally consistent normals (top) and random normals (bottom). The decomposed boundary energies f(𝐧n)𝑓subscript𝐧𝑛f(\mathbf{n}_{n})italic_f ( bold_n start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) and f(𝐧t)𝑓subscript𝐧𝑡f(\mathbf{n}_{t})italic_f ( bold_n start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) are (167.53, -3.21×1015absentsuperscript1015\times 10^{-15}× 10 start_POSTSUPERSCRIPT - 15 end_POSTSUPERSCRIPT) and (4.77×1064.77superscript1064.77\times 10^{-6}4.77 × 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT, 2.11×1052.11superscript1052.11\times 10^{-5}2.11 × 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT), respectively.

Directly maximizing the above boundary energy often results in normals that, while perpendicular to the boundary surface, are not globally consistent. The inconsistency is mainly due to ambiguities associated with the jump boundary conditions. Figure 3 shows two common types of ambiguities encountered in 3D space: Case 1, where w+=1superscript𝑤1w^{+}=-1italic_w start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT = - 1 and w=0superscript𝑤0w^{-}=0italic_w start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT = 0, and Case 2, where w+=1superscript𝑤1w^{+}=1italic_w start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT = 1 and w=2superscript𝑤2w^{-}=2italic_w start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT = 2. A direct approach to resolving the ambiguity in jump boundary conditions involves constraining the winding numbers to fall within the range of 0 and 1, that is:

0w(𝐩i±)1,i=1,2,,n.formulae-sequence0𝑤superscriptsubscript𝐩𝑖plus-or-minus1𝑖12𝑛0\leq w(\mathbf{p}_{i}^{\pm})\leq 1,\quad i=1,2,\ldots,n.0 ≤ italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT ) ≤ 1 , italic_i = 1 , 2 , … , italic_n .
  Input: Point cloud 𝒫={𝐩i}i=1n𝒫superscriptsubscriptsubscript𝐩𝑖𝑖1𝑛\mathcal{P}=\{\mathbf{p}_{i}\}_{i=1}^{n}caligraphic_P = { bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT   Output: Globally consistent outward unit normal for each point   Compute the 3D Voronoi diagram with {𝐩i}subscript𝐩𝑖\{\mathbf{p}_{i}\}{ bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } as seeds   for each point 𝐩i𝒫subscript𝐩𝑖𝒫\mathbf{p}_{i}\in\mathcal{P}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ∈ caligraphic_P do      Assign a random normal 𝐧i=(cosuisinvi,sinuisinvi,cosvi)Tsubscript𝐧𝑖superscriptsubscript𝑢𝑖subscript𝑣𝑖subscript𝑢𝑖subscript𝑣𝑖subscript𝑣𝑖𝑇\mathbf{n}_{i}=(\cos u_{i}\sin v_{i},\sin u_{i}\sin v_{i},\cos v_{i})^{T}bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = ( roman_cos italic_u start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT roman_sin italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , roman_sin italic_u start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT roman_sin italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , roman_cos italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT      Calculate the geodesic Voronoi area aisubscript𝑎𝑖a_{i}italic_a start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT      Collect the Voronoi vertices {𝐪ik}k=1misuperscriptsubscriptsuperscriptsubscript𝐪𝑖𝑘𝑘1subscript𝑚𝑖\{\mathbf{q}_{i}^{k}\}_{k=1}^{m_{i}}{ bold_q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT } start_POSTSUBSCRIPT italic_k = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_m start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUPERSCRIPT   end for   while the L-BFGS solver does not converge do      for each point 𝐩i𝒫subscript𝐩𝑖𝒫\mathbf{p}_{i}\in\mathcal{P}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ∈ caligraphic_P do         Identify 𝐩i+=argmin{𝐪ik}(𝐪ik𝐩i,𝐧i)superscriptsubscript𝐩𝑖subscriptsuperscriptsubscript𝐪𝑖𝑘superscriptsubscript𝐪𝑖𝑘subscript𝐩𝑖superscriptsubscript𝐧𝑖\mathbf{p}_{i}^{+}=\arg\min\limits_{\{\mathbf{q}_{i}^{k}\}}\angle(\mathbf{q}_{% i}^{k}-\mathbf{p}_{i},\mathbf{n}_{i}^{{}^{\prime}})bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT = roman_arg roman_min start_POSTSUBSCRIPT { bold_q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT } end_POSTSUBSCRIPT ∠ ( bold_q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT - bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT start_FLOATSUPERSCRIPT ′ end_FLOATSUPERSCRIPT end_POSTSUPERSCRIPT )         Identify 𝐩i=argmax{𝐪ik}(𝐪ik𝐩i,𝐧i)superscriptsubscript𝐩𝑖subscriptsuperscriptsubscript𝐪𝑖𝑘superscriptsubscript𝐪𝑖𝑘subscript𝐩𝑖superscriptsubscript𝐧𝑖\mathbf{p}_{i}^{-}=\arg\max\limits_{\{\mathbf{q}_{i}^{k}\}}\angle(\mathbf{q}_{% i}^{k}-\mathbf{p}_{i},\mathbf{n}_{i}^{{}^{\prime}})bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT = roman_arg roman_max start_POSTSUBSCRIPT { bold_q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT } end_POSTSUBSCRIPT ∠ ( bold_q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT - bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT start_FLOATSUPERSCRIPT ′ end_FLOATSUPERSCRIPT end_POSTSUPERSCRIPT )         Calculate w(𝐩i+)𝑤superscriptsubscript𝐩𝑖w(\mathbf{p}_{i}^{+})italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) and w(𝐩i)𝑤superscriptsubscript𝐩𝑖w(\mathbf{p}_{i}^{-})italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ) as in Equation (6)         Calculate w(𝐩i)=j=1,jinaiP(𝐩i,𝐩j)𝑤subscript𝐩𝑖superscriptsubscriptformulae-sequence𝑗1𝑗𝑖𝑛subscript𝑎𝑖𝑃subscript𝐩𝑖subscript𝐩𝑗\nabla w(\mathbf{p}_{i})=\sum\limits_{j=1,j\neq i}^{n}a_{i}\nabla P(\mathbf{p}% _{i},\mathbf{p}_{j})∇ italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) = ∑ start_POSTSUBSCRIPT italic_j = 1 , italic_j ≠ italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT italic_a start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ∇ italic_P ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , bold_p start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT )      end for      Calculate the boundary energy as in Equation (10) and its gradient      Update {ui,vi}i=1nsuperscriptsubscriptsubscript𝑢𝑖subscript𝑣𝑖𝑖1𝑛\{u_{i},v_{i}\}_{i=1}^{n}{ italic_u start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT using the L-BFGS solver   end while
Algorithm 1 Globally consistent point orientation via optimizing the boundary energy of GWN

However, this method introduces 2n2𝑛2n2 italic_n inequality constraints, significantly increasing the complexity of the optimization problem. Instead, we propose not to directly restrict the value of w𝑤witalic_w using the above inequality constraints. Instead, we 1) replace the GWN difference ww+superscript𝑤superscript𝑤w^{-}-w^{+}italic_w start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT - italic_w start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT in Equation (9) with |w||w+|superscript𝑤superscript𝑤|w^{-}|-|w^{+}|| italic_w start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT | - | italic_w start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT |, which encourages w0𝑤0w\geq 0italic_w ≥ 0, thereby penalizing Case 1; and 2) add an additional term

g(w(𝐩i±))=(1emax{w(𝐩i+),1})+(1emax{w(𝐩i),1}),𝑔𝑤superscriptsubscript𝐩𝑖plus-or-minus1superscript𝑒𝑤superscriptsubscript𝐩𝑖11superscript𝑒𝑤superscriptsubscript𝐩𝑖1g\left(w(\mathbf{p}_{i}^{\pm})\right)=\left(1-e^{\max\{w(\mathbf{p}_{i}^{+}),1% \}}\right)+\left(1-e^{\max\{w(\mathbf{p}_{i}^{-}),1\}}\right),italic_g ( italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT ) ) = ( 1 - italic_e start_POSTSUPERSCRIPT roman_max { italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) , 1 } end_POSTSUPERSCRIPT ) + ( 1 - italic_e start_POSTSUPERSCRIPT roman_max { italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ) , 1 } end_POSTSUPERSCRIPT ) ,

which encourages w1𝑤1w\leq 1italic_w ≤ 1, thereby penalizing Case 2. With these changes, the final energy becomes an unconstrained optimization problem:

(10) maxi=1nai(|w(𝐩i)||w(𝐩i+)|)𝐧iw(𝐩i)+g(w(𝐩i±)).superscriptsubscript𝑖1𝑛subscript𝑎𝑖𝑤superscriptsubscript𝐩𝑖𝑤superscriptsubscript𝐩𝑖subscriptsubscript𝐧𝑖𝑤subscript𝐩𝑖𝑔𝑤superscriptsubscript𝐩𝑖plus-or-minus\max\sum\limits_{i=1}^{n}a_{i}\left(|w(\mathbf{p}_{i}^{-})|-|w(\mathbf{p}_{i}^% {+})|\right)\nabla_{\mathbf{n}_{i}}w(\mathbf{p}_{i})+g\left(w(\mathbf{p}_{i}^{% \pm})\right).roman_max ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT italic_a start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( | italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ) | - | italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) | ) ∇ start_POSTSUBSCRIPT bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) + italic_g ( italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT ) ) .

We solve this optimization using the L-BFGS solver333https://github.com/yixuan/LBFGSpp. During each iteration, we examine the current normal 𝐧isubscript𝐧𝑖\mathbf{n}_{i}bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT. Through a linear scan, we determine 𝐩i+superscriptsubscript𝐩𝑖\mathbf{p}_{i}^{+}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT and 𝐩isuperscriptsubscript𝐩𝑖\mathbf{p}_{i}^{-}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT, which correspond to the Voronoi vertices forming the smallest and largest angles, respectively, with 𝐧isubscript𝐧𝑖\mathbf{n}_{i}bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT. To force the normals to be unit length, we parameterize each normal as 𝐧i=(cosuisinvi,sinuisinvi,cosvi)Tsubscript𝐧𝑖superscriptsubscript𝑢𝑖subscript𝑣𝑖subscript𝑢𝑖subscript𝑣𝑖subscript𝑣𝑖𝑇\mathbf{n}_{i}=(\cos u_{i}\sin v_{i},\sin u_{i}\sin v_{i},\cos v_{i})^{T}bold_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = ( roman_cos italic_u start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT roman_sin italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , roman_sin italic_u start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT roman_sin italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , roman_cos italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT, where uisubscript𝑢𝑖u_{i}italic_u start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT and visubscript𝑣𝑖v_{i}italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT serve as the variables in the objective function Equation (10).

Remark 3

Our Voronoi diagram strategy does not guarantee that the selected 𝐩±superscript𝐩plus-or-minus\mathbf{p}^{\pm}bold_p start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT will always be on opposite sides of the target surface, experimental results suggest that most input points do not face the issue of 𝐩±superscript𝐩plus-or-minus\mathbf{p}^{\pm}bold_p start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT being on the same side. In the rare occasions when 𝐩i+superscriptsubscript𝐩𝑖\mathbf{p}_{i}^{+}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT and 𝐩isuperscriptsubscript𝐩𝑖\mathbf{p}_{i}^{-}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT do end up on the same side, our optimization method effectively addresses these instances by penalizing them. Specifically, when 𝐩i+superscriptsubscript𝐩𝑖\mathbf{p}_{i}^{+}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT and 𝐩isuperscriptsubscript𝐩𝑖\mathbf{p}_{i}^{-}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT are on the same side, the value of |w(𝐩i)||w(𝐩i+)|𝑤superscriptsubscript𝐩𝑖𝑤superscriptsubscript𝐩𝑖|w(\mathbf{p}_{i}^{-})|-|w(\mathbf{p}_{i}^{+})|| italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ) | - | italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) | reduces, leading to lower energy. Our objective is to maximize boundary energy, and with the normals updated, it is unlikely that these same-side samplings will recur in subsequent iterations.

Refer to caption

10-1Case 1210Case 2

Figure 3. The ambiguities of jump boundary conditions in Case 1 and Case 2. For each case, we plot the boundary energy (BE) and the Dirichlet energy (DE) with and without the constraints 0w10𝑤10\leq w\leq 10 ≤ italic_w ≤ 1. By restricting the range of the winding numbers, DE and BE converge when the associated normals are globally consistent. We also visualize the GWN field using cut views and indicate the normals for the cross sections.
Remark 4

In our current implementation, we calculate w𝑤\nabla w∇ italic_w and w𝑤witalic_w in a brute-force manner. Let n𝑛nitalic_n be the number of input points in 𝒫𝒫\mathcal{P}caligraphic_P and m𝑚mitalic_m represent the number of Voronoi vertices. Each iteration begins with an O(n+m)𝑂𝑛𝑚O(n+m)italic_O ( italic_n + italic_m ) traversal of Voronoi vertices to identify all 𝐩±superscript𝐩plus-or-minus\mathbf{p}^{\pm}bold_p start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPTs. Subsequently, for each input point, computing w𝑤\nabla w∇ italic_w and w𝑤witalic_w via the Poisson kernel requires O(n)𝑂𝑛O(n)italic_O ( italic_n ) time. Therefore, the computational cost per iteration is O(n2+n+m)𝑂superscript𝑛2𝑛𝑚O(n^{2}+n+m)italic_O ( italic_n start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_n + italic_m ). To enhance runtime efficiency, one possible strategy is to accelerate the computation using the fast multipole method (Greengard and Rokhlin, 1987). This enables querying neighboring points in O(logn)𝑂𝑛O(\log n)italic_O ( roman_log italic_n ) time, potentially reducing the overall time complexity per iteration to O(nlogn)𝑂𝑛𝑛O(n\log n)italic_O ( italic_n roman_log italic_n ).

Refer to caption

point cloud𝐩superscript𝐩\mathbf{p}^{-}bold_p start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT𝐩+superscript𝐩\mathbf{p}^{+}bold_p start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPThighlighted ptslink to 𝐩+superscript𝐩\mathbf{p}^{+}bold_p start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPTlink to 𝐩superscript𝐩\mathbf{p}^{-}bold_p start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPTnormalsInitialization2 iters4 iters14 iters20 iters01

Figure 4. Illustration of our algorithm on a 2D toy model. In different iterations, we visualize the normals, 𝐩+superscript𝐩\mathbf{p}^{+}bold_p start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT, 𝐩superscript𝐩\mathbf{p}^{-}bold_p start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT (row 1), winding number field (row 2), w(𝐩+)𝑤superscript𝐩w(\mathbf{p}^{+})italic_w ( bold_p start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) and w(𝐩)𝑤superscript𝐩w(\mathbf{p}^{-})italic_w ( bold_p start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ) (row 3). We highlight the regions with significant variations in normals between adjacent iterations using gray lines and red points.

4.3. Contrasting Our Method with Previous Approaches

Our method, while sharing similarities with the works of Takayama et al. (2014), PGR (Lin et al., 2022), and GCNO (Xu et al., 2023), particularly in their use of the generalized winding number field, diverges significantly in several key aspects.

Ours vs. Takayama et al. (2014).’s method

Although both methods aim at optimizing objective functions that are related to to the Dirichlet energy, there are two key differences that set our approach apart: 1) Takayama et al. primarily addressed scenarios where point normals are perpendicular to the boundary surface yet inconsistent. In such cases, we observe a significant increase in boundary energy (Figure 2). However, when normals are initialized randomly, the boundary energy tends to diminish to nearly zero, indicating a fundamental difference in the objective functions. 2) Their approach relies on a brute-force solver, exhaustively searching for the optimal normal configuration. As a result, its applicability is confined to small and simple models. In contrast, our method utilizes an L-BFGS solver.

Ours vs. GCNO (Xu et al., 2023)

Our approach fundamentally differs from GCNO in terms of methodology, discretization techniques and time complexity. 1) Methodology: Unlike GCNO, which regularizes the GWN of Voronoi vertices to exact values of 0 and 1, our method focuses on the boundary energy by evaluating the GWN difference |w(𝐩i)||w(𝐩i+)|𝑤superscriptsubscript𝐩𝑖𝑤superscriptsubscript𝐩𝑖|w(\mathbf{p}_{i}^{-})|-|w(\mathbf{p}_{i}^{+})|| italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ) | - | italic_w ( bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT + end_POSTSUPERSCRIPT ) | and the GWN gradient. This strategy does not depend on precise GWN values, offering a more flexible approach. 2) Discretization: GCNO assumes a uniform distribution of Voronoi vertices both inside and outside the object—an assumption that is less reliable for models with complex geometries. Figure 9 shows an example where GCNO is unable to optimize its objective function when the assumption does not hold. Our method, by contrast, does not rely on such an assumption, making it adaptable to a broader range of 3D models. 3) Time complexity: GCNO requires computing w𝑤witalic_w for all Voronoi vertices associated with each point in the input point cloud. Our method, however, requires computing w𝑤\nabla w∇ italic_w for 𝐩𝐩\mathbf{p}bold_p and w𝑤witalic_w for two specific points, 𝐩±superscript𝐩plus-or-minus\mathbf{p}^{\pm}bold_p start_POSTSUPERSCRIPT ± end_POSTSUPERSCRIPT, within the Voronoi cell. This leads to significantly lower computational demands in comparison to GCNO. Specifically, GCNO has a time complexity O(nm)𝑂𝑛𝑚O(nm)italic_O ( italic_n italic_m ) for each iteration, while ours is O(n2+n+m)𝑂superscript𝑛2𝑛𝑚O(n^{2}+n+m)italic_O ( italic_n start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_n + italic_m ) per iteration. Given that the number of input points n𝑛nitalic_n is typically much lower than the number of Voronoi vertices m𝑚mitalic_m (nmmuch-less-than𝑛𝑚n\ll mitalic_n ≪ italic_m), as exemplified by the Bunny model (n=8,830𝑛8830n=8,830italic_n = 8 , 830, m=224,085𝑚224085m=224,085italic_m = 224 , 085), our method outperforms GCNO in terms of scalability and runtime performance. Experimental results indicate that GCNO is suited for models with up to 10K points, typically generating within an hour. However, for larger models containing 40K points, GCNO fails to complete within 24 hours. In contrast, our method can deliver results in just three hours. See the supplementary material for the details of the scalability test.

Ours vs. PGR (Lin et al., 2022)

PGR focuses on regularizing the GWN directly at the input points. In the context of noisy point clouds, achieving a GWN value of exactly 0.5 for these points is challenging. Unlike PGR, our method does not constrain GWN values. Instead we regularize the differences and gradients of the GWN both inside and outside of the input model, significantly enhancing our method’s robustness to noise. Furthermore, PGR requires solving a dense linear system, restricting its applicability to small models. In contrast, our method employs an L-BFGS solver to optimize the boundary energy, offering a solution that is both fast and memory-efficient.

Models (# points, Fig.) DipolesuperscriptDipole\text{Dipole}^{*}Dipole start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT PGRsuperscriptPGR\text{PGR}^{*}PGR start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT iPSR NeuralGFsuperscriptNeuralGF\text{NeuralGF}^{*}NeuralGF start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT GCNO Ours
BS (4000, supp.) 4.5/5.7/0.17/28/2.0 17/21/0.12/2.0/0.50 3.7/4.5/0.11/9.7/0.094 5.1/6.0/0.15/640/1.9 8.1/9.9/0.21/810/0.067 3.6/4.3/0.11/95/0.075
Bird (8187, Fig. 10) 12/37/1.7/50/1.9 7.4/11/0.063/8.1/0.80 2.2/5.1/0.065/14/0.10 5.2/8.8/0.069/640/1.9 89/98/28/2800/0.14 2.0/3.4/0.060/360/0.084
linkCupTop (8602, Fig. 10) 89/120/3.6/60/2.2 23/28/0.27/6.7/0.85 24/28/0.20/25/0.11 87/110/3.4/640/1.9 89/110/3.3/2200/0.14 12/15/0.19/400/0.091
BunnyPeel (8648, Fig. 6) 51/82/25/53/2.0 22/26/0.099/10/0.85 12/17/0.099/18/0.10 48/70/11/640/1.9 45/63/36/2400/0.14 7.2/12/0.094/400/0.092
Horse (8657, supp.) 8.2/23/0.11/51/2.4 13/17/0.065/7.1/0.85 3.1/5.0/0.070/14/0.10 6.6/9.5/0.065/640/1.9 8.2/9.9/0.072/2500/0.14 2.9/4.2/0.065/400/0.085
397horse (8784, supp.) 8.9/28/0.19/50/2.4 15/21/0.066/7.0/0.86 3.1/5.0/0.063/15/0.10 8.1/17/0.45/640/1.9 8.2/9.9/0.064/2700/0.14 2.9/4.2/0.062/400/0.086
Bunny (8830, supp.) 6.7/9.2/0.13/62/2.1 15/20/0.14/7.3/0.86 4.9/6.9/0.11/13/0.11 5.4/6.6/0.17/640/1.9 8.9/11/0.16/2700/0.14 3.1/4.1/0.12/410/0.094
Cup (10130, supp.) 4.4/19/0.14/60/2.0 11/14/0.13/9.7/1.0 1.5/2.5/0.15/11/0.11 3.9/4.5/0.13/640/1.9 7.4/9.5/0.13/3700/0.16 1.7/2.2/0.13/550/0.088
Botijo (11305, supp.) 14/37/0.23/63/2.4 16/20/0.080/13/1.1 3.0/4.9/0.077/15/0.12 15/38/2.3/640/1.9 35/64/54/4100/0.19 2.6/3.7/0.077/660/0.086
30cup (11311, supp.) 4.4/15/0.090/65/2.4 14/16/0.091/14/1.1 1.7/3.1/0.093/13/0.12 32/64/97/640/1.9 9.2/11/0.097/4400/0.17 2.1/3.0/0.086/670/0.095
Candle (12221, Fig. 6) 65/93/1.12/67/2.4 42/53/0.97/18/1.2 18/25/0.099/34/0.14 30/48/11/640/1.9 50/72/36/7900/0.20 14/26/0.094/790/0.089
Elk (12541, Fig. 6) 17/48/7.8/77/2.1 19/30/0.17/22/1.3 3.0/6.8/0.12/18/0.12 17/43/5.9/640/1.9 48/83/20/7400/0.20 2.9/4.6/0.11/1000/0.10
Lion (13138, Fig. 6) 14/28/0.57/71/3.2 21/28/0.061/16/1.4 9.1/14/0.068/14/0.11 12/17/0.068/640/1.9 19/31/0.20/5100/0.21 6.5/11/0.057/900/0.086
Vase (13375, Fig. 10) 50/84/8.5/81/2.5 26/33/0.26/18/1.4 12/16/0.23/39/0.13 77/104/5.3/640/1.9 88/114/11/6200/0.21 5.8/8.1/0.23/920/0.099
Fertility (13802, supp.) 52/94/120/76/3.2 15/20/0.073/20/1.5 2.3/4.0/0.10/19/0.14 5.0/6.3/0.081/640/1.9 8.0/11/0.091/10000/0.22 2.2/3.2/0.075/970/0.088
Fandisk (13854, supp.) 4.7/9.9/0.13/79/2.2 18/25/0.12/22/1.5 2.6/5.3/0.12/17/0.16 4.6/6.0/0.18/640/1.9 9.5/12/0.11/5500/0.20 2.8/4.3/0.11/990/0.092
Felinei (15057, supp.) 36/72/25/81/3.0 19/24/0.092/23/1.6 5.7/10/0.088/18/0.11 30/57/16/640/1.9 89/97/17/8500/0.24 4.1/7.2/0.084/1200/0.092
Pulley (16116, supp.) 13/31/0.12/86/3.1 26/33/0.092/23/1.8 5.0/7.5/0.14/16/0.16 12/17/0.090/640/1.9 7.4/8.8/0.12/12000/0.22 3.8/5.3/0.083/1300/0.092
Average 25/46/11/64/2.4 19/25/0.16/14/1.1 6.5/9.5/0.11/18/0.12 22/35/8.0/640/1.9 35/46/9.5/5100/0.17 4.6/7.0/0.11/690/0.090
Table 1. Quantitative results on clean point clouds. We present five metrics: mean and standard deviation of angular discrepancies (degree), CD (103superscript10310^{-3}10 start_POSTSUPERSCRIPT - 3 end_POSTSUPERSCRIPT), runtime (seconds), and GPU or CPU memory utilization (MB). * indicates GPU-based. The best results are emphasized in bold. See results on noisy point clouds in the supplementary material.
Refer to caption
Figure 5. Reconstruction results for the 18 test models.

5. Experimental Results

Experimental setup

We perform our experiments on a PC equipped with an i7-12700H CPU and 16GB of RAM. The GPU-based approaches (Lin et al., 2022; Metzer et al., 2021; Li et al., 2023b) were executed on a single RTX 3090. We evaluate our method using 18 models, with diverse geometry and topology (see Figure 5). All point clouds are uniformly scaled to fit within the cube [1,1]3superscript113[-1,1]^{3}[ - 1 , 1 ] start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT. Noise was synthetically generated using a standard Gaussian distribution with μ=0.0𝜇0.0\mu=0.0italic_μ = 0.0 and σ2=1.0superscript𝜎21.0\sigma^{2}=1.0italic_σ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT = 1.0, introducing random displacements to each point. We modulate the noise intensity to 0.5% and 0.75% of the diagonal length of the bounding box. Our method involves a single parameter: the neighborhood size, which is used for approximating the Voronoi area, aisubscript𝑎𝑖a_{i}italic_a start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, in the discretization of the GWN. Despite the diversity in model geometries, we use a neighborhood size of 15 across all tests. We use the L-BFGS solver for optimizing the unconstrained boundary energy. After establishing the point orientations, we use screened Poisson surface reconstruction (Kazhdan and Hoppe, 2013) on the oriented point clouds, generating watertight surfaces. We compare our method with five state-of-the-art approaches GCNO (Xu et al., 2023), Dipole (Metzer et al., 2021), PGR (Lin et al., 2022), NeuralGF (Li et al., 2023b), and iPSR (Hou et al., 2022), utilizing the official implementations provided by the authors along with their default parameter settings. We assess the quality of orientation and reconstruction by analyzing the angular discrepancy between the predicted normals and the ground-truth normals, along with the Chamfer Distance (CD), which measures the closeness between the ground-truth surface and the reconstructed surface. To quantitatively describe this distribution, we report the mean μ𝜇\muitalic_μ and the standard deviation σ𝜎\sigmaitalic_σ of the angle differences in degree. The smaller the metrics, the higher the consistency of the predicted normals. We also document the running time and the peak memory consumption for computational efficiency.

Orientation & reconstruction results

We present the performance of various methods across 18 noise-free models in Table 1, and provide results under noisy conditions in the supplementary material. In the noise-free scenarios, our method achieves the best scores in μ𝜇\muitalic_μ, σ𝜎\sigmaitalic_σ and CD for 83%, 88%, and 88% of the models, respectively. Our method demonstrates resilience to low level noise, as it is a global method that can capture the normal consistency from a global perspective. See Figures 6 and 7 for the comparison of the reconstructions. Our method is particularly effective in processing models characterized by complex topology and thin structures, areas where competing methods frequently encounter difficulties.

Runtime

As analyzed in Section 4.2, our method’s time complexity is O(n2+n+m)𝑂superscript𝑛2𝑛𝑚O(n^{2}+n+m)italic_O ( italic_n start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_n + italic_m ) per iteration. Typically, m𝑚mitalic_m increases linearly with n𝑛nitalic_n for common models. However, it is important to note that in the worst-case scenario, m𝑚mitalic_m can scale quadratically with n𝑛nitalic_n. Consequently, our method is faster than GCNO, which operates with a time complexity of O(nm)𝑂𝑛𝑚O(nm)italic_O ( italic_n italic_m ) per iteration. Computational results demonstrate that our method is 5-10 times faster than GCNO across 18 test models, with an average speed-up factor of 7.3.

Space complexity

Our algorithm has space complexity of O(n+m)𝑂𝑛𝑚O(n+m)italic_O ( italic_n + italic_m ), since it only needs to store the input point clouds and its associated Voronoi diagram. Both PGR (Lin et al., 2022) and VIPSS (Huang et al., 2019) necessitate solving dense linear systems, resulting in a space complexity of O(n2)𝑂superscript𝑛2O(n^{2})italic_O ( italic_n start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ). This quadratic space complexity constrains them to smaller-scale models, generally limited to those with up to 10K points. In contrast, our method scales up to 100K points.

Comparison with supervised methods

We also compare our method with recent supervised approaches, NGLO (Li et al., 2023b) and SHS-Net (Li et al., 2023c). NGLO operates in two stages: The initial phase, which is unsupervised, produces a set of normals. While globally consistent, these may not always be perpendicular to the surface. This is followed by a supervised module aimed at refining the normals’ accuracy. However, since the second stage is mainly aimed at fine-tuning, NGLO may face issues with normal flipping if the initial stage fails to achieve globally consistent normals. SHS-Net is an end-to-end network that extracts both local, dense features and global, sparse features from the input point cloud. It orients points by penalizing discrepancies between these features in the latent space. Utilizing both local and global features is a double-edged sword. On one hand, it renders SHS-Net highly effective for simple models, where these features can be well aligned. On the other hand, it struggles with input models characterized by complex geometry and topology, primarily due to the significant discrepancies between local and global features. In Figure 10, we compare our method to NGLO and SHS-Net for four models featuring thin structures and complex topology. To assess the robustness of these methods, we intentionally introduce noise or outliers to each test model. We observed that both NGLO and SHS-Net reconstruct the chick body well, which has a relatively simple geometry. However, they encounter difficulties with the thin structures of the chick’s feet and fail to capture the complex topology of the other three models.

Limitations

Despite the demonstrated robustness and accuracy of our method, it is important to acknowledge its current limitations. As highlighted in (Takayama et al., 2014), the Dirichlet energy of GWN only measures the magnitude of the oscillation of a function and does not explicitly indicate the inside-outside orientation on non-manifold surfaces. As the proposed boundary energy is derived from the Dirichlet energy, our method is suitable only for point clouds sampled from manifold surfaces. Another limitation is the scalability issue due to the quadratic time complexity of our method. While iPSR (Hou et al., 2022) can handle large-scale models with millions of points, our method is constrained to smaller-scale models, with around 100K points.

6. Conclusions

We introduce a new method for globally consistent orientation for point clouds. Our method initializes each point with a randomly assigned normal, and then iteratively updates its normal by maximizing the boundary energy of the generalized winding number field associated with the normals. When the algorithm terminates, we restore the harmonicity of the GWN field, whose gradients are the globally consistent orientations. Computational results show that our method is particularly effective in handling models with complex topology and thin structures, areas that existing methods have trouble with.

Acknowledgements.
We thank the reviewers for their detailed comments and constructive suggestions. Special thanks are also due to Shepherd for his/her valuable feedback, which has significantly enhanced the clarity and quality of the paper. Additionally, we are thankful to Nicholas Sharp for his open-sourced visualization software Polyscope, which facilitated the creation of the images presented in the paper. This project was partially supported by the Beijing Municipal Science and Technology Commission and Zhongguancun Science Park Management Committee (No.Z221100002722020), the National Nature Science Foundation of China (No.62072045), the Nature Science Foundation of Beijing (No.7242167), the Ministry of Education, Singapore, under its Academic Research Fund Grants (MOE-T2EP20220-0005 & RT19/22), and the RIE2020 Industry Alignment Fund–Industry Collaboration Projects (IAF-ICP) Funding Initiative, as well as cash and in-kind contribution from the industry partner(s).

References

  • (1)
  • Alliez et al. (2007) Pierre Alliez, David Cohen-Steiner, Yiying Tong, and Mathieu Desbrun. 2007. Voronoi-based variational reconstruction of unoriented point sets. In Proceedings of the Fifth Eurographics Symposium on Geometry Processing (SGP ’07). Goslar, DEU, 39–48.
  • Amenta et al. (1998) Nina Amenta, Marshall Bern, and Manolis Kamvysselis. 1998. A new Voronoi-based surface reconstruction algorithm. In Proceedings of the 25th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH ’98). Association for Computing Machinery, New York, NY, USA, 415–421. https://doi.org/10.1145/280814.280947
  • Barill et al. (2018) Gavin Barill, Neil G. Dickson, Ryan M. Schmidt, David I. W. Levin, and Alec Jacobson. 2018. Fast winding numbers for soups and clouds. ACM Trans. Graph. 37, 4 (2018).
  • Ben-Shabat et al. (2019) Yizhak Ben-Shabat, Michael Lindenbaum, and Anath Fischer. 2019. Nesti-Net: Normal Estimation for Unstructured 3D Point Clouds Using Convolutional Neural Networks. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR).
  • Boulch and Marlet (2012) Alexandre Boulch and Renaud Marlet. 2012. Fast and Robust Normal Estimation for Point Clouds with Sharp Features. Computer Graphics Forum (2012).
  • Calakli and Taubin (2011) Fatih Calakli and Gabriel Taubin. 2011. SSD: Smooth Signed Distance Surface Reconstruction. Computer Graphics Forum (2011).
  • Cazals and Pouget (2003) Frederic Cazals and Marc Pouget. 2003. Estimating Differential Quantities Using Polynomial Fitting of Osculating Jets. In Eurographics Symposium on Geometry Processing.
  • Costabel (1987) Martin Costabel. 1987. Principles of boundary element methods. Computer Physics Reports 6, 1 (1987), 243–274.
  • Feng et al. (2023) Nicole Feng, Mark Gillespie, and Keenan Crane. 2023. Winding Numbers on Discrete Surfaces. ACM Trans. Graph. 42, 4 (2023).
  • Feng et al. (2022) Wanquan Feng, Jin li, Hongrui Cai, Xiaonan Luo, and Juyong Zhang. 2022. Neural Points: Point Cloud Representation with Neural Fields for Arbitrary Upsampling. In IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).
  • Greengard and Rokhlin (1987) L Greengard and V Rokhlin. 1987. A fast algorithm for particle simulations. J. Comput. Phys. 73 (1987).
  • Guerrero et al. (2018) Paul Guerrero, Yanir Kleiman, Maks Ovsjanikov, and Niloy J. Mitra. 2018. PCPNet: Learning Local Shape Properties from Raw Point Clouds. Computer Graphics Forum 37, 2 (2018), 75–85.
  • Hoppe et al. (1992) Hugues Hoppe, Tony DeRose, Tom Duchamp, John McDonald, and Werner Stuetzle. 1992. Surface reconstruction from unorganized points. In Proceedings of SIGGRAPH ’92. 71–78.
  • Hou et al. (2020) Fei Hou, Qian Sun, Zheng Fang, Yong-Jin Liu, Shi-Min Hu, Hong Qin, Aimin Hao, and Ying He. 2020. Poisson Vector Graphics (PVG). IEEE Transactions on Visualization and Computer Graphics 26, 2 (2020), 1361–1371.
  • Hou et al. (2022) Fei Hou, Chiyu Wang, Wencheng Wang, Hong Qin, Chen Qian, and Ying He. 2022. Iterative poisson surface reconstruction (iPSR) for unoriented points. ACM Trans. Graph. 41, 4 (2022).
  • Huang et al. (2009) Hui Huang, Dan Li, Hao Zhang, Uri Ascher, and Daniel Cohen-Or. 2009. Consolidation of unorganized point clouds for surface reconstruction. ACM Trans. Graph. 28 (2009).
  • Huang et al. (2013) Hui Huang, Shihao Wu, Minglun Gong, Daniel Cohen-Or, Uri Ascher, and Hao (Richard) Zhang. 2013. Edge-aware point set resampling. ACM Trans. Graph. 32, 1 (2013).
  • Huang et al. (2019) Zhiyang Huang, Nathan Carr, and Tao Ju. 2019. Variational implicit point set surfaces. ACM Trans. Graph. 38, 4 (2019).
  • Jacobson et al. (2013) Alec Jacobson, Ladislav Kavan, and Olga Sorkine-Hornung. 2013. Robust inside-outside segmentation using generalized winding numbers. ACM Trans. Graph. 32, 4 (2013).
  • Jakob et al. (2019) Johannes Jakob, Christoph Buchenau, and Michael Guthe. 2019. Parallel Globally Consistent Normal Orientation of Raw Unorganized Point Clouds. Computer Graphics Forum 38, 5 (2019), 163–173.
  • Kazhdan et al. (2006) Michael Kazhdan, Matthew Bolitho, and Hugues Hoppe. 2006. Poisson surface reconstruction. In Proceedings of the Fourth Eurographics Symposium on Geometry Processing (SGP ’06). 61–70.
  • Kazhdan and Hoppe (2013) Michael Kazhdan and Hugues Hoppe. 2013. Screened poisson surface reconstruction. ACM Trans. Graph. 32, 3 (2013).
  • Khaloo and Lattanzi (2017) Ali Khaloo and David Lattanzi. 2017. Robust normal estimation and region growing segmentation of infrastructure 3D point cloud models. Advanced Engineering Informatics 34 (2017), 1–16.
  • König and Gumhold (2009) Sören König and Stefan Gumhold. 2009. Consistent Propagation of Normal Orientations in Point Clouds. In 14th International Workshop on Vision, Modeling, and Visualization, VMV 2009, November 16-18, 2009, Braunschweig, Germany. 83–92.
  • Leal (2007) Leslie Gary Leal. 2007. Advanced Transport Phenomena: Fluid Mechanics and Convective Transport Processes. Cambridge University Press.
  • Levin (1998) David Levin. 1998. The approximation power of moving least-squares. Math. Comput. 67, 224 (1998), 1517–1531.
  • Li et al. (2023a) Qing Li, Huifang Feng, Kanle Shi, Yi Fang, Yu-Shen Liu, and Zhizhong Han. 2023a. Neural Gradient Learning and Optimization for Oriented Point Normal Estimation. In SIGGRAPH Asia 2023 Conference Papers.
  • Li et al. (2023b) Qing Li, Huifang Feng, Kanle Shi, Yue Gao, Yi Fang, Yu-Shen Liu, and Zhizhong Han. 2023b. NeuralGF: Unsupervised Point Normal Estimation by Learning Neural Gradient Function. In Thirty-seventh Conference on Neural Information Processing Systems (NeurIPS).
  • Li et al. (2023c) Qing Li, Huifang Feng, Kanle Shi, Yue Gao, Yi Fang, Yu-Shen Liu, and Zhizhong Han. 2023c. SHS-Net: Learning Signed Hyper Surfaces for Oriented Normal Estimation of Point Clouds. In Proceedings of CVPR ’23’. 13591–13600.
  • Li et al. (2023d) Shujuan Li, Junsheng Zhou, Baorui Ma, Yu-Shen Liu, and Zhizhong Han. 2023d. NeAF: Learning Neural Angle Fields for Point Normal Estimation. In Proceedings of AAAI’23.
  • Lin et al. (2022) Siyou Lin, Dong Xiao, Zuoqiang Shi, and Bin Wang. 2022. Surface Reconstruction from Point Clouds without Normals by Parametrizing the Gauss Formula. ACM Trans. Graph. 42, 2 (2022).
  • Lu et al. (2018) Wenjia Lu, Zuoqiang Shi, Jian Sun, and Bin Wang. 2018. Surface Reconstruction Based on the Modified Gauss Formula. ACM Trans. Graph. 38, 1 (2018).
  • Lu et al. (2022) Xuequan Lu, Scott Schaefer, Jun Luo, Lizhuang Ma, and Ying He. 2022. Low Rank Matrix Approximation for 3D Geometry Filtering. IEEE Trans. Vis. Comput. Graph. 28, 4 (2022), 1835–1847.
  • Mescheder et al. (2019) Lars Mescheder, Michael Oechsle, Michael Niemeyer, Sebastian Nowozin, and Andreas Geiger. 2019. Occupancy Networks: Learning 3D Reconstruction in Function Space. In Proceedings of CVPR ’19.
  • Metzer et al. (2021) Gal Metzer, Rana Hanocka, Denis Zorin, Raja Giryes, Daniele Panozzo, and Daniel Cohen-Or. 2021. Orienting point clouds with dipole propagation. ACM Trans. Graph. 40, 4 (2021).
  • Mitra and Nguyen (2003) Niloy J. Mitra and An Thanh Nguyen. 2003. Estimating surface normals in noisy point cloud data. In Proceedings of the 19th ACM Symposium on Computational Geometry (SCG ’03). 322–328.
  • Mullen et al. (2010) Patrick Mullen, Fernando De Goes, Mathieu Desbrun, David Cohen-Steiner, and Pierre Alliez. 2010. Signing the Unsigned: Robust Surface Reconstruction from Raw Pointsets. Computer Graphics Forum 29, 5 (2010), 1733–1741.
  • Orzan et al. (2008) Alexandrina Orzan, Adrien Bousseau, Holger Winnemöller, Pascal Barla, Joëlle Thollot, and David Salesin. 2008. Diffusion curves: a vector representation for smooth-shaded images. ACM Trans. Graph. 27, 3 (2008), 1–8.
  • Pauly et al. (2003) Mark Pauly, Richard Keiser, Leif P. Kobbelt, and Markus Gross. 2003. Shape modeling with point-sampled geometry. In ACM SIGGRAPH 2003 Papers.
  • Schertler et al. (2017) Nico Schertler, Bogdan Savchynskyy, and Stefan Gumhold. 2017. Towards Globally Optimal Normal Orientations for Large Point Clouds. Computer Graphics Forum (2017).
  • Sellán and Jacobson (2022) Silvia Sellán and Alec Jacobson. 2022. Stochastic Poisson Surface Reconstruction. ACM Trans. Graph. 41, 6 (2022).
  • Sellán and Jacobson (2023) Silvia Sellán and Alec Jacobson. 2023. Neural Stochastic Poisson Surface Reconstruction.
  • Takayama et al. (2014) Kenshi Takayama, Alec Jacobson, Ladislav Kavan, and Olga Sorkine-Hornung. 2014. Consistently Orienting Facets in Polygon Meshes by Minimizing the Dirichlet Energy of Generalized Winding Numbers. CoRR abs/1406.5431 (2014). arXiv:1406.5431 http://arxiv.org/abs/1406.5431
  • Xu et al. (2023) Rui Xu, Zhiyang Dou, Ningna Wang, Shiqing Xin, Shuangmin Chen, Mingyan Jiang, Xiaohu Guo, Wenping Wang, and Changhe Tu. 2023. Globally Consistent Normal Orientation for Point Clouds by Regularizing the Winding-Number Field. ACM Trans. Graph. 42, 4 (2023).
  • Xu et al. (2022) Rui Xu, Zixiong Wang, Zhiyang Dou, Chen Zong, Shiqing Xin, Mingyan Jiang, Tao Ju, and Changhe Tu. 2022. RFEPS: Reconstructing Feature-line Equipped Polygonal Surface. ACM Trans. Graph. 41 (2022).
  • Zhang et al. (2020) Dongbo Zhang, Xuequan Lu, Hong Qin, and Ying He. 2020. Pointfilter: Point cloud filtering via encoder-decoder modeling. IEEE Transactions on Visualization and Computer Graphics (2020).
  • Zhu et al. (2021) Runsong Zhu, Yuan Liu, Zhen Dong, Tengping Jiang, Yuan Wang, Wenping Wang, and Bisheng Yang. 2021. AdaFit: Rethinking Learning-based Normal Estimation on Point Clouds. arXiv preprint arXiv:2108.05836 (2021).
Refer to caption
Refer to caption
Refer to caption
Refer to caption

InputDipolePGRNeuralGFGCNOiPSROursReference

Figure 6. Comparison with existing methods. Rows 1 & 2: Sparse point clouds (Kitten: 500 points; Hilbert Cube: 2,500 points). Row 3 & 4: The Elk model featuring thin structures with 0.5% and 0.75% noise level. Rows 5-8: Models with 0.75% noisy level. Rows 9 & 10: Two challenging models featuring thin plates, slender tubes, and closely adjacent faces.
Refer to caption

Point CloudDipole NeuralGF GCNO iPSR Ours 89.4/58.1/6.75089.6/57.6/11.4437.90/13.2/0.2285.78/9.92/0.2053.44/5.14/0.19788.3/72.9/6.510 71.5/47.9/5.615 85.6/67.1/6.22228.7/38.1/1.398 19.4/20.5/1.257

Figure 7. The reconstruction results of several state-of-the-art point orientation methods (Dipole (Metzer et al., 2021), NeuralGF (Li et al., 2023b), GCNO (Xu et al., 2023), iPSR (Hou et al., 2022)) and our method. Our method is more effective than the other methods at handling point clouds with complex geometries and topologies. The quantitative numbers below each model indicate the mean and the standard deviation of angle differences (degree), and Chamfer distances (103superscript10310^{-3}10 start_POSTSUPERSCRIPT - 3 end_POSTSUPERSCRIPT), respectively.
Refer to caption
Figure 8. Comparison with VIPSS on the horse model with 4k points under 3 different noise levels: 0.0%, 0.5% and 0.75%. The last scenario is the results with 1% outliers but no noise. For each scenario, we show the input point cloud, the results from VIPSS, and our results. While VIPSS handles clean data and low-level noise effectively, it struggles with high-level noise and outliers.
Refer to caption

Objective functionGradient normIterationIterationRefer to caption

Figure 9. The efficacy of GCNO heavily relies on a uniform distribution of Voronoi vertices both inside and outside the point cloud. This condition is often unattainable for models characterized by complex geometry and topology, leading to inaccuracies in point orientation and, consequently, subpar reconstruction outcomes. In the left, we plot the the objective functions and gradient norms for GCNO (red) and our method (blue) for an example where GCNO fails due to stopping optimizing its objective at an early stage. In the right, we show our results (top) and GCNO’s (bottom).
Refer to caption

InputNGLOSHS-NetOursReferenceInputNGLOSHS-NetOursReference(12.3,32.3,0.43)(8.39,20.6,0.10)(11.8,10.9,0.09)(83.8,70.2,4.68)(72.5,68.2,4.71)(26.7,18.4,0.24)(76.8,83.6,4.31)(55.3,76.2,4.26)(8.30,8.55,0.28)(48.6,67.0,26.0)(53.7,68.9,26.8)(16.7,21.3,0.18)

Figure 10. Comparison with the SOTA deep-learning approaches on point clouds subjected to 0.75% noise levels (top) and 1% of outliers (bottom). The 3-tuple in each figure is the error metrics, μ𝜇\muitalic_μ (degree), σ𝜎\sigmaitalic_σ (degree) and CD (103superscript10310^{-3}10 start_POSTSUPERSCRIPT - 3 end_POSTSUPERSCRIPT).