1 Introduction

Mesh parameterization is an important research topic in computer graphics (CG), and it has been widely used in digital geometry processing tasks, such as texture mapping (Haker et al., 2000), surface fitting (Hormann and Greiner, 2000b), and surface remeshing (Hormann et al., 2001). When a discrete surface is directly flattened onto the plane, distortions are inevitable due to the parameterization process. Preserving the geometric properties of the original mesh is essential for a good parameterization.

In this paper, we propose a novel local/global mesh parameterization approach, ARAP++. Our work is inspired mainly by the as-rigid-as-possible (ARAP) approach (Sorkine and Alexa, 2007; Liu et al., 2008; Bouaziz et al., 2012) and the convex combination approach (Eck et al., 1995; Floater, 1997). ARAP++ adopts the idea of ARAP regarding the approximation of the Jacobian matrix with a fitting matrix, and then achieves the global flattened result by stitching together the local 1-ring patches. To optimize the local spring energy, we introduce the convex combination weights and stretch operator (Sander et al., 2001; Yoshizawa et al., 2004) to ARAP++. In consequence, ARAP++ renders lower area and stretch distortions than ARAP. The flattened results of our method are obtained using a free boundary. Therefore, ARAP++ outperforms those of the convex combination approach in processing boundaries of models. These facts show that ARAP++ enhances robustness and adaptiveness relative to both methods above, and achieves a better result in texture mapping (Fig. 1).

The main contributions of this paper are listed as follows:

  1. 1.

    We devise a novel local/global approach to mesh parameterization (ARAP++) based on the optimization of spring energy, and analyze the relation to the ARAP approach which is based on the optimization of the Dirichlet energy. In addition, a broader class of convex combination weights are considered in our method (Sections 4.2 and 4.3).

  2. 2.

    Compared with ARAP, ARAP++ improves the local phase and obtains the flattened results by stitching together the 1-ring patches, instead of individual triangles (Section 4.2). Moreover, we give a simple and fast calculation method to obtain an authalic fitting matrix (in the Appendix).

  3. 3.

    To deal with high-curvature models, we introduce a stretch operator to ARAP++. It enhances the robustness of the method, and eliminates the influence of overlapping and flipping (Section 4.6).

2 Related work

In the past decade, extensive research was conducted regarding the mesh parameterization problem. We refer readers to several survey papers for fundamental theories and methods (Floater and Hormann, 2005; Hormann et al., 2007; Sheffer et al., 2007). Below we briefly review the major techniques which have close relationship to our work.

The convex combination approach (Tutte, 1963; Eck et al., 1995; Floater, 1997; 2003; Desbrun et al., 2002; Lee et al., 2002; Yoshizawa et al., 2004) is a type of linear and fixed boundary parameterization. It is fast and stable without producing overlapping. However, if the boundary is not fixed optimally in advance, then it will lead to higher distortions along the boundary as well as the regions which are away from it.

Some methods rely on angle optimization, both for their intuitiveness and for their effectiveness. The angle-based flattening methods (Sheffer and de Sturler, 2001; Sheffer et al., 2005; Kharevych et al., 2006; Zayer et al., 2007) are defined in the angle space, producing minimal angular distortion. Jin et al. (2008) built a unified framework for discrete surface Ricci flow algorithms. Chen et al. (2008) modified the Gaussian curvature by means of the transition probability matrix, and computed metric scaling as a solution of the Poisson equation. Weber and Zorin (2014) proposed an algorithm with arbitrarily fixed boundary, which guarantees that the result is locally injective.

The energy optimization methods (Hormann and Greiner, 2000a; Lévy et al., 2002; Degener et al., 2003; Weber et al., 2012) based on the singular values of the Jacobian matrix also constitute an important part of commonly employed methods. Sorkine and Alexa (2007) and Jacobson et al. (2012) devised nonlinear energy for surface deformation, and minimized it by a combination of linear solvers and other operation (e.g., singular value decomposition (SVD)). Liu et al. (2008) presented a local/global algorithm which introduces the idea of ARAP into surface parameterization. Zhang et al. (2010) promoted the ARAP algorithm to meshless parameterization and mesh reconstruction. Lipman (2012) and Aigerman and Lipman (2013) dealt with the question of injectivity in bounded distortion mapping spaces, and improved many popular algorithms, such as BD-LSCM and BD-ARAP. Bouaziz et al. (2012) proposed a unified framework for geometry processing based on shape proximity function and shape projection operators. Levi and Zorin (2014) introduced the idea of strict minimizers to the ARAP approach as well as for other applications.

