Math 155B - Intro. to Computer Graphics II - Winter 2005

Project #2 - 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 or elliptical cross-sections somewhere in your design,
3. Include a circular or elliptical 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 or elliptical.  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 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: Wednesday, January 26, 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.
7. ADDED LATE: To help 1D curves, say for silhouettes, there are a number of applets on the web that can help. For instance, http://www.cs.unc.edu/~mantler/research/bezier/ will draw (non-rational) Bezier curves of any degree and show the coordinates for the points.

Student projects from last year are available for viewing.  (From Math 155B in Winter 2004.)

Turning files:

1. Place your project  (solution) and source files in a directory named Project2  (with exactly that capitalization) in your ieng9 CSE167/Math155B storage 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.