View Morphing Range Data

By Jon Rowlett

The Program

The program was written for Windows NT using FLTK and based on the class starter code and ports of libpicio and libtiff provided by the class.  Running on a 600MHz P3 with a Diamond Viper V770D, the application was able to warp and display the resulting image in real time (>30fps).  When polygon code was added to fill holes, each view took ~0.5s to render.

Polygons were used to fill holes because interpolation of the resulting image in the presence of folds results in error.  Polygons yield acceptable results, but assume the view is of one height field.  However, that assumption is valid for my face.

Known Bugs:

The polygon rendering code was hand-written and sometimes produces holes.  In fact, all holes in the results are caused by my polygon code.  Real holes still exist at the edges of the image.  Rotation controls sometimes skew the resulting image.  The menu functions are not implemented.  Other than that, everything works great.

Ghetto Results (before filling holes):

No method used to fill in holes.

Some Better Results:

Facets are enumerated in the correct order.

Facets are enumerated in the correct order.

Even from the back.

90 profile

Head on view.

 

Future Work (If I had more time):

It would be nice if a composite view could be made from several images that would fill in holes, as was discussed by Chen and Williams.