Skip to content
Snippets Groups Projects
Commit 1ea5884f authored by Jan Schnathmeier's avatar Jan Schnathmeier
Browse files

EmbeddingRepresentation /initialization

parent 427974ec
No related branches found
No related tags found
No related merge requests found
......@@ -12,11 +12,46 @@ It is clear that one of the input parameters has to be $\mathcal{B}$, but afterw
\begin{enumerate}
\item $\mathcal{B}, \Phi, \mathcal{M}$: With all parameters given, the embedding is ready and no further initialization needs to be done. On the other hand this leaves a difficult task to the user in having to input a pre-initialized embedding.
\item $\mathcal{B}, \mathcal{M}$: Giving just the two meshes $\mathcal{B}$ and $\mathcal{M}$ and then embedding $\mathcal{M}$ onto $\mathcal{B}$ creates a similar initialization as that of \cite{praun2001consistent}, and could be handled with a similar method for finding the embedding $\Phi$. However, designing a fitting mesh $\mathcal{M}$ in such a fashion is no trivial task, and should still be simplified.
\item $\mathcal{B}, V_\mathcal{M}$\subset V_\mathcal{B}$: Giving a subset $V_\mathcal{M}$\subset V_\mathcal{B}$ of the vertices of $\mathcal{B}$ as an input implicitly defines the vertex embedding which is part of $\Phi$. The connectivity and actual edges of $\mathcal{M}$ can then be triangulated. This type of input is the easiest for a user, since all that needs to be given is a set of feature points V_\mathcal{M}\subset V_\mathcal{B}$.
\item $\mathcal{B}, V_\mathcal{M}\subset V_\mathcal{B}$: Giving a subset $V_\mathcal{M}\subset V_\mathcal{B}$ of the vertices of $\mathcal{B}$ as an input implicitly defines the vertex embedding which is part of $\Phi$. The connectivity and actual edges of $\mathcal{M}$ can then be triangulated. This type of input is the easiest for a user, since all that needs to be given is a set of feature points V_\mathcal{M}\subset V_\mathcal{B}$.
\begin{enumerate}[label=(\alph*)]
\item A special case of this input type is $V_\mathcal{M}=V_\mathcal{B}$, in which case $E_\mathcal{M}=E_\mathcal{B}$ is a trivial triangulation, and with that
$\mathcal{M}=\mathcal{B}$. With that the initialization is done by copying $\mathcal{B}$.
\item A further simplification of this is automatically detecting or randomly assigning a set of feature points $V_\mathcal{M}$, then proceeding as usual.
$\mathcal{M}=\mathcal{B}$. Thus, the initialization immediately terminates by copying $\mathcal{B}$ and adding the necessary connecting pointers.
\item A further simplification of this input type is automatically detecting or randomly assigning a set of feature points $V_\mathcal{M}$, then proceeding as usual.
\end{enumerate}
\end{enumerate}
In our implementation we decide for an initialization with input parameters ''$\mathcal{B}, V_\mathcal{M}\subset V_\mathcal{B}$'', since this is the easiest for the user. We also implement a way to randomly select $V_\mathcal{M}$ by giving either a ratio or a total number of vertices in $V_\mathcal{B}$ to be selected. An initialization with inputs ''$\mathcal{B}, \Phi, \mathcal{M}$'' is implicitly supported as it already defines the whole embedding and needs no further work. And an initialization of the type ''$\mathcal{B}, \mathcal{M}$'' can be simulated by inputting $\mathcal{B}, V_\mathcal{M}\in\mathcal{M}$ and then flipping edges of $\mathcal{M}$ until it reaches the desired connectivity.
\begin{wrapfigure}[41]{r}{0.33\textwidth}
\def\svgwidth{0.33\textwidth}
{\centering
\input{img/RockerarmTriangulation.pdf_tex}\par
}
\caption{Delaunay triangulation pipeline}
\label{fig:RockerarmTriangulation}
\end{wrapfigure}
Now the task is creating a meta mesh $\mathcal{M}$ and an embedding $\Phi$ on the base mesh $\mathcal{B}$ given an inpute of $\mathcal{B}$ and $V_\mathcal{M}\subset V_\mathcal{B}$. This can be done using Delaunay Triangulation \cite{delaunay1934sphere} on $\mathcal{B}$ with $V_\mathcal{M}$ as feature points to grow Voronoi regions from.
Figure \ref{fig:RockerarmTriangulation} illustrates the entire process. (a) shows the input, a base mesh $\mathcal{B}$ with selected feature vertices $V_\mathcal{M}$ marked in red. In the second step (b) Voronoi regions are grown around each feature point. This is done by growing regions outwardly from each feature vertex, and assigning each base vertex to the feature vertex it is closest to (by navigating over surface edges). Lastly, these regions can be used to derive connectivity for $\mathcal{M}$ as seen in Figure \ref{fig:RockerarmTriangulation}.(c).
In practice, we derive the connectivity from the Voronoi regions by iterating over the faces of $\mathcal{B}$. Since $\mathcal{B}$ is a triangle mesh, there has to be one unique face in $\mathcal{B}$ for which the Voronoi regions of each of its three vertices differ, per face in $V_\mathcal{M}$. Thus we derive the edges $E_\mathcal{M}$ of $\mathcal{M}.
Lastly, these edges $E_\mathcal{M}$ still need to be traced. Given a very fine mesh $\mathcal{M}$, or thin features on $\mathcal{M}$, it can happen that a Voronoi region borders with the same Voronoi region twice. In such a case it is necessary to ensure that edges are traced through the correct border (eg. from two sides around a handle rather than twice around the same side). This is easily done by restricting edge traces during the initial triangulation by disallowing them from crossing any Voronoi borders \textit{except} the one corresponding to its edge.
For the case where a Voronoi region borders with itself, we stop our triangulation and ask the user for a new input - or randomize with a new seed if the initial feature points were randomly chosen. We do the same when a Voronoi region has non-disc topology, in order to keep the initialization stable and regular.
This type of triangulation always results in a triangle mesh $\mathcal{M}$, and produces a fairly regular mesh with nice properties. For instance, the minimum angle between two edges is maximized when using Delaunay triangulation, since an edge is always shorter or equal in length to the flipped edge. With that, any flip can only result in a smaller minimum angle, not a larger one.
Due to the ease with which a Delaunay triangulation can be computed, and the regularity of it, we believe that this is a very stable method for initialization when starting with random vertices $V_\mathcal{M}$. If the positions of $V_\mathcal{M}$ should also be optimized another approach is starting with $\mathcal{M}=\mathcal{B}$ and then iteratively refining $\mathcal{M}$; more on that in Chapter \ref{ch:EmbeddedIsotropicRemeshing}.
\begin{wrapfigure}[10]{r}{0.45\textwidth}
\vspace{-10pt}
\begin{centering}
\includegraphics[width=0.45\textwidth]{img/HalfsphereMetamesh.png}\par
\end{centering}
\caption{Halfsphere triangulated}
\label{fig:HalfsphereMetamesh}
\end{wrapfigure}
\textbf{On meshes with boundaries}: This method can be expanded to work on meshes with boundaries by making the following additions. When selecting $V_\mathcal{M}$, ensure that there is at least one $v_B\in V_\mathcal{M}$ for each boundary $B$. Grow the Voronoi regions as usual and infer the connectivity from it. This connectivity is now only missing connectivity along the boundaries; this can be added by traversing each boundary and adding meta edges along them. The faces adjacent to those boundary edges may not be triangles yet, in which case they have to be triangulated. This ensures full connectivity, and the triangulation is done. Figure \ref{fig:HalfsphereMetamesh} shows a triangulation of a simple sphere with half of it cut off, resulting in a large boundary.
\ No newline at end of file
img/HalfsphereMetamesh.png

