mirror of https://github.com/CGAL/cgal
109 lines
4.0 KiB
TeX
109 lines
4.0 KiB
TeX
\label{sec:remeshing}
|
|
|
|
% few words on remeshing (why it became a key ingredient of mesh
|
|
% processing).
|
|
|
|
The process of replacing an arbitrary mesh by a faithful one with
|
|
improved sampling, regularity and triangle quality is called
|
|
remeshing. Most meshes, be they modeled or acquired by a scanning
|
|
device, can this way be considerably improved in order to ease the
|
|
visualization as well as the processing (see \cite{ss-dgp-01}). CGAL
|
|
has proven successful at easing the combination of several components
|
|
used for remeshing. We now give some details over the components used
|
|
for isotropic~\cite{acdi-isr-03} as well as for anisotropic
|
|
remeshing~\cite{acdld-apr-03}.
|
|
|
|
\subsection{Isotropic Remeshing}
|
|
|
|
% isotropic remeshing, what is that ?
|
|
|
|
Isotropic remeshing leads to well-shaped triangles, and thus
|
|
high-quality meshes for applications where the compactness of the mesh
|
|
elements is critical.
|
|
|
|
% main idea
|
|
|
|
The main idea of the remeshing technique described in
|
|
\cite{acdi-isr-03} is to cast the problem into the
|
|
one of building a 2D centroidal Voronoi diagram over a set of newly
|
|
sampled points. The key is to first parameterize the original mesh to
|
|
obtain a bijective mapping and minimize the distortion due to the
|
|
flattening process. The sampling and meshing stages are then
|
|
considerably simpler on the planar parameter space (see
|
|
Fig.\ref{fig:isotropic}).
|
|
|
|
% figure isotropic remeshing
|
|
\begin{figure}
|
|
\centering
|
|
\epsfig{file=figs/isotropic.eps, width=\linewidth}
|
|
\caption{Isotropic remeshing.}
|
|
\label{fig:isotropic}
|
|
\end{figure}
|
|
|
|
|
|
% CGAL components
|
|
|
|
Two data structures from CGAL have been used to assemble the
|
|
algorithm:
|
|
|
|
\begin{itemize}
|
|
|
|
\item
|
|
The \emph{Polyhedron} has been used to represent the input mesh, after
|
|
having enriched its primitives to store $u,v$ parameter coordinates
|
|
per halfedge in addition to the 3D coordinates per vertex.
|
|
|
|
\item
|
|
After initial sampling the \emph{constrained Delaunay triangulation}
|
|
has been used together with Lloyd's clustering algorithm to build a
|
|
weighted centroidal Voronoi diagram over the new sample points in
|
|
parameter space. The fast point location in a triangulation provided
|
|
by CGAL has been used to determine the final 3D coordinates of the
|
|
sample points.
|
|
|
|
\end{itemize}
|
|
|
|
The CGAL kernel is used to template these two data structures as well
|
|
as all algorithms involved in our remeshing technique
|
|
(parameterization, error diffusion for sampling, Lloyd's clustering
|
|
for sample placement and point location), which nicely unifies all
|
|
components of the algorithm and provides us with genericity for all
|
|
geometric entities and predications. An important feature provided by
|
|
CGAL is the filtered kernel~\cite{bbp-iayed-01,p-iaeia-99}, which
|
|
gives robustness required for complex models by mixing exact and
|
|
floating point arithmetic in a transparent manner for the programmer.
|
|
|
|
\subsection{Anisotropic Remeshing}
|
|
|
|
% anisotropic remeshing, what is that ?
|
|
|
|
Beside quality of the mesh elements, remeshing techniques are also
|
|
concerned by approximation efficiency. When accurate representation is
|
|
needed, a strategic sizing, alignement and aspect ratio of the mesh
|
|
elements is crucial. This is a consequence of the natural anisotropic
|
|
nature of generic surfaces.
|
|
|
|
% main idea
|
|
|
|
The main idea of the anisotropic remeshing technique described in
|
|
\cite{acdld-apr-03} consists of tracing two orthogonal sets of streamlines
|
|
in a conformal parameter space to align mesh edges along principal
|
|
curvature lines and therefore respect the local symmetries. A careful
|
|
control of the streamline density allows us to improve the mesh
|
|
efficiency so as to match the optimality conditions for the $\Ltwo$
|
|
metric in the limit. Such a strategy produces quad-dominant meshes as
|
|
illustrated by Fig.\ref{fig:anisotropic}.
|
|
|
|
|
|
Building blocks taken from CGAL:
|
|
- Polyhedron (enriched primitives to store curvature tensors per
|
|
vertex or per corner, plus uv coordinates)
|
|
- 2D constrained Delaunay triangulation
|
|
|
|
Algorithms:
|
|
- Conformal parameterization
|
|
- Curvature tensor estimator
|
|
- Placement of streamlines
|
|
- A bunch of algorithms which I cannot list here
|
|
|