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",
|
title = "Evolvability as a Quality Criterion for Linear Deformation Representations in Evolutionary Optimization",
|
||||||
year = "2016",
|
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{ContinuedFloat}{0}
|
||||||
\setcounter{float@type}{16}
|
\setcounter{float@type}{16}
|
||||||
\setcounter{lstnumber}{1}
|
\setcounter{lstnumber}{1}
|
||||||
\setcounter{NAT@ctr}{1}
|
\setcounter{NAT@ctr}{3}
|
||||||
\setcounter{AM@survey}{0}
|
\setcounter{AM@survey}{0}
|
||||||
\setcounter{r@tfl@t}{0}
|
\setcounter{r@tfl@t}{0}
|
||||||
\setcounter{subfigure}{0}
|
\setcounter{subfigure}{0}
|
||||||
\setcounter{subtable}{0}
|
\setcounter{subtable}{0}
|
||||||
\setcounter{@todonotes@numberoftodonotes}{0}
|
\setcounter{@todonotes@numberoftodonotes}{1}
|
||||||
\setcounter{Item}{0}
|
\setcounter{Item}{0}
|
||||||
\setcounter{Hfootnote}{0}
|
\setcounter{Hfootnote}{2}
|
||||||
\setcounter{bookmark@seq@number}{16}
|
\setcounter{bookmark@seq@number}{16}
|
||||||
\setcounter{algorithm}{0}
|
\setcounter{algorithm}{0}
|
||||||
\setcounter{ALC@unique}{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
|
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
|
\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}?
|
## What is \acf{FFD}?
|
||||||
|
|
||||||
First of all we have to establish how a \ac{FFD} works and why this is a good
|
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?
|
## Wieso ist evo-Opt so cool?
|
||||||
|
|
||||||
@ -48,6 +106,7 @@ tool for deforming meshes in the first place.
|
|||||||
# Hauptteil
|
# Hauptteil
|
||||||
|
|
||||||
## Was ist FFD?
|
## Was ist FFD?
|
||||||
|
\label{3dffd}
|
||||||
|
|
||||||
- Definition
|
- Definition
|
||||||
- Wieso Newton-Optimierung?
|
- 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}
|
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
|
instead of \acf{RBF} to create a deformation and evaluate if the
|
||||||
evolution-criteria still work as a predictor given the different
|
evolution-criteria still work as a predictor given the different
|
||||||
deformation.
|
deformation scheme.
|
||||||
|
|
||||||
\section{\texorpdfstring{What is \acf{FFD}?}{What is ?}}\label{what-is}
|
\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
|
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
|
Given an arbitrary number of points \(p_i\) alongside a line, we map a
|
||||||
Optimierung?}\label{was-ist-evolutionuxe4re-optimierung}
|
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}
|
\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}
|
\section{Was ist FFD?}\label{was-ist-ffd}
|
||||||
|
|
||||||
|
\label{3dffd}
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\tightlist
|
\tightlist
|
||||||
\item
|
\item
|
||||||
|
Loading…
Reference in New Issue
Block a user