Math 155B - Introduction to Computer Graphics - Winter 2004

Project #3 - Model using Rational Bezier Patches


Overview:  For this assignment you will create by hand an object using rational Bezier patches.     You must do the following:

  1. Design an object similar in complexity to the famous Teapot, for instance, you might design a coffee pot, or a vase, or an urn, or a lantern, or etc.,  
  2. Use circular cross-sections somewhere in your design, 
  3. Include a circular disk somewhere (perhaps as the base of your object or if it does not naturally fit as part of your object, just place a disk next to it).  Model the disk so that the normals work everywhere properly, including at the center of the disk.  Please note that this will require circumventing some OpenGL bugs as I will discuss in class,
        This disk should be perfectly circular!  It is expected that it will be flat in most cases, but it is also permissible  to use a non-flat smooth(!) disk with circular circumference, for instance, the bottom of a bowl.
  4. Apply a texture map to at least part of your object.   The texture map should be able to toggled off and on so we can see the object without the texture map.
  5. Include lighting; get the correct normals.  The object must be capable of being rotated fully so that it can be viewed from any direction.  All the surfaces must show specular highlights so that we can tell that the normals are correct.
  6. Your program should allow interactively changing mesh resolutions and interactively toggling between wireframe and solid mode.

Due date: Friday, February 6, midnight.

More directions:

  1. You can start with the online sample program SimpleNurbs, available from the text book's web page.  Note that the SimpleNurbs programs uses  GL_CW  to avoid an OpenGL problem with the calculation of normals.
  2. You may use the animation controls as in SimpleNurbs or re-design them as you wish.  It must allow convenient rotation of the object so it can be seen from any direction.  Lights should positioned at fixed positions.
  3. Some form of the u, U, v, V commands should be supported  ---- but it is OK if you just have a single mesh count parameter rather than separate U- and V- mesh counts.
  4. Keep the p command functional, to toggle between wireframe and solid mode.
  5. Add the t command to the program to toggle the texture maps off and on.
  6. The problems with circular disks will be discussed in class.

Turning files: 

  1. Place your project and source files in a directory named Project3  (with exactly that capitalization) in your ieng9 CSE167 home directory.
  2. Upload your project to a web page with figures and explanation.   First create a 160x120 pixel GIF file named thumb.gif, plus create an HTML file called index.html along with one or more higher resolution screenshots of your project.  Your index.html file should include textual description of your project and any special aspects of it and should show the screenshots.  Combine all your files into a single zip file.
        For more information on how to create these files see the detailed instructions from Project #3 of CSE 167.  To create your index.html, start with the following sample base index.html.

Grading:  Grading is individual as usual.  Please do not modify your files after the due date.  You should be prepared to explain how your program works.