CS 679 Project

A Surface Paster

Overview

For my project, I implemented a basic, domain space surface paster editor (for the basic 75% of the project) and incorporated a (more or less functional) b-spline surface editor and created a nice-looking model using the surface editor and paster as extras.
 

B-Spline Editor (and GUI)
 
The New Surface dialog (to the left) adds a new surface to the model.  The dialog can be used to set the following properties:
  • Surface degree (in both the u and v directions)
  • Number of control points (in both the u and v directions)
  • Surface colour
OK creates the surface, CANCEL closes the dialog without creating the surface.
After creating the surface, the program switch to edit mode and sets the new surface for editing.
The Surface Editor in Action.

This shows the basic operation of the surface editor.

Menus

  • File
    • New - create a new model (clears out current model)
    • Load - loads a new model (clears out current model)
    • Save - saves current model under current file name
    • Save As - saves the current model under a new file name
    • Quit - quites the program
  • Surface
    • Add Surface - opens New Surface dialog
    • Delete Surface - deletes all selected surfaces
    • Copy Surface - creates copies of selected surfaces
    • Paste - pastes surface onto model (from edit mode only)
    • Edit Domains - opens the Edit Domains dialog
    • Make C0 - makes current surface approximately C0
    • Make C1 - makes current surface approximately C1
    • Properties - edit surface colour of selected surface


Surface Paster Editor

The paster editor is used to move and resize surface domains (and thus edit the model)
 
This shows the edit domain dialog (accessed through the Edit Domains option in the surface menu).
  • domain window shows representation of the domains of the model relative to the base surface
  • domains can be translated or scaled (the current mode is indicated by a pair of radio buttons)
  • domains are scaled by clicking and dragging one of the corner points of one of the domains
  • domains are translated by clicking inside the domain and dragging; the topmost domain is selected
  • the model's base domain cannot be transformed


Models
 
The test model which was used to test the functionality of the program (just a bunch of blobs).
(I became very fond of my blobs.)
The "nice" model created (with much blood and sweat) using the surface paster/b-spline surface editor.  This is the face of the puppet I created in CS 488.  The face (the base of the model) was created first and the other features were stuck on top of it.  For most features, the surface was edited to achieve the basic desired shape and then extensively re-edited after being pasted and positioned on the model.  Some pieces were easier to do than expected (most of the hair and the face), others were harder (ears and mouth).

Various Notes

References