Fig. 1
figure 1

Texture of different mesh parameterizations for a Chinese Dragon model (red lines represent the seams of the closed mesh when cut to a disk): (a) least squares conformal maps (LSCM) (Lévy et al., 2002); (b) linear angle-based flattening (LABF) (Zayer et al., 2007); (c) as-rigid-as-possible (ARAP) (Liu et al., 2008); (d) bounded distortion as-rigid-as-possible (BD-ARAP) (Lipman, 2012); (e) ARAP++. References to color refer to the online version of this figure

Moreover, there are a variety of parameterization methods. Hormann et al. (1999) provided a hierarchical representation of discrete surface, which includes two major steps: edge collapse and vertex split. Zigelman et al. (2002) presented multidimensional scaling (MDS) parameterization, which can preserve the geodesic distance of a triangular mesh. Gu and Yau (2002; 2003) approached the global surface parametrization problem by computing conformal structures of general two-manifolds. Gortler et al. (2006) described some simple properties of discrete one-forms, and their applications to three-dimensional (3D) mesh embedding. Chen et al. (2007) flattened surfaces with the theory of local tangent space alignment (LTSA). Mullen et al. (2008) defined discrete spectral conformal maps, and obtained a conformal mapping result by minimization of Dirichlet energy. Zhao et al. (2013) presented an authalic flattening method based on the optimal mass transport technique.

3 Preliminaries

In this section, we give a brief overview for the convex combination approach. The basic idea is to map the boundary nodes of a 3D mesh to a convex polygon in the plane. The internal node can be expressed as a weighted average of their 1-ring nodes, thus guaranteeing a bijective mapping.

Denote S as a 3D mesh, x1, x2, …, x n the internal nodes, and xn+1, xn+2, …, x N the boundary nodes of S. Denote S* as a 2D mesh, u1, u2, …, u n the internal nodes, and un+1,un+2,…, u N the boundary nodes of S*. The internal node u i can be represented as a strict convex combination of its 1-ring nodes u j in the plane, satisfying

$${u_i} - \sum\limits_{j = 1}^n {{\omega _{i,j}}{u_j} = } \sum\limits_{j = n + 1}^N {{\omega _{i,j}}{u_j}} ,$$
((1))

where ω i,j represents the convex combination weight. The solutions of Eq. (1) are the coordinates of S*.

3.1 Spring energy and Dirichlet energy

The convex combination approach can also be explained as follows. In a plane, a linear combination of vectors \({u_i} = \sum\nolimits_{j = 1}^{{d_i}} {{\omega _{i,j}}} {u_j}\) minimizes the spring energy (Hoppe et al., 1993), which is a weighted sum of squared distances of all neighboring points u j to u i , that is,

$$E{\left( i \right)_{{\rm{spring}}}} = \sum\limits_{j = 1}^{{d_i}} {{\omega _{i,j}}} {\rm{||}}{u_i} - {u_j}{\rm{|}}{{\rm{|}}^2},$$
((2))

where d i is the degree of u i . The optimization target in a plane is to minimize the global spring energy \(\sum\nolimits_{i = 1}^n {E{{\left( i \right)}_{{\rm{spring}}}}} \). Then we take the partial derivative of u i , and obtain Eq. (1) in another way.

Inspired by Desbrun et al. (2002), the Dirichlet energy (Pinkall and Polthier, 1993) over the whole 1-ring neighborhood is

$$E{\left( i \right)_{{\rm{Dirichlet}}}} = \sum\limits_{j = 1}^{{d_i}} {{\rm{cot}}\;{\alpha _{i,j}} \cdot } \;{\rm{||}}{u_i} - {u_j}{\rm{|}}{{\rm{|}}^2},$$
((3))

