Free Form Deformation with Subdivision



Basic Principle

The basic idea behind the Free Form Deformation technique is that there exists a mapping between any 4 sided object and another 4 sided object (in 2D case).

In other words, if there is a circle in a square as shown below, it is not hard to imagine how this circle would deform based on the deformation of the square. This intuition describes the one to one mapping which states that "for every point in the original square, there exists a corresponding point in the deformed quadrilateral."



Lattice Creation

In order to deform any objects then, the object must be enclosed to some cubes or quadrilaterals. In our system, we created an intuitive user interface to make this step easy and painless.

The picture above shows the basic steps of adding a cube to the existing cubes. First the user selects a face where a cube would be attached (as seen in the third picture). Then by clicking on the "Add Cube" button in the control panel, a new cube is added to the existing ones.

Subdivision

We employed the a modified version of the volume subdivision technique described by Catmull and Clark. Volume subdivision weighs the volume being subdivided, and creates "smoother" curves while adding more detail (more quadilaterals).



Deformation

After the mesh object has been parameterized (which means that after the vertices on the mesh are given coordinate positions based on where they are in the quadrilaterals), deformation could be achieved by moving the points of the lattices around.



Results



Limitation


My analogy of what's happening here is as if a person is wearing a really stiff suit and tries to raise his arm as seen in the picture. There would be some bunching up effects on the shoulder, and some streching effects at the arm pit area. But more technically speaking, what's happening here is that the system has no notion of the mesh itself. The idea of Free Form Deformation is to deform a certain space and everything in that space. So the system would blindly deform the quadrilaterals along with the object inside of it. In the above case, the result is that the arm ends up getting too "fat". Obviously the ideal would be to have those squash and stretch effects taken out, and after a whole lot of thinking, I came to the conclusion that using free-form deformation techniques cannot solve the problem, or at least I was too dumb to figure it out. In the end, I had to take a slightly different approach to solve the problem. The work that went into finding this "different approach" turned into my thesis on volume deformation.