The invention relates to computer-based hexahedral mesh (hex-mesh) modeling of three-dimensional objects. Particular embodiments provide methods and systems for optimizing hex-meshes via edge-cone rectification.
Many computer-based engineering models use finite element discretization based models to model and simulate the behavior of three-dimensional objects. A popular choice for many such engineering models involves the use of hexahedral meshes (hex-meshes) as the finite element discretization of choice. Typical, but non-limiting examples of input objects which may be modelled using hex-meshes include: parts of mechanical systems; fluid conduits for fluid simulation; biological elements, such as human bones and/or organs. There is a general desire to provide high quality hex-meshes, since the quality of such hex-meshes can influence the accuracy and/or reliability of the corresponding engineering models. The generation of hex-meshes is typically a two-step process which involves: (i) generating an initial hex-mesh whose connectivity is designed to fit the input object; and (ii) modifying the positions of vertices to optimize the shapes of the mesh elements while keeping the connectivity fixed.
A challenge that is faced by automated (computer-based) hex-mesh generation techniques is that the generated hex-meshes typically contain poorly shaped hexahedrons. For example, poorly shaped hexahedrons may comprise hexahedrons that are relatively far from cuboid in shape and/or hexahedrons that are inverted or concave in shape. Even a single inverted (concave) hexahedral element can render an entire hex-mesh representation unusable for simulation. Hex-meshes comprising such poorly shaped hexahedrons may be referred to as low quality hex-meshes and individual poorly shaped hexahedrons within such hex-meshes may be referred to as low quality hexahedrons or low quality elements. There is a general desire for automated computer-based techniques for improving the quality of hex-meshes (e.g. hex-mesh representations of input objects). Such hex-mesh improvement techniques may improve the average quality of the hex-mesh elements and/or the minimum quality of the hex-mesh elements and may be referred to as hex-mesh optimization techniques.
The foregoing examples of the related art and limitations related thereto are intended to be illustrative and not exclusive. Other limitations of the related art will become apparent to those of skill in the art upon a reading of the description and a study of the drawings.
Exemplary embodiments are illustrated in referenced figures of the drawings. It is intended that the embodiments and figures disclosed herein are to be considered illustrative rather than restrictive.
The following embodiments and aspects thereof are described and illustrated in conjunction with systems, tools and methods which are meant to be exemplary and illustrative, not limiting in scope. In various embodiments, one or more of the above-described problems have been reduced or eliminated, while other embodiments are directed to other improvements.
The invention provides a number of non-limiting aspects. Non-limiting aspects of the invention comprise the following:
as described above in connection with equation (2).
In addition to the exemplary aspects and embodiments described above, further aspects and embodiments will become apparent by reference to the drawings and by study of the following detailed descriptions.
Description
Throughout the following description specific details are set forth in order to provide a more thorough understanding to persons skilled in the art. However, well known elements may not have been shown or described in detail to avoid unnecessarily obscuring the disclosure. Accordingly, the description and drawings are to be regarded in an illustrative, rather than a restrictive, sense.
One aspect of the invention provides a computer-based automated method for improving the quality of (optimizing) an input hexahedral mesh (hex-mesh). The output of the method may be an output hex-mesh having improved average hexahedral element quality and/or improved minimum hexahedral element quality. As used herein, the relative quality of a hex-mesh element (i.e. a hexahedral element) may refer to how close the shape of the hex-mesh element is to a perfect cubic shape. Where a first hex-mesh element has a shape that is relatively close to a cubic shape (as compared to the shape of a second hex-mesh element), the first hex-mesh element may be referred to as having a higher quality (a better quality, an improved quality and/or the like) relative to the second hex-mesh element. Concave or inverted hex-mesh elements may be understood to have low quality relative to convex hex-mesh elements. For brevity, as used herein, the term mesh should be understood to refer to a hex-mesh, unless the context dictates otherwise.
Method 100 commences in block 110 which comprises obtaining an input hex-mesh 102. In general, input hex-mesh 102 can be obtained in block 110 using any suitable technique. In some embodiments, block 110 comprises receiving input hex-mesh 102 from an external system (e.g. via a suitable hardware and/or software input interface, such as a USB interface, a network interface and/or the like). In some embodiments, block 110 comprises obtaining input hex-mesh 102 from local memory and/or from a different software application running on the same computer. In some embodiments, input hex-mesh 102 obtained in block 110 comprises an automatically generated hex-mesh (e.g. a hex-mesh generated by an automated (computer-based) hex-mesh generation technique). Non-limiting examples of suitable automated hex-mesh generation techniques are disclosed, for example, in: SHEPHERD, J. F., AND JOHNSON, C. R. 2008. Hexahedral mesh generation constraints. Engineering with Computers 24, 3, 195-213; SCHNEIDERS, R. 1996. A grid-based algorithm for the generation of hexahedral element meshes. Engineering with Computers 12, 168-177; MARECHAL, L. 2009. Advances in octree-based all-hexahedral mesh generation: handling sharp features. In Proc. International Meshing Roundtable;TAUTGES, T. J., BLACKER, T., AND MITCHELL, S. A. 1996. The whisker weaving algorithm: a connectivity-based method for constructing all-hexahedral finite element meshes. Intl. Journal for Numerical Methods in Engineering 39, 19, 3327-3349; MIYOSHI, K., AND BLACKER, T. 2000. Hexahedral mesh generation using multi-axis cooper algorithm. In Proc. International Meshing Roundtable, 89-97; LI, Y., LIU, Y., XU, W., WANG, W., AND GUO, B. 2012. All-hex meshing using singularity-restricted field. ACM Trans. Graph. 31, 6; GREGSON, J., SHEFFER, A., AND ZHANG, E. 2011. All-hex mesh generation via volumetric polycube deformation. Computer Graphics Forum (Proc. SGP 2011); LIVESU, M., VINING, N., SHEFFER, A., GREGSON, J., AND SCATENI, R. 2013. Polycut: monotone graph-cuts for polycube base-complex construction. ACM Trans. Graph. 32,6; and HUANG, J., JIANG, T., SHI, Z., TONG, Y., BAO, H., AND DESBRUN, M. 2014. L1 based construction of polycube maps from complex shapes. ACM Trans. Graph. 33, 3 (June), 25:1-25:11.
In the illustrated embodiment of
Once input hex mesh 102 is obtained in block 110, method 100 proceeds to optional block 120 which involves determining target edge lengths for the hex elements of current hex-mesh 112. Optional block 120 is not necessary. In some embodiments, block 120 is not present. Optional block 120 is described in more detail below. Method 100 then proceeds to block 150 which comprises a mesh optimization procedure based on an edge-cone formulation described in more detail below. The block 150 mesh optimization comprises improving the quality of input mesh 102 (or the initialized version of current hex-mesh 112) to generate output mesh 158, wherein the quality of output mesh 158 is improved relative to that of input mesh 102.
In block 150, method 100 comprises performing an optimization procedure which involves determining new vertex positions for each directed edge in current hex-mesh 112 and outputting output hex-mesh 158 based on these new vertex positions. The block 150 procedure may depend on a mesh quality assessment based on evaluation of so-called edge cones. The concept of edge-cones and their relationship to hex-mesh quality is now described.
In some embodiments, the quality of a hex-mesh that includes a plurality of directed edges may be expressed in terms of the differences between the directions of: the directed edges which form the axes of corresponding edge-cones and the normal vectors of the triangular faces at their bases. For the particular edge-cone 212 shown in
Referring back to
A particular embodiment of block 150 is now described. For the purposes of this explanation, we define to be a general hex-mesh with vertices and edges ) respectively. For each directed edge (vi, vj), we define eij to correspond to the vector vi-vj. While the variables expressed in the description that follows may be expressed in terms of eij, in some embodiments, the variables actually optimized may comprise the underlying vertex positions. If we consider a directed edge eij from among the edges and the collection of all hexahedra H that contain eij, then we may define a set Q={qk} to be the set (e.g. the umbrella) of quadrilaterals belonging to H and containing the vertex vi but not the vertex vj we may further define T={tk} to be the set (e.g. the fan) of triangles that are connected to the vertex vi, with the understanding that T has a winding order consistent with the winding order of the quads of Q and that t|T|=t0 (i.e. the indices of tk reach a finite number and then return to zero).
Typically, an input hexahedral mesh may be assumed to have (or may be assigned) a consistent ordering of vertices, such that the vertices of any quadrilateral forming an individual hexahedral element, when viewed from the center of the hexahedral element, has a counterclockwise orientation. This in turn infers a counterclockwise orientation on the tetrahedral decomposition of the hexahedral elements of the mesh, and therefore on the vertices of any triangle on the tetrahedron. Denoting the vertices of an arbitrary triangle tk as uk; vi; uk+1 (as shown for a particular example triangle in
The block 150 optimization procedure may comprise determining the directions of each normalized directed edge êij(e.g.
and/or corresponding positions of vertices vi for current mesh 112, which minimize an energy function Eglobal comprising an energy term Econe, where Econe depends on the difference in orientation between the direction of edge eij and the normal vectors nk of its corresponding triangles over each directed edge in the current mesh 112. In one particular example embodiment, the energy function Eglobal includes only the energy term Econe—i.e.:
Eglobal=Econe (1a)
In another example embodiment, the energy function Eglobal is given by:
Eglobal=Econe+Eboundary (1b)
where Eboundary represents a term that aims to preserve the boundary of input hex-mesh 102 and which is explained in more detail below.
In one particular example embodiment, the energy term Econe may be given by:
where the left summation operator is over all of the directed edges eij in current hex-mesh 112 and the right summation operator is over all of the base triangles tk in an edge-cone corresponding to a particular directed edge eij.
The block 150 optimization and the corresponding minimization of the energy function Eglobal (of equation (1a) or (1b)) may be subject to non-inversion constraints which prevent the solutions of the block 150 optimization (i.e. the vertex positions vi) from corresponding to inverted hex-elements and/or inverted tetrahedra. In one particular embodiment, these block 150 non-inversion constraints may have the form, for each directed edge eij:
eij·nk>0 ∀eij ϵε, tk ϵT(eij) (3)
where the normal nk may be explicitly defined as a function of vertex positions:
It may be observed that the energy term Econe of equation (2) expressly accounts for the opposite directions of each directed edge eij separately, as the tightness of the constraints on these directions may significantly differ.
Given the typical size of real-world meshes, optimizing the formulation of equations (1)-(4) directly using standard non-linear optimization methods may be impractical. In particular, the normalization by edge length in this formulation may present optimization challenges. Consequently, in some embodiments, the block 150 optimization involves the use of pre-estimated edge lengths Lij, where Lij represents the pre-estimated length of the edge between the vertices vi and vj. Pre-estimated edge lengths Lij may be determined in block 120, which is discussed in more detail below. Substituting such pre-estimated edge lengths Lij into equation (2) reduces equation (2) to the quadratic function:
and reduces equation (4) to:
With the
Once input hex mesh 102 is obtained and current hex-mesh 112 is initialized in block 110, method 300 proceeds to optional block 320 which involves determining target edge lengths for the hex elements of current hex-mesh 112. Optional block 320 may be substantially similar to block 120 described elsewhere herein. In some embodiments, block 320 is not present. Method 300 then proceeds to block 330 which comprises a combined local/global mesh optimization loop (or for brevity, a mesh optimization loop 330). Mesh optimization loop 330 comprises improving the quality of input hex-mesh 102 to generate output hex-mesh 158, wherein the quality of output hex-mesh 158 is improved relative to that of input hex-mesh 102. In the illustrated
In block 360 of the illustrated
In one particular embodiment, block 360 comprises, for each directed edge eij, determining a target direction {circumflex over (n)}ij based on a local optimization having the form:
ñij=arg min Σk=0T(ñij−nk)2 (9)
subject to the local non-inversion constraints having the form:
{circumflex over (n)}ij·nk<ε<0 ∀tk ϵT (10)
∥ñij∥2≤1 (11)
It may be observed that equations (9)-(11) form a constrained optimization problem whose solution {circumflex over (n)}ij minimizes equation (9) subject to the constraints of equations (10) and (11). It may also be observed that equation (9) and (10) are only evaluated over the local edge-cone that corresponds to the directed edge eij and the base triangles of the local edge-cone. The convex constraint of equation (11) replaces the explicit, but non-convex, requirement for the target direction {circumflex over (n)}ij to have unit length. In some embodiments, the equation (11) constraint could be replaced by an equality (e.g. ∥{circumflex over (n)}ij∥2=1). In block 360, the base triangle normals nk may be determined based on current hex mesh 112. The current hex mesh 112 used in block 360 may be based on: the initialized value of current hex mesh 112 (applied in block 310); or the update to current hex mesh 112 after the last iteration of mesh optimization loop 330 (e.g. after the block 370 global procedure, as described in more detail below). The base triangle normals nk may be determined on the basis of an equation having the form of equation (4) or equation (6) and, in some embodiments, may be normalized to have unit length. The resulting target directions ñij may be similarly normalized. It should be noted that if all that was required was for the dot product {circumflex over (n)}ij·nk to be positive, the equation (11) constraint could be eliminated. However, in some embodiments, a greater than zero threshold ε is used in the equation (10) constraint (for reasons discussed in more detail below). Accordingly, the equation (11) constraint is explicitly included in this description to prevent the resulting target directions {circumflex over (n)}ij from satisfying the equation (10) constraint by scaling.
The block 360 local optimization (as characterized by the formulation of equations (9), (10) and (11) or otherwise) may comprise, for each directed edge eij, a quadratic convex optimization problem with linear and quadratic inequality constraints on the three coordinates of target direction {circumflex over (n)}ij. The block 360 optimization can be solved efficiently and robustly using standard quadratic programming tools such as, by way of non-limiting example, those disclosed by GUROBI OPTIMIZATION, 2013 at http://www.gurobi.com/. In some circumstances (e.g. with some directed edges of particular input meshes 102), equation (9) is minimized by a target direction {circumflex over (n)}ij that is the conventional average of the base triangle normal nk and satisfies the non-inversion constraints (e.g. constraints of the form of equations (10) and (11)) as-is. Consequently, in some embodiments, to speed-up computation, block 360 may first attempt to determine a base solution target direction {circumflex over (n)}ij (e.g. a target direction {circumflex over (n)}ij that is the conventional average of the base triangle normal nk) and evaluate whether the base solution target direction {circumflex over (n)}ij satisfies the non-inversion constraints. If it is determined that the base solution target direction {circumflex over (n)}ij does not satisfy the non-inversion constraints, block 360 may revert to using a quadratic programming solver.
Where the block 360 local optimization is a quadratic convex optimization problem with linear and quadratic inequality constraints, a target direction ñij that satisfies all the non-inversion constraints may not always exist. However, an advantage of a localized solution is that method 300 can still proceed with the block 370 global procedure (or the remaining portion of an iteration of mesh optimization loop 330) in a meaningful way, even without a block 360 solution. Where, for a particular directed edge eu, the block 360 local optimization does not yield an inversion-free solution, block 360 may, in some embodiments, return the target direction {circumflex over (n)}ij to be either the current edge direction (e.g. the direction of eij in current hex-mesh 112) or the average of the base triangle normals nk (e.g. the unconstrained minimizer of equation (9)). In some embodiments, the decision between these two output target directions {circumflex over (n)}ij may be based on the largest angle αij between the direction of the proposed output target direction {circumflex over (n)}ij and the base triangle normals nk. In some embodiments, where this circumstance arises for a particular directed edge eij in block 360, block 360 comprises selecting the output target directions {circumflex over (n)}ij to be the direction for which this largest angle au is the smallest. In some embodiments, block 360 may make this same election of output target directions {circumflex over (n)}ij if one of the base triangle normals nk has zero length. Since, in some embodiments, the block 360 local optimization seeks for all directed edges eij to have a known target length (e.g. Lij) and indirectly optimizes the base triangle angles αij, such degenerate configurations are typically resolved during the first iteration of mesh-optimization loop 330.
In some embodiments, the above discussed implementation of block 360 is used for interior edges eij (i.e. edges eij other than surface edge). In some embodiments, block 360 may use a modified formulation for surface edges. This modified formulation is described in more detail below.
Referring back to
Block 370 may use an energy function Eglobal based on one of equations (1a) or (1b) describe above and may be augmented by a penalty term as discussed in more detail below. In some embodiments, the block 370 energy function may have the form:
Eglobal=Ê+ΣiWipEip (13)
Where: Ê is the desired energy function, but for the penalty term (e.g. the right hand side of one of equations (1a) or (1b), with the possible addition of other terms as described in more detail below); Wip are individual penalty weights; and Eip are weighted penalty terms. Block 370 may apply per-edge-cone (or per directed edge) penalty terms aimed to keep the edge directions determined in each iteration of the block 370 global procedure sufficiently close to the bock 360 target directions {circumflex over (n)}ij. In some embodiments, the block 370 penalty formulation is based on the observation that the norm of the difference between unit-length vectors is above unity when the angle between the unit length vectors is obtuse, and less than one, when the two unit-length vectors are relatively close (under 60°). Thus for larger angles, a high order monomial of this norm may serve as a penalty whose cost increases dramatically as the angle increases, strongly discouraging any solution where the new edge directions deviate far enough from the target to the point where a tetrahedron in an edge-cone becomes inverted. At the same time, the maximal distance between unit-length vectors is 2, providing a natural upper bound on the size of the penalty. With this formulation, the block 370 penalty scheme will terminate, as the penalties may not increase indefinitely.
In some embodiments, to keep the optimized energy function Eglobal quadratic, block 370 may comprise separating a penalty monomial into a quadratic term, which we treat as a penalty function
and a higher order higher-order weight term wijp which is updated between penalty iterations within block 370 and which, in some embodiments, is never decreased. Determination of the normalization factors {circumflex over (L)}ij is described in more detail below. In some embodiments, the weights wijp are initially set to 1. After a solution to a particular iteration within block 370 is obtained, block 370 may comprise updating the penalty weights wijp by setting
The choice of the exponent being six in equation (16) is empirical and not mandatory. The inventors have found that lower values for this exponent did not sufficiently penalize large angular deviations from the block 360 desired directions {circumflex over (n)}ij, leading to decreases in solution quality, while larger exponents reduced numeric stability (e.g. because increasing the exponent increases the ratio between the largest and smallest elements of the gradient matrix of the block 370 energy function, which in turn increases its condition number).
When selecting the normalization factors {circumflex over (L)}ij, focusing on angle only involves considering a pure directional difference—e.g. normalizing each directed edge of current hex-mesh 112 by its length at the beginning of the block 370 global procedure. In some circumstances, this choice may be sub-optimal (e.g. if the edge-length of a directed edge in current hex-mesh 112 is significantly different from its estimated target edge length (e.g. its block 320 target edge length), as the edge-length of current hex-mesh 112 may be a poor predictor of the edge-length after the block 370 optimization which is expected to get closer to its target edge length. In some embodiments, block 370 comprises anticipating this change in edge-length by, for each edge, setting
where ∥eij∥ is the edge-length of the edge in current hex-mesh 112 and Lij is the block 320 estimated target edge length discussed elsewhere in this description.
In some embodiments, block 370 also involves recognizing that the degree to which an edge eij and its block 360 target direction {circumflex over (n)}ij should be aligned may depend on the geometry of the edge-cones determined in the block 360 local procedure. Specifically, block 370 may comprise considering the largest angle αij between the block 360 target direction {circumflex over (n)}ij and the corresponding edge-cone's base triangle normal nk used in block 360. To minimize (or reduce) the likelihood of inversion in block 370, when αij is below 90°, the edge eij determined in each iteration of block 370 and the block 360 target direction {circumflex over (n)}ij should be more aligned as the angle αij grows. In some embodiments, therefore, block 370 comprises multiplying the weights wijp by a function that penalizes deviation between the edge eij determined in each iteration of block 370 and the block 360 target direction {circumflex over (n)}ij more significantly as the angle αij grows. In some embodiment, block 370 comprises multiplying the weights wijp by a function of the angle αij. In one particular embodiment, block 370 comprising multiplying the weights wijp by a function having the form
In some embodiments, σ is set at σ=0.3 using the three sigma rule for the weight to drop to 1 when the angle αij is zero, allowing for larger deviation.
In some embodiments, the block 370 global procedure may comprise iterative optimizing a quadratic energy function having the form:
Eglobal=Ê+ΣijW(αij)wijpEijp (18)
where: Ê is the desired energy function, but for the penalty term (e.g. the right hand side of one of equations (1a) or (1b), with the possible addition of other terms as described in more detail below); W(αij)wijp are individual penalty weights; and Eip are weighted penalty terms. Block 370 may comprise iteratively repeating the optimization (e g minimizing equation (18)) with the current penalty weights and then updating the penalty weights W (αij)wijp until the vertex positions vi and/or the combined energy function (e.g. equation (18)) no longer change or change less than a suitable threshold amount. Note that, as expected from penalty terms, the weights W(αij)wijp do not decrease between iterations. It will also be appreciated that, in some embodiments, the block 370 penalties are applied to a particular edge eij only if the block 360 target directions {circumflex over (n)}ij satisfy the non-inversion inequalities in block 360 (corresponding to αij=90°). If the non-inversion constraints are not satisfied for a particular edge eij, then that particular edge may be omitted from penalties (e.g. omitted from the summation term of equation (18)). This can be appreciated on the basis that block 370 should only penalize changes from target directions corresponding to non-inverted conditions, and changes from inverted conditions should be welcomed.
Returning back to
A number of optional procedures are now described which may be used in various embodiments and/or in various blocks of methods 100, 300.
In some embodiments, the energy function Eglobal described above may be augmented with a regularization term Eregularize which may be aimed at generating more unified edge directions for adjacent mesh edges which leverages the structure of the hexahedral mesh. The regularization term Eregularize may be added, for example, to the right hand side of equation (1a), (1b) and/or (18). The regularization term Eregularize may form part of the term Ê in equation (18). It may be observed that for high quality hex-meshes, the directions of topologically parallel edges within the same hex (
where ep ϵ P(e) are the edges topologically parallel to a given edge e and ec ϵ C (e) are its consecutive edges. In the equation (19) formulation, all vectors are normalized by target edge lengths |Le|, |Lp|, |Lc| to optimize for the desired length proportion.
A desirable feature in some mesh optimization applications and/or embodiments involves the preservation of the outer surface of the mesh (which may correspond to the outer surface of an object, for example). Some embodiments of methods 100, 300 may achieve this desirable feature by fixing the positions of the surface vertices. However, in some applications and/or embodiments, such strict positional constraints are too restrictive, as often mesh quality can be improved by allowing the surface vertices to slide along the boundary surface but without moving away from the boundary surface. Moreover, in some applications and/or embodiments, one cannot obtain an inversion-free mesh without allowing the mesh vertices to deviate from the boundary surface. Thus, in some embodiments, methods 100, 300 use a boundary formulation that balances surface preservation against mesh quality.
To optimize the quality of hexahedra along the boundary surface, some embodiments include partial cones around each surface edge. As the aim may be for surface edges to remain on the surface, the local step (e.g. block 360 of method 300) equation (9) may be modified for surface edges:
where: ň is the average of the original surface normals at vi and vj; and β is a configurable constant (e.g. β=10). The treatment of boundary edges in the global step (e.g. step 370 of method 300) may be similar to that of interior edges.
Expressing exact or approximate surface preservation in closed form (instead of just preserving the current locations) may involve the use of an analytic surface definition, which is typically rarely available. Thus to constrain vertices to remain on or close to the surface, some embodiments may employ a local surface approximation. Some embodiments may distinguish between regular surface vertices v ϵ S, feature vertices v ϵ F and corners (vertices at the junction of multiple features) v ϵ C. To preserve the surface, some embodiments may use three types of per-vertex energy terms, selected by vertex type. Some embodiments may use a boundary energy term having the form:
where: {circumflex over (v)} is the reference, or closest, surface position for each vertex; <{circumflex over (n)}, {circumflex over (d)}> is the implicit equation of the plane passing through {circumflex over (v)} and orthogonal to the input surface normal {circumflex over (n)} at that point; {circumflex over (t)} is the feature tangent at {circumflex over (v)}; a is an auxiliary variable added to the system to enable feature constraints; and α is a configurable constant for feature and corner weight. In some embodiments, α is set to α=20. The equation (21) boundary term Eboundary may be added, for example, to the right hand side of equation (1a), (1b) and/or (18). The equation (21) boundary term Eboundary may form part of the term Ê in equation (18). It may be observed that the equation (21) boundary term Eboundary is quadratic, thus augmenting the combined energy function Eglobal with the equation (21) boundary term Eboundary does not affect the convexity of the global optimization performed in methods 100, 300.
As discussed above, methods 100, 300 may make use of target, or optimal, edge lengths in a number of places in the formulation described above. Such target edge lengths may be determined in block 120 of method 100 and/or block 320 of method 300, for example. Such target edge lengths may be used in the remainder of method 100 and/or method 300. In many meshing frameworks, such target edge lengths are provided by users and may be based on simulation needs. Absent this high-level knowledge, when the mesh density is by design (or otherwise) non-uniform (e.g. for meshes created with octree-based methods), the input edge lengths provide a plausible estimation of the target edge length. If the mesh density is expected to be uniform, some embodiments may provide a better initial length estimate by leveraging the existing surface mesh sizing. In general, one expects mesh size changes to be gradual, indicating a preference for similar lengths on both topologically parallel and consecutive edges. Further, as a uniformly sized mesh is sought, the average edge length LA in the current mesh (which may be the input mesh) may serve as a good initial approximation of target interior mesh edge lengths. Some embodiments involve combining these observations to motivate an optimization having an edge-length energy function Elength having the following formulation for obtaining target edge lengths Le:
Elength=ΣeϵSr(L
where: e ϵ S′ are the surface edges having both vertices on a boundary surface; e ϵ E/S′ are non-surface edges having at least one vertex that is not on a boundary surface; ep ϵ P(e) are the edges topologically parallel to e; ec EC (e) are the edges topologically consecutive to e; ∥e∥ are original edge lengths; LA is the average edge length in the mesh; Lp is the length of a a topologically parallel edge ep; and Lc is the length of a topologically consecutive edge ec. Blocks 120 and/or 320 described above, may comprise optimizing (e.g. minimizing) an equation having the form of equation (22). The resulting edge lengths Le balance the expectation of uniformity against the desire to preserve the current surface edge lengths. The resulting set of edge lengths Le determined in accordance with this edge-length optimization may be used as the target edge lengths Lij described at other locations herein.
In some embodiments, the overall hex-mesh optimization (e.g. of method 100 and/or method 300) can start with these target edge-lengths (e.g. by estimating same in blocks 120 and/or 320). In some embodiments, these target lengths can be updated selectively, reflecting the local mesh element quality, by linearly interpolating between the target edge lengths Le and current edge lengths ∥e∥,
Le=(1−w)·Le+w∥e∥ (23)
where w is a Gaussian function of the smallest hex element minimal scaled jacobian (MSJ) q of any hex connected to the target edge:
where σ is a configurable constant (set, in some embodiments, to σ=0:15). This selective update aims to preserve the original target lengths in areas where the mesh quality is sufficiently high, so as to preserve the mesh in these areas as is, while updating edge lengths in areas where the quality is poor.
As discussed above, in some embodiments, the global energy function Eglobal optimized in method 100 or in the global procedure 370 of method 300 may comprise a sum of some of the optional energy terms discussed above. In some embodiments, the global energy function Eglobal optimized is given by equation (18), where the Ê term is given by:
Ê=Econe+Eregularize+Eboundary (25a)
where: Econe has a form of equation (2) or equation (5), where Eregularize has a form of equation (19) and Eboundary has a form of equation (21). This yields a global energy function Eglobal having the form:
Eglobal=Econe+Epenalty+Eregularize+Eboundary (25b)
where Epenalty is the summation in the right hand side of equation (18). Since the minimized functional (the global energy function Eglobal) is quadratic, some embodiments make use of a standard linear solver (GMRES or SuperLU, for example) to compute the minimizer of equation (25). Once the iterations of the global procedure converge (e.g. iterative changes to the vertex positions vi or the energy value Eglobal are less that a suitable threshold), some embodiments may optionally comprise repeating the hex-mesh optimization process (e.g. method 100 or method 300) with updated target edge lengths (as discussed above e.g. repeating method 100 and/or 300 with updates to the target edge lengths determined in optional block 120 and/or 320).
The framework described above is designed to obtain inversion-free meshes with high average element quality. However, some simulations have minimal, or worst, element quality restrictions that are more stringent than mere convexity. In some embodiments, the formulation described above aims for minimal angle between each directed edge and the base triangle normals of its associated edge-cone to be some configurable constant θ close to 90° (e.g. θ=85°, in some embodiments) and uses ε=cos(θ) in equation (10). In some embodiments, to achieve an improved minimum quality, a variation of the above-described techniques may be used to progressively improve the minimal quality of the resultant hex-mesh. In particular, some embodiments may comprise changes to equations (10) and (16) to achieve this result. Once all local solution spaces are not empty (i.e. all cone angles αij are below 90°, the default minimal angle threshold ε (in equation (10)) may be replaced with a local threshold whose goal is to further improve the local cone-quality:
{circumflex over (n)}ij·nk>cos(αij+ε) for all tk ϵT(eij) (26)
where αij is the worst current angle between the directed edge eij and the normals of the base triangles of its corresponding edge-cone and ε is some configurable constant (e.g. ε=0.01, in some embodiments). This change imposes a requirement that all directed edge target directions {circumflex over (n)}ij determined by the local procedure (block 360) be better aligned with respect to the normals of the base triangles of its corresponding edge-cone than they are using the above-described equation (10). In some embodiments, the above-described target direction {circumflex over (n)}ij may be kept if and when the equation (26) requirement results in an empty solution space. In some embodiments, no effort is made to improve the local cones if cos(αu) is above a suitably high-quality threshold (e.g. cos(αij)>0.5).
Some embodiments also comprise determining the current worst angle w across all edge-cones. If this current worst angle value w is under 90°, the angle-based weight W(αeij) in the penalty function (equation (16)) may be updated to be maximized at this worst angle,
Mesh-optimization loop 330 (with these updates for maximizing minimal quality (e.g. equations (26) and (27))) may be performed, re-determining αij and w each time the process converges (e.g. for each iteration of mesh-optimization loop 330) and may be concluded when further improvement is no longer possible (e.g. w no longer increases) or once the minimal quality reaches a user-configurable minimal quality value.
Input (e.g. input hex-mesh 102) may be obtained by computer 502 via any of its input mechanisms, including, without limitation, by any input device 508, from accessible memory 518, from network 516 or by any other suitable input mechanism. The outputs (e.g. output hex-mesh 158) may be output from computer 502 via any of its output mechanisms, including, without limitation, by any output device 512, to accessible memory 518, to network 516 or to any other suitable output mechanism. As discussed above,
The methods described herein may be implemented by computers comprising one or more processors and/or by one or more suitable processors, which may, in some embodiments, comprise components of suitable computer systems. By way of non-limiting example, such processors could comprise part of a computer-based automated contract valuation system. In general, such processors may comprise any suitable processor, such as, for example, a suitably configured computer, microprocessor, microcontroller, digital signal processor, field-programmable gate array (FPGA), other type of programmable logic device, pluralities of the foregoing, combinations of the foregoing, and/or the like. Such a processor may have access to software which may be stored in computer-readable memory accessible to the processor and/or in computer-readable memory that is integral to the processor. The processor may be configured to read and execute such software instructions and, when executed by the processor, such software may cause the processor to implement some of the functionalities described herein.
Certain implementations of the invention comprise computer processors which execute software instructions which cause the processors to perform a method of the invention. For example, one or more processors in a computer system may implement data processing steps in the methods described herein by executing software instructions retrieved from a program memory accessible to the processors. The invention may also be provided in the form of a program product. The program product may comprise any medium which carries a set of computer-readable signals comprising instructions which, when executed by a data processor, cause the data processor to execute a method of the invention. Program products according to the invention may be in any of a wide variety of forms. The program product may comprise, for example, physical (non-transitory) media such as magnetic data storage media including floppy diskettes, hard disk drives, optical data storage media including CD ROMs, DVDs, electronic data storage media including ROMs, flash RAM, or the like. The instructions may be present on the program product in encrypted and/or compressed formats.
Where a component (e.g. a software module, controller, processor, assembly, device, component, circuit, etc.) is referred to above, unless otherwise indicated, reference to that component (including a reference to a “means”) should be interpreted as including as equivalents of that component any component which performs the function of the described component (i.e., that is functionally equivalent), including components which are not structurally equivalent to the disclosed structure which performs the function in the illustrated exemplary embodiments of the invention.
As will be apparent to those skilled in the art in the light of the foregoing disclosure, many alterations and modifications are possible in the practice of this invention without departing from the spirit or scope thereof. For example:
While a number of exemplary aspects and embodiments have been discussed above, those of skill in the art will recognize certain modifications, permutations, additions and sub-combinations thereof. It is therefore intended that the following appended aspects or claims and aspects or claims hereafter introduced are interpreted to include all such modifications, permutations, additions and sub-combinations.
This application claims the benefit of the priority, and the benefit of 35 USC 119(e), of U.S. application Ser. No. 62/196894 which is hereby incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
4822090 | Kim | Apr 1989 | A |
4833310 | Shimamura et al. | May 1989 | A |
5729670 | Strumolo et al. | Mar 1998 | A |
5731817 | Hahs, Jr. | Mar 1998 | A |
5768156 | Tautges et al. | Jun 1998 | A |
6099058 | Asai et al. | Aug 2000 | A |
6124857 | Itoh et al. | Sep 2000 | A |
6259453 | Itoh et al. | Jul 2001 | B1 |
6446033 | Tatsumi et al. | Sep 2002 | B1 |
6573892 | Yang et al. | Jun 2003 | B1 |
6578189 | Hariya et al. | Jun 2003 | B2 |
6600487 | Henn et al. | Jul 2003 | B1 |
6625938 | Shimada et al. | Sep 2003 | B1 |
6804635 | Dhondt et al. | Oct 2004 | B1 |
6904395 | Dejack et al. | Jun 2005 | B1 |
6999908 | Yang et al. | Feb 2006 | B2 |
7098912 | Borden et al. | Aug 2006 | B1 |
7166381 | Choi et al. | Jan 2007 | B2 |
7181377 | Borden et al. | Feb 2007 | B1 |
7671858 | Staten et al. | Mar 2010 | B1 |
7711532 | Dulac et al. | May 2010 | B2 |
7930154 | Brusoe | Apr 2011 | B2 |
8126234 | Edwards et al. | Feb 2012 | B1 |
8150663 | Mallet et al. | Apr 2012 | B2 |
8194068 | Staten et al. | Jun 2012 | B1 |
8200464 | Slavik | Jun 2012 | B2 |
20020120430 | Yang et al. | Aug 2002 | A1 |
20020144231 | Hariya et al. | Oct 2002 | A1 |
20030056733 | Niki | Mar 2003 | A1 |
20040032408 | Doi | Feb 2004 | A1 |
20040210429 | Yu et al. | Oct 2004 | A1 |
20060139358 | Cho et al. | Jun 2006 | A1 |
20060265169 | Breister et al. | Nov 2006 | A1 |
20080021684 | Dulac et al. | Jan 2008 | A1 |
20080100619 | Chien et al. | May 2008 | A1 |
20080189068 | Brusoe | Aug 2008 | A1 |
20080221839 | Pasino | Sep 2008 | A1 |
20080221845 | Yu et al. | Sep 2008 | A1 |
20080246766 | Yokohari | Oct 2008 | A1 |
20080303817 | Kataoka et al. | Dec 2008 | A1 |
20090015586 | Im et al. | Jan 2009 | A1 |
20090112527 | Mora et al. | Apr 2009 | A1 |
20100226589 | Mukherjee | Sep 2010 | A1 |
20100256957 | Slavik | Oct 2010 | A1 |
20100288204 | Costello et al. | Nov 2010 | A1 |
20100290679 | Gasser et al. | Nov 2010 | A1 |
20120038640 | Lee | Feb 2012 | A1 |
20160292902 | Milne | Oct 2016 | A1 |
Number | Date | Country |
---|---|---|
0232115 | Aug 1987 | EP |
0704811 | Apr 1996 | EP |
0914909 | May 1999 | EP |
0980049 | Feb 2000 | EP |
1077431 | Feb 2001 | EP |
1098208 | Sep 2004 | EP |
1385103 | Sep 2006 | EP |
1978487 | Oct 2008 | EP |
1751585 | Nov 2009 | EP |
2237175 | Oct 2010 | EP |
2206086 | May 2011 | EP |
2012198847 | Oct 2012 | JP |
2002003173 | Jan 2002 | WO |
2002101659 | Dec 2002 | WO |
2004072741 | Aug 2004 | WO |
2005119304 | Dec 2005 | WO |
2006127632 | Nov 2006 | WO |
2008094520 | Aug 2008 | WO |
2009014398 | Jan 2009 | WO |
2009049681 | Apr 2009 | WO |
2009050304 | Apr 2009 | WO |
2009053451 | Apr 2009 | WO |
2012065619 | May 2012 | WO |
Entry |
---|
Wan, S., Yin, Z., Zhang, K., Zhang, H., and Li, X. 2011. A topology-preserving optimization algorithm for polycube mapping. Computers & Graphics 35, 3, 639-649. |
Xu, Y., Chen, R., Gotsman, C., and Liu, L. 2011. Embedding a triangular graph within a given boundary. Computer Aided Geometric Design 28, 6, 349-356. |
Gu, X., Gortler, S. J., and Hoppe, H. 2002. Geometry images. ACM Trans. Graph. 21, 3 (July), 355-361. |
Kia, J., Garcia, I., He, Y., Xin, S.-Q., and Patow, G. 2011. Editable polycube map for gpu-based subdivision surfaces. In Proc. Symposium on Interactive 3D Graphics and Games, 151-158. |
Yang, H., Jin, M., He, Y., Gu, X., and Qin, H. 2008. User-controllable polycube map for manifold spline construction. In Proc. Symposium on Solid and physical modeling, 397-404. |
Hoos, H., and Sttzle, T. 2004. Stochastic Local Search: Foundations & Applications. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. |
Hormann, K., and Floater, M. S. 2006. Mean value coordinates for arbitrary planar polygons. ACM Transactions on Graphics 25, 4 (Oct.), 1424-1441. |
Ju, T., Schaefer, S., and Warren, J. 2005. Mean value coordinates for closed triangular meshes. SIGGRAPH, 561-566. |
Kolmogorov, V., and Zabih, R. 2004. What energy functions can be minimized via graph cuts. IEEE Transactions on Pattern Analysis and Machine Intelligence 26, 65-81. |
L'Evy, B., and Liu, Y. 2010. Lp centroidal voronoi tesselation and its applications. ACM Transactions on Graphics Proc. SIG-GRAPH). |
Li, B., and Qin, H. 2012. Component-aware tensor-product trivariate splines of arbitrary topology. Computers & Graphics. |
Li, B., Li, X., Wang, K., and Qin, H. 2010. Generalized poly-cube trivariate splines. In Proc. Shape Modeling International, 261-265. |
Praun, E., and Hoppe, H. 2001 Spherical parametrization and remeshing. ACM Trans. Graph. 22, 3 (July), 340-349. |
Shamir, A. 2008. A survey on mesh segmentation techniques. Comput. Graph. Forum 27, 1539-1556. |
Sheffer, A., Praun, E., and Rose, K. 2006. Mesh parameterization methods and their applications. Foundations and Trends in Computer Graphics and Vision 2, 2, 105-171. |
Shepherd, J. F., and Johnson, C. R. 2008. Hexahedral mesh generation constraints. Engineering with Computers 24, 3, 195-213. |
Schneiders, R. 1996. A grid-based algorithm for the generation of hexahedral element meshes. Engineering with Computers 12, 168-177. |
Marechal, L. 2009. Advances in octree-based all-hexahedral mesh generation: handling sharp features. In Proc. International Meshing Roundtable. |
Tautges, T. J., Blacker, T., and Mitchell, S. A. 1996. The whisker weaving algorithm: a connectivity-based method for constructing all-hexahedral finite element meshes. Intl. Journal for Numerical Methods in Engineering 39, 19, 3327-3349. |
Miyoshi, K., and Blacker, T. 2000. Hexahedral mesh generation using multi-axis cooper algorithm. In Proc. International Meshing Roundtable, 89-97. |
Li, Y., Liu, Y., Xu, W., Wang, W., and Guo, B. 2012. All-hex meshing using singularity-restricted field. ACM Trans. Graph. 31, 6. |
Gregson, J., Sheffer, A., and Zhang, E. 2011. All-hex mesh generation via volumetric polycube deformation. Computer Graphics Forum (Proc. SGP 2011). |
Livesu, M., Vining, N., Sheffer, A., Gregson, J., and Scateni, R. 2013. Polycut: monotone graph-cuts for polycube base-complex construction. ACM Trans. Graph. 32, 6. |
Huang, J., Jiang, T., Shi, Z., Tong, Y., Bao, H., and Desbrun, M. 2014. L1 based construction of polycube maps from complex shapes. ACM Trans. Graph. 33, 3 (June), 25:1-25:11. |
Aigerman, N., and Lipman, Y. 2013. Injective and bounded distortion mappings in 3d. ACM Trans. Graph. 32, 4. |
Blacker, T. 2000. Meeting the challenge for automated conformal hexahedral meshing. In Proc. International Meshing Roundtable. |
Brewer, M. L., Diachin, L. F., Knupp, P. M., Leurent, T., and Melander, D. J. 2003. The mesquite mesh duality improvement toolkit. in Proc. International Meshing Roundtable. |
Cignoni, P., Rocchini, C., and Scopigno, R. 1998. Metro: Measuring Error on Simplified Surfaces. Comput. Graph. Forum 17, 2. |
Erickson, J. 2014. Efficiently hex-meshing things with topology. Discrete and Computational Geometry 52, 3, 427-449. |
Freitag Diachin, L., Knupp, P., Munson, T., and Shontz, S. 2006. A comparison of two optimization methods for mesh quality improvement. Engineering with Computers 22, 2, 61-74. |
Owen, S. 2009. A survey of unstructured mesh generation technology. http://www.andrew.cmu.edu/user/sowen/survey/hexsurv.html. |
Knupp, P. M. 2001. Hexahedral and tetrahedral mesh untangling. Engineering with Computers 17, 3, 261-268. |
Knupp, P. M. 2003. A method for hexahedral mesh shape optimization. Intl. Journal for Numerical Methods in Engineering 58, 2, 319-332. |
Labelle, F., and Shewchuk, J. R. 2007. Isosurface stuffing: fast tetrahedral meshes with good dihedral angles. ACM Trans. Graph. 26. |
Nieser M. Reitebuch, U., and Polthier, K. 2011. Cube-Cover—Parameterization of 3D Volumes. Computer Graphics Forum. |
Paillé, G.-P., Poulin, P., and L'Evy, B. 2013. Fitting polynomial volumes to surface meshes with Voronoï squared distance minimization. Computer Graphics Forum 32, 5, 103-112. |
Pébay, P. P., Thompson, D., Shepherd, J., Knupp, P., Lisle, C., Magnotta, V. A., and Grosland, N. M. 2007. New applications of the verdict library for standardized mesh verifica¬tion pre, post, and end-to-end processing. In Proc. International Meshing Roundtable. 535-552. |
Ruiz-Gironés, E., Roca, X., Sarrate, J., Montenegro, R., and Escobar, J. 2014. Simultaneous untangling and smoothing of quadrilateral and hexahedral meshes using an object-oriented framework. Advances in Engineering Software. |
Zhang, Y., Bajaj, C., and Xu, G. 2009. Surface smoothing and quality improvement of quadrilateral/hexahedral meshes with geometric flow. Communications in Numerical Methods in Engineering 25, 1, 1-18. |
Sastry, S. P., and Shontz, S. M. 2009. A comparison of gradient-and hessian-based optimization methods for tetrahe¬dral mesh quality improvement. In Proc. International Meshing Roundtable. |
Sastry, S., and Shontz, S. 2014. A parallel log-barrier method for mesh quality improvement and untangling. Engineering with Computers 30, 4, 503-515. |
Schüller, C., Kavan, L., Panozzo, D., and Sorkine-Hornung, O. 2013. Locally injective mappings. Computer Graphics Forum (Proc. SGP) 32, 5, 125-135. |
Sorkine, O., and Alexa, M. 2007. As-rigid-as-possible surface modeling. In Proc. SGP, 109-116. |
Sun, L., Zhao, G., and Ma, X. 2012. Quality improvement methods for hexahedral element meshes adaptively generated using grid-based algorithm. Intl. Journal for Numerical Methods in Engineering 89, 6, 726-761. |
Vartziotis, D., and Himpel, B. 2014. Efficient and global optimization-based smoothing methods for mixed-volume meshes. In Proc. International Meshing Roundtable. 293-311. |
Vartziotis, D., and Papadrakakis, M. 2011 Improved GETMe by adaptive mesh smoothing. Computer Assisted Meth¬ods in Engineering and Science, 20, 55-71. |
Wilson, T., Sarrate, J., Roca, X., Montenegro, R., and Escobar, J. 2012. Untangling and smoothing of quadrilateral and hexahedral meshes. In Eighth Intl. Conference on Engineering Computational Technology. |
Mitchell, Scott A., “Technical History of Hex Mesh Generation”, Sandia National Labs, CUBIT Mesh Generation Project, Sep. 15, 2002. |
Xia, Jiazhi et al., “Direct-Product Volumetric Parameterization of Handlebodies via Harmonic Fields”, 2010 Shape Modeling International Conference. |
Ben-Chen M. et al., “Variational Harmonic Maps for Space Deformation”, ACM Transactions on Graphics, vol. 28, No. 3, Article 34, Aug. 2009. |
Botsch M., Pauly M., Wicke M., Gross M. H.: Adaptive space deformations based on rigid cells. Computer Graphics Forum 26, 3 (2007), 339-347. |
Bommes D., Zimmer H., Kobbelt L.: Mixed integer quadrangulation. ACM Trans. Graph. 28,3 (2009), 1-10. |
Daniels J. et al., “Semi-regular Quadrilateral-only Remeshing from Simplified Base Domains”, In Proc. Symp. on Geom. Proc. (2009), pp. 1427-1435. |
Eppstein D. et al., “Steinitz Theorems for Orthogonal Polyhedra”, In Proc. Symposium on Computational geometry (2010), SoCG '10, pp. 429-438. |
Floater M.S. et al., “Mean value coordinates in 3D”, Comput. Aided Geom. Des. 22 (Oct. 2005), 623-631. |
He Y. et al. “A Divide-And-Conquer Approach for Automatic Polycube Map Construction”, Computers and Graphics 33 (2009), 369-380. |
Han S. et al., “Hexahedral Shell Mesh Construction via Volumetric Polycube Map”, In Proceedings of the 14th ACM Symposium on Solid and Physical Modeling (New York, NY, USA, 2010), SPM '10, ACM, pp. 127-136. |
Kälberer F. et al., “QuadCover—Surface Parameterization using Branched Coverings”, Computer Graphics Forum 26,3 (2007), 375-384. |
Levy B.: Graphite. http://alice.loria.fr/. Prior to filing date Jul. 22, 2013. |
Lin J. et al., “Automatic PolyCube-Maps”, In Advances in Geometric Modeling and Processing, (2008), pp. 3-16. |
Lavin Y. et al., “The Topology of Three-Dimensional Symmetric Tensor Fields”, In Late Breaking Hot Topics IEEE Visualization '96 (1996), CS Press, pp. 43-46. |
Levy B. et al., “Lp Centroidal Voronoi Tesselation and its Applications”, ACM Trans. Graph. 29, 4, Article 119 (Jul. 2010). |
Li X. et al., “Feature-aligned Harmonic Volumetric Mapping using MFS”, Computers & Graphics 34 (2010), pp. 242-251. |
Muller-Hannemann M., “Shelling Hexahedral Complexes for Mesh Generation”, Journal of Graph Algorithms and Applications, vol. 5, No. 5, (2001), pp. 59-91. |
Zhou K. et al., “Large Mesh Deformation Using the Volumetric Graph Laplacian”, Association for Computing Machinery Inc. (2005), pp. 496-503. |
Shepherd J. F., “Topologic and Geometric Constraint Based Hexahedral Mesh Generation”, PhD thesis, University of Utah, May 2007. |
TetGen, “A Quality Tetrahedral Mesh Generator and Three-Dimensional Delaunay Triangulator” Available online: http://www.tetgen.org. Prior to filing date of Jul. 22, 2013. |
Shepherd J. F., “Hexahedral Mesh Generation Constraints”, Scientific Computing and Imaging Institute, University of Utah, Feb. 13, 2006. |
Staten M. et al., “Unconstrained Paving and Plastering: Progress Update”, Sandia Corporation (2006), pp. 469-486. |
Sorkine O., “Differential Representations for Mesh Processing”, School of Computer Science, Tel Aviv University, vol. 25 (2006), No. 4, 789-807. |
Suzuki T. et al., “An Interior Surface Generation Method for All-Hexahedral Meshing”, In Proc. International Meshing Roundtable (2005), pp. 377-397. |
Tarini M. et al., “PolyCube-Maps”, In Proc. SIGGRAPH (2004), pp. 853-860. |
Tournois J. et al., “Interleaving Delaunay Refinement and Optimization for Practical Isotropic Tetrahedron Mesh Generation”, ACM Trans. Graph. 28 (2009). |
Vyas V. et al., “Tensor-Guided Hex-Dominant Mesh Generation with Targeted All-Hex Regions”, In Proc. International Meshing Roundtable (2009), Department of Mechanical Engineering, Carnegie Mellon University. |
Wicke M. et al., Dynamic Local Remeshing for Elastoplastic Simulation, ACM Trans. Graph. 29 (Jul. 2010), University of California, Berkeley. |
Yu Y. et al., “Mesh Editing with Poisson-Based Gradient Field Manipulation”, ACM SIGGRAPH (2004), pp. 1-8. |
Yao et al., “Adaptive geometry image”, 2008, IEEE Transactions on Visualization and Computer Graphics 14, 4, 348-960. |
Yang, H. et al., “Polycube splines”, 2007, In Proc. Symposium Solid and physical modeling, 241-251. |
Chang, C., et al., “Texture tiling on 3d models using automatic polycube maps and wang tiles”, 2010, J. Inf. Sci. Eng. 26, 1, 291-305. |
Alice Project-Team. Graphite. http://alice.loria. fr/software/graphite/ (downloaded Jun. 30, 2016). |
Bommes, D., Levy, B., Pietroni, N., Puppo, E., Silva, C., Tarini, M., and Zorin, D. 2013. Quad-mesh generation and processing: A survey. Computer Graphics Forum. |
Boykov, Y. and Kolmogorov, V. 2001. An experimental comparison of min-cut/max-flow algorithms for energy minimization in vision. IEEE Transactions on Pattern Analysis and Machine Intelligence 26, 359-374. |
Number | Date | Country | |
---|---|---|---|
20170024931 A1 | Jan 2017 | US |
Number | Date | Country | |
---|---|---|---|
62196894 | Jul 2015 | US |