where α i,j is the angle opposite to the oriented edge (x i , x j ) in the 3D 1-ring neighborhood. Just like various spring coefficients corresponding to the different spring energy, we can regard the Dirichlet energy as a special spring energy.

In addition, there are five classic types of weights ω i,j that can be applied to Eq. (2), namely uniform (Tutte, 1963), shape-preserving(Floater, 1997), mean-value (Floater, 2003), cotan (Eck et al., 1995), and intrinsic (Desbrun et al., 2002) weights.

3.2 Error metrics on discrete surface

Let F denote the number of faces of S, θ and ϕ the angles of S and S* respectively, and area(T) the surface area of T. Then the angle distortion and area distortion can be written as follows:

$$\begin{array}{*{20}c} {{\rm{Dis}}{{\rm{t}}_{{\rm{angle}}}} = {1 \over {3F}}\sum\limits_{j = 1}^F {\sum\limits_{i = 1}^3 {|{\theta _{j,i}} - {\phi _{j,i}}|} } ,} \\ {{\rm{Dis}}{{\rm{t}}_{{\rm{area}}}} = \sum\limits_{j = 1}^F {\left| {{{{\rm{area}}({T_j})} \over {\sum\nolimits_{i = 1}^F {{\rm{area}}({T_i})} }} - {{{\rm{area}}(T_j^ * )} \over {\sum\nolimits_{i = 1}^F {{\rm{area}}(T_i^ * )} }}} \right|} .} \\ \end{array} $$

We can measure the stretch distortion of the flattening results according to the stretch metric (Sander et al., 2001). The Jacobian matrix J f is obtained from the affine mapping f. The largest and smallest singular values of J f are denoted by σ1 and σ2, respectively. Then the L2(T) stretch norm is defined over a triangle T as

$${L^2}\left( T \right) = \sqrt {(\sigma _1^2 + \sigma _2^2)/2} .$$

The norm L2(T) represents the root-mean-square stretch. Similarly, there is an analogous norm over the entire mesh as

$${L^2}\left( S \right) = \sqrt {{{\sum\nolimits_{i = 1}^F {{\rm{area}}(T_i^ * )} } \over {\sum\nolimits_{i = 1}^F {{\rm{area}}({T_i})} }}} \sqrt {{{\sum\nolimits_{i = 1}^F {{{({L^2}({T_i}))}^2}{\rm{area}}({T_i})} } \over {\sum\nolimits_{i = 1}^F {{\rm{area}}({T_i})} }}} .$$

4 Mesh parameterization

In this section, we describe our mesh parameterization technique (ARAP++). The input is a mesh of disk topology, and the output is a free-boundary flattened result. The algorithm consists of two main steps, local phase and global phase. Our method further extends and improves the ARAP approach (Liu et al., 2008).

4.1 Overview of the ARAP++ approach

We outline the method in Algorithm 1, and the details are given in the following subsections.

4.2 Local phase

ARAP++ is also a linear iteration scheme. It requires an initial parameterization to start it off. We can perform the initialization with the shape-preserving method (Floater, 1997), as shown in Fig. 2. The local 1-ring patches of a 3D mesh S can be flattened to a plane using a method based on discrete exponential mapping. The 3D 1-ring patches of x i (i.e., N(x i ))can be mapped toa2D1-ring patches of p i (i.e., N(p i )) in the plane, where the mapping should satisfy the following two equations:

$$\begin{array}{*{20}c} {\quad \quad \quad \quad ||{p_j} - {p_i}|| = ||{x_j} - {x_i}||,} \\ {{\rm{ang}}({p_j},{p_i},{p_{j + 1}}) = {{2\pi \cdot {\rm{ang}}({x_j},{x_i},{x_{j + 1}})} \over {\sum\nolimits_{j \in N(i)} {{\rm{ang}}({x_j},{x_i},{x_{j + 1}})} }},} \\ \end{array} $$

where ang(p j , p i , pj+1) represents ∠p j p i pj+1. Note that N(q i ) is the local 1-ring patches of the initial parameterization S*. There exists an affine mapping f from Δp i p j pj+1 to Δq i q j qj+1. The Jacobian matrix J(i,j,j+1) ∈ ℝ2×2 of f should satisfy

