wrote more introduction
This commit is contained in:
parent
8b4bcef353
commit
730d275acb
@ -6,3 +6,19 @@
|
||||
title = "Evolvability as a Quality Criterion for Linear Deformation Representations in Evolutionary Optimization",
|
||||
year = "2016",
|
||||
}
|
||||
@article{spitzmuller1996bezier,
|
||||
title="Partial derivatives of Bèzier surfaces",
|
||||
author="Spitzmüller, Klaus",
|
||||
journal="Computer-Aided Design",
|
||||
volume="28",
|
||||
number="1",
|
||||
pages="67--72",
|
||||
year="1996",
|
||||
publisher="Elsevier",
|
||||
}
|
||||
@article{hsu1991dmffd,
|
||||
title={A direct manipulation interface to free-form deformations},
|
||||
author={Hsu, William M},
|
||||
journal={Master's thesis, Brown University},
|
||||
year={1991}
|
||||
}
|
||||
|
@ -22,14 +22,14 @@
|
||||
\setcounter{ContinuedFloat}{0}
|
||||
\setcounter{float@type}{16}
|
||||
\setcounter{lstnumber}{1}
|
||||
\setcounter{NAT@ctr}{1}
|
||||
\setcounter{NAT@ctr}{3}
|
||||
\setcounter{AM@survey}{0}
|
||||
\setcounter{r@tfl@t}{0}
|
||||
\setcounter{subfigure}{0}
|
||||
\setcounter{subtable}{0}
|
||||
\setcounter{@todonotes@numberoftodonotes}{0}
|
||||
\setcounter{@todonotes@numberoftodonotes}{1}
|
||||
\setcounter{Item}{0}
|
||||
\setcounter{Hfootnote}{0}
|
||||
\setcounter{Hfootnote}{2}
|
||||
\setcounter{bookmark@seq@number}{16}
|
||||
\setcounter{algorithm}{0}
|
||||
\setcounter{ALC@unique}{0}
|
||||
|
65
arbeit/ma.md
65
arbeit/ma.md
@ -30,14 +30,72 @@ quality and potential of such optimisation.
|
||||
|
||||
We will replicate the same setup on the same meshes but use \acf{FFD} instead of
|
||||
\acf{RBF} to create a deformation and evaluate if the evolution-criteria still
|
||||
work as a predictor given the different deformation.
|
||||
work as a predictor given the different deformation scheme.
|
||||
|
||||
## What is \acf{FFD}?
|
||||
|
||||
First of all we have to establish how a \ac{FFD} works and why this is a good
|
||||
tool for deforming meshes in the first place.
|
||||
tool for deforming meshes in the first place. For simplicity we only summarize the
|
||||
1D-case from \cite{spitzmuller1996bezier} here and go into the extension to the 3D case in chapter \ref{3dffd}.
|
||||
|
||||
Given an arbitrary number of points $p_i$ alongside a line, we map a scalar
|
||||
value $\tau_i \in [0,1[$ to each point with $\tau_i < \tau_{i+1} \forall i$.
|
||||
Given a degree of the target polynomial $d$ we define the curve $N_{i,d,\tau_i}(u)$ as follows:
|
||||
|
||||
$$
|
||||
\begin{equation}
|
||||
\label{ffd1d1}
|
||||
N_{i,0,\tau}(u) = \begin{cases} 1, & u \in [\tau_i, \tau_{i+1}[ \\ 0, & \mbox{otherwise} \end{cases}
|
||||
\end{equation}
|
||||
$$
|
||||
and
|
||||
$$
|
||||
\begin{equation}
|
||||
\label{ffd1d2}
|
||||
N_{i,d,\tau}(u) = \frac{u-\tau_i}{\tau_{i+d}} N_{i,d-1,\tau}(u) + \frac{\tau_{i+d+1} - u}{\tau_{i+d+1}-\tau_{i+1}} N_{i+1,d-1,\tau}(u)
|
||||
\end{equation}
|
||||
$$
|
||||
|
||||
If we now multiply every $p_i$ with the corresponding $N_{i,d,\tau_i}(u)$ we get the contribution of each
|
||||
point $p_i$ to the final curve-point parameterized only by $u \in [0,1[$.
|
||||
As can be seen from equation \ref{ffd1d2} we only access points $[i..i+d]$ for any given $i$^[one more for each recursive step.], which
|
||||
gives us, in combination with choosing $p_i$ and $\tau_i$ in order, only a local interference of $d+1$ points.
|
||||
|
||||
We can even derive this equation straightforward for an arbitrary $N$^[*Warning:* in the case of $d=1$ the recursion-formula yields a $0$ denominator, but $N$ is also $0$. The right solution for this case is a derivative of $0$]:
|
||||
|
||||
$$\frac{\partial}{\partial u} N_{i,d,r}(u) = \frac{d}{\tau_{i+d} - \tau_i} N_{i,d-1,\tau}(u) - \frac{d}{\tau_{i+d+1} - \tau_{i+1}} N_{i+1,d-1,\tau}(u)$$
|
||||
|
||||
For a B-Spline
|
||||
$$s(u) = \sum_{i} N_{i,d,\tau_i}(u) p_i$$
|
||||
these derivations yield $\frac{\partial^d}{\partial u} s(u) = 0$.
|
||||
|
||||
Another interesting property of these recursive polynomials is that they are continuous (given $d \ge 1$) as every $p_i$ gets
|
||||
blended in linearly between $\tau_i$ and $\tau_{i+d}$ and out linearly between $\tau_{i+1}$ and $\tau_{i+d+1}$
|
||||
as can bee seen from the two coefficients in every step of the recursion.
|
||||
|
||||
### Why is \ac{FFD} a good deformation function?
|
||||
|
||||
The usage of \ac{FFD} as a tool for manipulating follows directly from the properties of the polynomials and the correspondence to
|
||||
the control points.
|
||||
Having only a few control points gives the user a nicer high-level-interface, as she only needs to move these points and the
|
||||
model follows in an intuitive manner. The deformation is smooth as the underlying polygon is smooth as well and affects as many
|
||||
vertices of the model as needed. Moreover the changes are always local so one risks not any change that a user cannot immediately see.
|
||||
|
||||
But there are also disadvantages of this approach. The user loses the ability to directly influence vertices and even seemingly simple tasks as
|
||||
creating a plateau can be difficult to achieve\cite[chapter~3.2]{hsu1991dmffd}.
|
||||
|
||||
This disadvantages led to the formulation of \acf{DM-FFD}\cite[chapter~3.3]{hsu1991dmffd} in which the user directly interacts with the surface-mesh.
|
||||
All interactions will be applied proportionally to the control-points that make up the parametrization of the interaction-point
|
||||
itself yielding a smooth deformation of the surface *at* the surface without seemingly arbitrary scattered control-points.
|
||||
|
||||
But this approach also has downsides as can be seen in \cite[figure~7]{hsu1991dmffd}\todo{figure hier einfügen?}, as the tessellation of
|
||||
the invisible grid has a major impact on the deformation itself.
|
||||
|
||||
All in all \ac{FFD} and \ac{DM-FFD} are still good ways to deform a high-polygon mesh albeit the downsides.
|
||||
|
||||
## What is evaluational optimization?
|
||||
|
||||
|
||||
## Was ist evolutionäre Optimierung?
|
||||
|
||||
## Wieso ist evo-Opt so cool?
|
||||
|
||||
@ -48,6 +106,7 @@ tool for deforming meshes in the first place.
|
||||
# Hauptteil
|
||||
|
||||
## Was ist FFD?
|
||||
\label{3dffd}
|
||||
|
||||
- Definition
|
||||
- Wieso Newton-Optimierung?
|
||||
|
BIN
arbeit/ma.pdf
BIN
arbeit/ma.pdf
Binary file not shown.
@ -157,15 +157,91 @@ potential of such optimisation.
|
||||
We will replicate the same setup on the same meshes but use \acf{FFD}
|
||||
instead of \acf{RBF} to create a deformation and evaluate if the
|
||||
evolution-criteria still work as a predictor given the different
|
||||
deformation.
|
||||
deformation scheme.
|
||||
|
||||
\section{\texorpdfstring{What is \acf{FFD}?}{What is ?}}\label{what-is}
|
||||
|
||||
First of all we have to establish how a \ac{FFD} works and why this is a
|
||||
good tool for deforming meshes in the first place.
|
||||
good tool for deforming meshes in the first place. For simplicity we
|
||||
only summarize the 1D-case from \cite{spitzmuller1996bezier} here and go
|
||||
into the extension to the 3D case in chapter \ref{3dffd}.
|
||||
|
||||
\section{Was ist evolutionäre
|
||||
Optimierung?}\label{was-ist-evolutionuxe4re-optimierung}
|
||||
Given an arbitrary number of points \(p_i\) alongside a line, we map a
|
||||
scalar value \(\tau_i \in [0,1[\) to each point with
|
||||
\(\tau_i < \tau_{i+1} \forall i\). Given a degree of the target
|
||||
polynomial \(d\) we define the curve \(N_{i,d,\tau_i}(u)\) as follows:
|
||||
|
||||
\[
|
||||
\begin{equation}
|
||||
\label{ffd1d1}
|
||||
N_{i,0,\tau}(u) = \begin{cases} 1, & u \in [\tau_i, \tau_{i+1}[ \\ 0, & \mbox{otherwise} \end{cases}
|
||||
\end{equation}
|
||||
\] and \[
|
||||
\begin{equation}
|
||||
\label{ffd1d2}
|
||||
N_{i,d,\tau}(u) = \frac{u-\tau_i}{\tau_{i+d}} N_{i,d-1,\tau}(u) + \frac{\tau_{i+d+1} - u}{\tau_{i+d+1}-\tau_{i+1}} N_{i+1,d-1,\tau}(u)
|
||||
\end{equation}
|
||||
\]
|
||||
|
||||
If we now multiply every \(p_i\) with the corresponding
|
||||
\(N_{i,d,\tau_i}(u)\) we get the contribution of each point \(p_i\) to
|
||||
the final curve-point parameterized only by \(u \in [0,1[\). As can be
|
||||
seen from equation \ref{ffd1d2} we only access points \([i..i+d]\) for
|
||||
any given \(i\)\footnote{one more for each recursive step.}, which gives
|
||||
us, in combination with choosing \(p_i\) and \(\tau_i\) in order, only a
|
||||
local interference of \(d+1\) points.
|
||||
|
||||
We can even derive this equation straightforward for an arbitrary
|
||||
\(N\)\footnote{\emph{Warning:} in the case of \(d=1\) the
|
||||
recursion-formula yields a \(0\) denominator, but \(N\) is also \(0\).
|
||||
The right solution for this case is a derivative of \(0\)}:
|
||||
|
||||
\[\frac{\partial}{\partial u} N_{i,d,r}(u) = \frac{d}{\tau_{i+d} - \tau_i} N_{i,d-1,\tau}(u) - \frac{d}{\tau_{i+d+1} - \tau_{i+1}} N_{i+1,d-1,\tau}(u)\]
|
||||
|
||||
For a B-Spline \[s(u) = \sum_{i} N_{i,d,\tau_i}(u) p_i\] these
|
||||
derivations yield \(\frac{\partial^d}{\partial u} s(u) = 0\).
|
||||
|
||||
Another interesting property of these recursive polynomials is that they
|
||||
are continuous (given \(d \ge 1\)) as every \(p_i\) gets blended in
|
||||
linearly between \(\tau_i\) and \(\tau_{i+d}\) and out linearly between
|
||||
\(\tau_{i+1}\) and \(\tau_{i+d+1}\) as can bee seen from the two
|
||||
coefficients in every step of the recursion.
|
||||
|
||||
\subsection{\texorpdfstring{Why is \ac{FFD} a good deformation
|
||||
function?}{Why is a good deformation function?}}\label{why-is-a-good-deformation-function}
|
||||
|
||||
The usage of \ac{FFD} as a tool for manipulating follows directly from
|
||||
the properties of the polynomials and the correspondence to the control
|
||||
points. Having only a few control points gives the user a nicer
|
||||
high-level-interface, as she only needs to move these points and the
|
||||
model follows in an intuitive manner. The deformation is smooth as the
|
||||
underlying polygon is smooth as well and affects as many vertices of the
|
||||
model as needed. Moreover the changes are always local so one risks not
|
||||
any change that a user cannot immediately see.
|
||||
|
||||
But there are also disadvantages of this approach. The user loses the
|
||||
ability to directly influence vertices and even seemingly simple tasks
|
||||
as creating a plateau can be difficult to
|
||||
achieve\cite[chapter~3.2]{hsu1991dmffd}.
|
||||
|
||||
This disadvantages led to the formulation of
|
||||
\acf{DM-FFD}\cite[chapter~3.3]{hsu1991dmffd} in which the user directly
|
||||
interacts with the surface-mesh. All interactions will be applied
|
||||
proportionally to the control-points that make up the parametrization of
|
||||
the interaction-point itself yielding a smooth deformation of the
|
||||
surface \emph{at} the surface without seemingly arbitrary scattered
|
||||
control-points.
|
||||
|
||||
But this approach also has downsides as can be seen in
|
||||
\cite[figure~7]{hsu1991dmffd}\todo{figure hier einfügen?}, as the
|
||||
tessellation of the invisible grid has a major impact on the deformation
|
||||
itself.
|
||||
|
||||
All in all \ac{FFD} and \ac{DM-FFD} are still good ways to deform a
|
||||
high-polygon mesh albeit the downsides.
|
||||
|
||||
\section{What is evaluational
|
||||
optimization?}\label{what-is-evaluational-optimization}
|
||||
|
||||
\section{Wieso ist evo-Opt so cool?}\label{wieso-ist-evo-opt-so-cool}
|
||||
|
||||
@ -181,6 +257,8 @@ Optimierung?}\label{was-ist-evolutionuxe4re-optimierung}
|
||||
|
||||
\section{Was ist FFD?}\label{was-ist-ffd}
|
||||
|
||||
\label{3dffd}
|
||||
|
||||
\begin{itemize}
|
||||
\tightlist
|
||||
\item
|
||||
|
Loading…
Reference in New Issue
Block a user