diff --git a/arbeit/bibma.bib b/arbeit/bibma.bib index 6bf34e1..5b5d2d1 100644 --- a/arbeit/bibma.bib +++ b/arbeit/bibma.bib @@ -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} +} diff --git a/arbeit/files/erklaerung.aux b/arbeit/files/erklaerung.aux index 8f06c7b..d93c955 100644 --- a/arbeit/files/erklaerung.aux +++ b/arbeit/files/erklaerung.aux @@ -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} diff --git a/arbeit/ma.md b/arbeit/ma.md index e4ba155..386b635 100644 --- a/arbeit/ma.md +++ b/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? diff --git a/arbeit/ma.pdf b/arbeit/ma.pdf index 471fa76..3152483 100644 Binary files a/arbeit/ma.pdf and b/arbeit/ma.pdf differ diff --git a/arbeit/ma.tex b/arbeit/ma.tex index 25177eb..0f79779 100644 --- a/arbeit/ma.tex +++ b/arbeit/ma.tex @@ -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