$${q_i} - {q_j} = {J_{(i,j,j + 1)}} \cdot ({p_i} - {p_j}).$$
((4))
Fig. 2
figure 2

Balls model: original model, initial parameterization, and local flattening

The local flattening of N(p i ) well preserves the shape (angle and area) of N(x i ). In the following process, we wish N(q i ) preserves the shape of N(p i ) as much as possible, so that it can preserve the shape of N(x i ) indirectly.

AccordingtoEq. (4), if N(q i ) preserves the local structure of N(p i ), we need to search for a fitting matrix L(i,j,j+1) ∈ ℝ2×2 to approximate J(i,j,j+1), and it satisfies

$${q_i} - {q_j} = {L_{(i,j,j + 1)}}({p_i} - {p_j}).$$

where L(i,j,j+1) belongs to a prescribed family of transformations (Gower and Dijksterhuis, 2004). The singular values of L(δ1 and δ2)should have some special properties, such as conformal (δ1/δ2 = 1), authalic (δ1δ2 = 1),or isometric (δ1 = δ2 = 1). The distance between J(i,j,j+1) and L(i,j,j+1) is measured by the Frobenius norm (Horn and Johnson, 1990). We employ the function D(J, L) to express the distance:

$$\begin{array}{*{20}c} {D(J,L)} & { = \left\| {{J_{(i,j,j + 1)}} - {L_{(i,j,j + 1)}}} \right\|_{\bf{F}}^2\quad \;} \\ {} & { = {{({\sigma _1} - {\delta _1})}^2} + {{({\sigma _2} - {\delta _2})}^2},} \\ \end{array} $$

where

and σ1, σ2 are the singular values of J(i,j,j+1).

From the properties of the Jacobian matrix (Floater and Hormann, 2005), we infer the following three conclusions (Fig. 3):

Conclusion 1 If δ1 = δ2)/2, then L is a conformal matrix.

Fig. 3
figure 3

Three cases of the fitting matrix for the Balls model: (a) conformal; (b) authalic; (c) isometric

Conclusion 2 If δ1 = δ, δ2 = 1/δ, then L is an authalic matrix, and δ is a real root of the following nonlinear equation:

$${\delta ^4} - {\sigma _1} \cdot {\delta ^3} + {\sigma _2} \cdot \delta - 1 = 0.$$

The computation details are given in the Appendix. Conclusion 3 If δ1 = δ2 = 1,then L is an isometric matrix.

Given a local map f i : f i (p i ) = q i in the 1-ring neighborhood of x i , based on the spring energy (Hoppe et al., 1993) in Eq. (2), we define the deformation energy E(f i ) from N(p i ) to N(q i ) as follows. When the 1-ring patches of p i and q i are oriented counterclockwise, we have

$$E({f_i}) = \sum\limits_{j \in N(i)} {\omega _{i,j}^{(1)}{\rm{||}}({q_i} - {q_j}) - {L_{(i,j,j + 1)}}({p_i} - {p_j}){\rm{|}}{{\rm{|}}^2}} .$$

When the 1-ring patches of p i and q i are oriented clockwise, we have

$$E({f_i}) = \sum\limits_{j \in N(i)} {\omega _{i,j}^{(2)}{\rm{||}}({q_i} - {q_j}) - {L_{(i,j,j - 1)}}({p_i} - {p_j}){\rm{|}}{{\rm{|}}^2}.} $$

In ARAP++, the 1-ring nodes have the same weights in both cases, that is, \({\omega _{i,j}} = \omega _{i,j}^{(1)} = \omega _{i,j}^{(2)}\). By adding these two equations, we can obtain the local deformation energy E(f i ) as

$$\begin{array}{*{20}c} {E({f_i}) = } & {\sum\limits_{j \in N(i)} {{{{\omega _{i,j}}} \over 2}} \left( {{\rm{||}}({q_i} - {q_j}) - {L_{(i,j,j + 1)}}({p_i} - {p_j}){\rm{|}}{{\rm{|}}^2}} \right.\,} \\ {} & {\left. { + {\rm{||}}({q_i} - {q_j}) - {L_{(i,j,j - 1)}}({p_i} - {p_j}){\rm{|}}{{\rm{|}}^2}} \right).\quad \quad \quad } \\ \end{array} $$
((5))