96.9 KiB

File added
%% Creator: Inkscape inkscape 0.92.4, www.inkscape.org
%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010
%% Accompanies image file 'RockerarmTriangulation.pdf' (pdf, eps, ps)
%%
%% To include the image in your LaTeX document, write
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics{<filename>.pdf}
%% To scale the image, write
%% \def\svgwidth{<desired width>}
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics[width=<desired width>]{<filename>.pdf}
%%
%% Images with a different path to the parent latex file can
%% be accessed with the `import' package (which may need to be
%% installed) using
%% \usepackage{import}
%% in the preamble, and then including the image with
%% \import{<path to file>}{<filename>.pdf_tex}
%% Alternatively, one can specify
%% \graphicspath{{<path to file>/}}
%%
%% For more information, please see info/svg-inkscape on CTAN:
%% http://tug.ctan.org/tex-archive/info/svg-inkscape
%%
\begingroup%
\makeatletter%
\providecommand\color[2][]{%
\errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}%
\renewcommand\color[2][]{}%
}%
\providecommand\transparent[1]{%
\errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}%
\renewcommand\transparent[1]{}%
}%
\providecommand\rotatebox[2]{#2}%
\newcommand*\fsize{\dimexpr\f@size pt\relax}%
\newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}%
\ifx\svgwidth\undefined%
\setlength{\unitlength}{418.85371651bp}%
\ifx\svgscale\undefined%
\relax%
\else%
\setlength{\unitlength}{\unitlength * \real{\svgscale}}%
\fi%
\else%
\setlength{\unitlength}{\svgwidth}%
\fi%
\global\let\svgwidth\undefined%
\global\let\svgscale\undefined%
\makeatother%
\begin{picture}(1,4.51275265)%
\lineheight{1}%
\setlength\tabcolsep{0pt}%
\put(0,0){\includegraphics[width=\unitlength,page=1]{img/RockerarmTriangulation.pdf}}%
\put(0.00096008,3.01227942){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}(a) selected feature points\end{tabular}}}}%
\put(0.00367551,1.53554985){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}(b) Created Voronoi Regions\end{tabular}}}}%
\put(0.00661394,0.00794562){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}(c) Delaunay Triangulation\end{tabular}}}}%
\end{picture}%
\endgroup%
......@@ -123,6 +123,38 @@
year={1934}
}
@article{dijkstra1959note,
title={A note on two problems in connexion with graphs},
author={Dijkstra, Edsger W and others},
journal={Numerische mathematik},
volume={1},
number={1},
pages={269--271},
year={1959}
}
@inproceedings{dong2006spectral,
title={Spectral surface quadrangulation},
author={Dong, Shen and Bremer, Peer-Timo and Garland, Michael and Pascucci, Valerio and Hart, John C},
booktitle={ACM Transactions on Graphics (TOG)},
volume={25},
number={3},
pages={1057--1066},
year={2006},
organization={ACM}
}
@article{ebke2014level,
title={Level-of-detail quad meshing},
author={Ebke, Hans-Christian and Campen, Marcel and Bommes, David and Kobbelt, Leif},
journal={ACM Transactions on Graphics (TOG)},
volume={33},
number={6},
pages={184},
year={2014},
publisher={ACM}
}
@article{euler1758elementa,
title={Elementa doctrinae solidorum},
author={Euler, Leonhard},
......@@ -167,47 +199,6 @@
year={1993}
}
@article{jiang2017simplicial,
title={Simplicial complex augmentation framework for bijective maps},
author={Jiang, Zhongshi and Schaefer, Scott and Panozzo, Daniele},
journal={ACM Transactions on Graphics},
volume={36},
number={6},
year={2017}
}
@article{dijkstra1959note,
title={A note on two problems in connexion with graphs},
author={Dijkstra, Edsger W and others},
journal={Numerische mathematik},
volume={1},
number={1},
pages={269--271},
year={1959}
}
@inproceedings{dong2006spectral,
title={Spectral surface quadrangulation},
author={Dong, Shen and Bremer, Peer-Timo and Garland, Michael and Pascucci, Valerio and Hart, John C},
booktitle={ACM Transactions on Graphics (TOG)},
volume={25},
number={3},
pages={1057--1066},
year={2006},
organization={ACM}
}
@article{ebke2014level,
title={Level-of-detail quad meshing},
author={Ebke, Hans-Christian and Campen, Marcel and Bommes, David and Kobbelt, Leif},
journal={ACM Transactions on Graphics (TOG)},
volume={33},
number={6},
pages={184},
year={2014},
publisher={ACM}
}
@article{hormann1999hierarchical,
title={Hierarchical Parametrization of Triangulated Surfaces},
author={Hormann, Kai and Greiner, G{\"u}nther and Campagna, Swen},
......@@ -217,6 +208,15 @@
publisher={IOS Press}
}
@article{jiang2017simplicial,
title={Simplicial complex augmentation framework for bijective maps},
author={Jiang, Zhongshi and Schaefer, Scott and Panozzo, Daniele},
journal={ACM Transactions on Graphics},
volume={36},
number={6},
year={2017}
}
@inproceedings{kettner1998designing,
title={Designing a data structure for polyhedral surfaces},
author={Kettner, Lutz},
......@@ -354,6 +354,14 @@
publisher={Springer}
}
@inproceedings{musin1997properties,
title={Properties of the Delaunay triangulation},
author={Musin, Oleg R},
booktitle={Proceedings of the thirteenth annual symposium on Computational geometry},
pages={424--426},
year={1997}
}
@misc{openmesh2020halfedge,
title = {OpenMesh documentation, halfedge data structure},
author={M{\"o}bius, Jan},
......
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment