Math 155A - Winter 2001

Programming Assignment #1 - Bezier patches

Overview: In this assignment you will build a smoothly shaped object from Bezier patches.  You may choose either a coffee pot or a two-handled urn as the object to model.  As a classroom handout, you have J. Blinn's description of how the teapot is built from Bezier patches, and you should use this as the basis for your coffee pot or urn. 

Due date: Tuesday, April 17, midnight.

You should choose one of the following shapes:

Coffee pot:  Should be similar to the teapot, but taller and slenderer.  Please do not merely stretch the teapot, but instead change the shape somewhat.  There should be a handle, a spout and a lid.  You should also create the base as one or more Bezier patches.

Urn: Should have two handles and a pour spout of some kind, and should be attractively shaped.  You have some flexibility in how you design the urn, so please be creative.  The complexity of the urn should be comparable to the complexity of teapot/coffee pot.

Your program should support:

  1. keys n and N:  increase and decrease the fineness of the mesh (grid) at which the Bezier patches are drawn.
  2. key p: toggle from GL_FILL mode to GL_LINE mode.
  3. the same animation features used for the torus: keys a, s, r, 0, and arrow keys have the same effects as before.
  4. there should be at least two lights, some visible specular highlights and ambient lighting.
  5. Use a solid material value for the figure (no textures). 

I suggest you start with your old code from the third progamming assignment.  The main change is to replace the torus by your own shape formed by Bezier patches.

Hand in:  You will need to hand in the following:

  1. Some detailed sketches (hand-drawn) on graph paper showing the silhouettes of the shapes you have created.  These are similar to the figures in Blinn's article.
  2. Your executable and source code will be individually graded as usual.   So do not modify them after the due date.
  3. Possible I will ask everyone to give me a Jpeg.  If so, details of how to do this will be announced later.

Grading:  Points we will be watching for:  is the pot or urn well-designed and reasonably attractive.  Is it smooth (G1-continuous)?   Does the program have all the required features?  Is the source code well-structured?