According to the above derivation, we can recover the ARAP approach as a special case. Based on the Dirichlet energy (Pinkall and Polthier, 1993) over the whole 1-ring neighborhood in Eq. (3), when \(\omega _{i,j}^{(1)} \ne \omega _{i,j}^{(2)}\), they are represented as

$$\left\{ {\matrix{ {w_{i,j}^{(1)} = \cot (ang({x_i},{x_j} + 1,{x_j})),} \cr {w_{i,j}^{(2)} = \cot (ang({x_i},{x_{j - 1}},{x_j})).} \cr } } \right.$$

Hence, the deformation energy E(f i ) in Eq. (5) is the same as the local energy in the ARAP approach.

4.3 Global phase

After computing the local energy, we sum it to obtain the global energy:

$$W({S^ * }) = \sum\limits_{i = 1}^n {E({f_i}).} $$

To optimize W(S*), we compute the gradient of W(S*) with respect to the positions q i , that is, ∂W(S*)/q i = 0. Then we have

$$\begin{array}{*{20}c} {\sum\limits_{j \in N(i)} {{\omega _{i,j}}} ({q_i} - {q_j})\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad } \\ { = \sum\limits_{j \in N(i)} {{{{\omega _{i,j}}} \over 2}\left( {{L_{(i,j,j + 1)}} + {L_{(i,j,j - 1)}}} \right)} ({p_i} - {p_j}).} \\ \end{array} $$
((6))

We can stitch together the flattened 1-ring patches according to Eq. (6), which is a global Poisson equation with two degrees of freedom (ω i,j and L). To achieve the best possible results, several iterations should be performed while updating L and p of the right-hand items after each iteration. As shown in Fig. 4, compared with the ARAP approach, ARAP++ can obtain the flattened result by stitching together the 1-ring patches, instead of individual triangles.

Fig. 4
figure 4

Flattened results by stitching the individual triangles under ARAP (a) and 1-ring patches under ARAP++ (b) for the Face model

Note that the coefficient matrix T = [ω i,j ]n×n is a singular matrix. Thus, we should select a node fixed on the plane before iterations, so that T turns to a non-singular matrix. In our algorithm, the fixed node in the plane is selected arbitrarily. Generally, we choose a node in the relative flat region and far away from the boundary. Unfortunately, sometimes large distortion and overlapping will still be produced around the fixed point. In this case, we should do some post-processing operations to cope with this problem. If the fixed node is located outside its 1-ring polygon (Fig. 5a), then there must be overlapping, and we should relocate it in the center of the 1-ring polygon. As shown in Fig. 5b, this represents a simple and efficient way to deal with this problem. If the overlapping of many nodes still occurs, we choose another fixed node to start the computation and restart the iteration.

Fig. 5
figure 5

Post-processing of the fixed point: (a) before processing; (b) after processing

Our method has the same local/global procedure as the ARAP approach. So, it is guaranteed to converge to a local minimum. Empirically, our method appears to converge with the increase of the number of iterations. As shown in Fig. 6, the global energy always decreases with each iteration, and finally stabilizes at a minimum. Experimental results also demonstrate that the distortions (angle and area) are decreasing progressively with the number of iterations (as shown later in Table 2). As the termination criterion of our algorithm, we require that the distortions (angle and area) between the previous and next iterations should be under the threshold 10−3. We also can set a maximum number of iterations. Numerical results suggest that the maximum number of iterationsis lessthan five.

Fig. 6
figure 6

Numerical tests for convergence

Table 1 Comparison of distortion measures of five classic types of weights on two standard test models
Table 2 Comparison of distortion measures and time of ARAP and ARAP++

4.4 Boundary weights

Our method needs various different computations connecting between internal weights and boundary weights. The internal weights are determined by the convex combination of their 1-ring nodes’ weights. However, we still have to perform some necessary preliminary operations to determine the boundary weights:

  1. 1.

    Uniform weight

    The weight of x j is ω i,j = 1/d i .

  2. 2.

    Shape-preserving weight

    Using an isometric mapping to locate x i and its 1-ring nodes x j , \({x_{{n_j}}}\), \({x_{{n_k}}}\), x k on the plane, we obtain p i and the 1-ring nodes p j , \({p_{{n_j}}}\), \({p_{{n_k}}}\), p k (Fig. 7). To generate a local 1-ring neighborhood, two virtual boundary nodes \({p_{{n_j}}}\), \({p_{{n_k}}}\) are inserted between p j and p k . The inserted nodes should satisfy the following equations:

    $$\left\{ {\matrix{ {\text{ang}({p_j},{p_i},{p_{{m_j}}}) = \left( {2\pi - \text{ang}({p_{j,}}{p_{i,}}{p_k})} \right)/3} \cr {\text{ang}({p_{mj}},{p_i},{p_{{m_k}}}) = \left( {2\pi - \text{ang}({p_j},{p_i},{p_k})} \right)/3} \cr {\text{ang}({p_{{m_k}}},{p_i},{p_k}) = \left( {2\pi - \text{ang}({p_j},{p_i},{p_k})} \right)/3} \cr {\left\| {{p_i} - {p_{mj}}} \right\| = \left\| {{p_i} - {p_{mk}}} \right\| = {{\sum {j \in {N_{(i)}}\left\| {{p_i} - {p_j}} \right\|} } \over {{d_i}}}.} \cr } } \right.$$

    Then the weights ω i,j of p j , \({p_{{n_j}}}\), \({p_{{n_k}}}\), and p k can be computed in the local 1-ring neighborhood.

  3. 3.

    Mean-value, cotan, and intrinsic weights Fig. 7 shows that the 1-ring nodes xj, \({x_{{n_j}}}\), \({x_{{n_k}}}\), x k can be divided into two parts: \({x_{{n_j}}}\), \({x_{{n_k}}}\) (intermediate nodes), and x j , x k (endpoints). The weights of \({x_{{n_j}}}\), \({x_{{n_k}}}\) are consistent with those of the internal nodes. However, the weights of x j , x k are computed in \(\Delta {x_i}{x_j}{x_{{n_j}}}\) and \(\Delta {x_i}{x_k}{x_{{n_k}}}\), respectively.

Fig. 7
figure 7

The 3D boundary 1-ring nodes (a) and the associated flattened version (b)

4.5 Multi-boundary flattening

There are a couple of ways to flatten a multi-boundary mesh by using ARAP++. In the first approach, the mesh is initialized by flattening using the LSCM method (Lévy et al., 2002). Then successive iterations of Eq. (6) are applied in order to achieve the final flattening result. However, if the inner boundaries (holes) are located at the high-curvature areas, then overlapping will be produced at these boundaries. In this study, we employ the second approach as follows:

  • Step 1: Add a virtual node to the center of the holes, connecting the virtual nodes with the 1-ring nodes, and thus the multi-boundary mesh turns into a single-boundary mesh.

  • Step 2: Compute the flattened result according to Algorithm 1.

  • Step 3: Remove the virtual nodes and connections from the holes.

It can be seen from Fig. 8 that the first approach generates overlapping around the holes, while the second one apparently produces better results than the first one. If the above virtual node method still induces considerable distortion, there are a number of quite advanced and difficult methods for filling the holes, such as Delaunay triangulation (Lawson, 1977).

Fig. 8
figure 8

Flattening of a multi-boundary mesh for the Pig model: (a) original model; (b) the first approach (without filled holes); (c) the second approach (with filled holes)

4.6 Stretch operator

To reduce the area and stretch distortions for high-curvature models, the stretch operator (Sander et al., 2001; Yoshizawa et al., 2004) is employed to improve our scheme (Eq. (6)). In addition, it can make ARAP++ reduce flipping and overlapping during parameterization.

As shown in Fig. 2, the Jacobian matrix J(i,j,j+1) between Δp i p j pj+1 and Δq i q j qj+1 can be obtained according to Eq. (4). The singular values of J(i,j,j+1) are σ1 and σ2. The stretch operator of x i is defined as

$${\mu _i} = \sqrt {{{\sum\nolimits_{j \in N(i)} {{\rm{area}}({x_i},{x_j},{x_{j + 1}}) \cdot \sigma _{(i,j,j + 1)}^2} } \over {\sum\nolimits_{j \in N(i)} {{\rm{area}}({x_i},{x_j},{x_{j + 1}})} }}} ,$$

where \({\sigma _{(i,j,j + 1)}} = \sqrt {(\sigma _1^2 + \sigma _2^2)/2} \)

In essence, the stretch operator can change convex combination weights proportionally to the area of the 1-ring patches. We can improve Eq. (6) by employing the following formula:

$$\begin{array}{*{20}c} {\sum\limits_{j \in N(i)} {{{({\mu _i})}^\theta }} {\omega _{i,j}}({q_i} - {q_j})\quad \quad \quad \quad \quad \quad \quad \quad \quad } \\ { = \sum\limits_{j \in N(i)} {{{{\omega _{i,j}}} \over 2}} \left( {L_{(i,j,j + 1)} + {L_{(i,j,j - 1)}}} \right)({p_i} - {p_j}).} \\ \end{array} $$
((7))

To achieve the valid results, Eq. (7) requires only one step of iteration in computation. If the number of iterations increases, there will be overlapping in the final results. To control stretch distortion, the exponent θ should be adjusted according to different models. Fig. 9 shows the results of parameterization with different θ,where ω i,j represents the mean-value weight, and the singular values of L are δ1 = δ2 = (σ1 + σ2)/2.

5 Simulations and comparisons

All the experiments were tested under MATLAB on a Pentium® Dual-Core, 2.5 GHz CPU computer with 4 GB RAM. To confirm the effectiveness of our method, we carried out simulations on several typical models.

5.1 Comparison of five classic weights

In this subsection, we compare the flattening results for five different types of weights (ω i,j in Eq. (6)), namely uniform, shape-preserving, mean-value, cotan, and intrinsic. The singular values of the fitting matrix L are δ1 = δ2 = 1. As shown in Fig. 10, two models (Balls, Nefertiti) have been tested. For comparison, the final results are displayed for the same initial value and three iterations. Table 1 illustrates the angle and area distortions corresponding to the five classic types of weights, showing that the mean-value weight and cotan weight perform better than most of the others in angle distortion. Moreover, the area distortion of the mean-value and cotan weights are even smaller than others. However, the cotan weight produces instability, and also negative values in some cases. In summary, we can ascertain that the mean-value weight proves the best choice in the following simulations.

Fig. 9
figure 9

The 3D mesh (a) and the stretch operator for θ = 0 (b), θ = 1 (c), and θ = 1.6 (d) for the Bump model

Fig. 10
figure 10

Original models (a) and application results of ARAP++ for the uniform (b), shape-preserving (c), mean-value (d), cotan (e), and intrinsic (f) weights. The first line: Balls model; the second line: Nefertiti model

5.2 Comparison of ARAP and ARAP++

In this subsection, ARAP++ is chiefly inspired by ARAP parameterization (Liu et al., 2008). We improve the local phase which is based on discrete exponential maps of the 1-ring patches instead of flattening of individual triangles, as in the original ARAP method. We compare ARAP++ with ARAP in three iterations, where ω i,j represents the mean-value weight, and the singular values of L are δ1 = δ2 = 1. Two models (Gargoyle, Triceratops) have been tested via two methods. As shown in Fig. 11, we compare the parameterizations and texture mappings between ARAP and ARAP++. Table 2 illustrates the angle distortion, area distortion, and running time of two methods during iterations 1–3. The two methods render the same level in angle distortion, and ARAP++ slightly performs better than ARAP in area distortion. However, ARAP++ has a higher computational complexity, so it is more time-consuming compared with ARAP.

Fig. 11
figure 11

Parameterizations and textures of ARAP (the first and third lines) and ARAP++ (the second and fourth lines)

In Fig. 12, the ARAP method is shown to suffer from overlapping when dealing with high-curvature models. In contrast, ARAP++ can obtain valid flattening results by choosing an appropriate exponent value (θ = −0.2) provided by Eq. (7). Therefore, ARAP++ outperforms ARAP in terms of controlling stretch distortion.

Fig. 12
figure 12

Parameterization of the high-curvature Mannequin model: (a) a detailed overlap under ARAP; (b) a valid parameterization result under ARAP++

5.3 Comparison with several state-of-the-art methods

In this subsection, we carry out three simulations to compare ARAP++ with several state-of-the-art parameterization methods, namely LSCM, LABF, and BD-ARAP (conformal distortion C = 2).

In the first simulation, ARAP++ employs Eq.(6),using three iterations, where ω i,j represents the mean-value weight, and the singular values of L are δ1 = δ2 = 1. As shown in Fig. 13, the single-boundary models (Hand, Camel) and multi-boundary models (Kitten, Elephant) are cut along the red line. We compare the parameterizations and textures rendered by these methods. Table 3 illustrates the angle distortion, area distortion, and running time of the four methods. It reveals that ARAP++ produces a slightly larger angle distortion than the other three methods, but it renders the best result in area distortion. In other words, ARAP++ provides a good trade-off between the overall angle and area distortions, which leads to good results in texture mapping. Regarding the comparison of running time, ARAP++ is shown to be faster than LABF and BD-ARAP. However, due to the necessity of several iterations in the computation of ARAP++, it is slower than LSCM.

Table 3 Comparison of three parameterization methods and ARAP++ on four standard test meshes

In the second simulation, we compare the parameterizations and textures of high-curvature models (Mushroom, Mannequin, Lion) which have not been cut in advance. ARAP++ employs Eq. (7), where ω i,j is chosen to be the mean-value weight, and the singular values of L are δ1 = δ2 = 1. The exponent θ can be adjusted to obtain the valid results. When performing the texture mapping of high-curvature models, we should have a quadrilateral remeshing of the original model according to the parameterization. The details of this remeshing method can be found in Hormann and Greiner (2000b). In contrast, the remeshed models are given by the corresponding sets of vertices, facets, and topological connection. During the uniform subdivision of the base mesh, we apply the same number of umbrella operators (Hormann and Greiner, 2000b) on the remeshed models. Table 4 illustrates the angle, area, and strech (L2) distortions of the four methods. ARAP++ shows better area and stretch distortions than others. However, ARAP++ leads to the highest angle distortion. As shown in Fig. 14, the textured models produced by ARAP++ are more uniform and aesthetical than others.

Fig. 13
figure 13

Parameterizations and textures: (a) LSCM; (b) LABF; (c) BD-ARAP; (d) ARAP++. References to color refer to the online version of this figure

Table 4 Comparison of three parameterization methods and ARAP++ for high-curvature models

In the third simulation, a remeshing of the triangulation to the original model is performed. The details of the remeshing method can be found in Hormann et al. (2001). Again, the remeshed models are given by the corresponding sets of vertices, edges, and facets as above. Table 5 illustrates the maximum and minimum facet areas of the models. It reveals that the maximum facet area is smaller and the minimum facet area is larger than those of other methods. As shown in Fig. 15, the remeshing results of ARAP++ outperform others in terms of facets’ uniformity.

Table 5 Minimum and maximum facet areas of the remeshed models for three standard test meshes

6 Conclusions and outlook

Even though mesh parameterization has received considerable attention in computer graphics for more than two decades, there are still many complicated problems that need to be resolved. In particular, there still does not exist definite solutions regarding the optimal trade-off between angle and area distortions during the parameterization process. In this paper, we have presented a simple and efficient approach, ARAP++, to flatten a 3D mesh surface. This is an extension of the local/global approach ARAP, which can obtain the flattened results by stitching together the 1-ring patches. In addition, to deal with high-curvature models, the stretch operator is introduced, which can better control area and stretch distortions, and has attained better visualization performance in applications, such as texture mapping and surface remeshing.

Fig. 14
figure 14

Parameterizations and textures of high-curvature models: (a) LSCM; (b) LABF; (c) BD-ARAP; (d) ARAP++

Fig. 15
figure 15

Surface remeshing: (a) original mesh; (b) LSCM; (c) LABF; (d) BD-ARAP; (e) ARAP++

Our future work will focus on extending the present method to mesh deformation and spherical parameterization, which will undoubtedly shed some new light on the improvement of computer graphics technology. Another natural direction would be to extend our results to larger patches (not just 1-rings), such as those produced by the flattening algorithm introduced in Saucan et al. (2008).