CS 779 -Free Form Deformation, 1999


Botros Gerges

My project consists of Free-Form-Deformation surface editor.  The goal of the editor is to allow the user to create different models by manipulating a flat surface.  However, there is no restriction of starting from a flat surface.  The algorithm is able to handle an initial surface of any shape.  Once the initial surface is known (in the editor, it is always flat), a lattice is generated around the surface.  The lattice is tri-variate Bezier volume that maps the points of the surface to its local coordinates.

Features
I implemented two methods of deformations, the common form of FFD which allows the user to move the lattice control points, and Direct FFD (DFFD).

Algorithms/Implementation
I chose to make the lattice a tri-quartic Bezier volume, because Bezier evaluations are faster than B-Spline evaluations.  I chose quartic because cubic does not provide a very flexible deformation.   However, I did not choose a degree higher than 4 because 4 has 64 control points, while 5 has 125 (almost double).  This means that degree 5 takes 64 extra affine combinations per evaluation (80 compared to 26).  This is a significant performance reduction. Surface/Volume Evaluation
For both the bi-variate surface and the tri-variate volume, I wrote a Mann-DeRose evaluation.  I also implemented my own tesselator for the surface.

Limitations/Improvements

References