cgal/Packages/Tutorial/tutorial/Polyhedron/sgp2004/paper/remeshing.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