alexz@cats.ucsc.edu
March 18, 2002

Deformation of 3D Models

Description

My project was to deform a 3D model by deforming a grid of control points. I based my work on the method given by Sederberg and Parry.

The model, or mesh, is placed in a grid volume and its verts are mapped into the grid volume space. Since the mesh's coords are relative to the grid, deformations that are applied to the relatively simple grid volume cause the mesh to be deformed as well. We can apply multiple deformations (ie twist and bend) at the same time by summing up the distortion components applied to each vertex to get a final displacement.

I used a Bezier volume, which is an extension to a Bezier spline and Bezier surface patch, to define my deformation space, because of its properties, such as keeping the curve within the hull, ease of implementation, and desired effect.

User Guide

The model can be deformed by clicking on and dragging the control points, which can be moved in all 3 dimensions. The model can be deformed in 2D or 3D and can switch between the two at any time. Screen shots can be taken and are save in the .PPM file format. They are saved in sequential order. Models that are in .coor + .poly format are supported and can be loaded at any time. Models can be autmatically exploded and twisted in unimaginable ways by the user.

Sample Images

Here are some sample deformations done to the Enterprise model. Note that deformations can be done in either 2D or 3D.


A movie showing the Enterprise and a '57 Chevy can be found here


Last modified: Tuesday, March 18, 2002