Math 155B - Intro. to
Computer Graphics II - Winter 2005
Project #2 - Model using Rational Bezier
Overview: For this assignment you will create by hand
an object using rational Bezier patches. You must do the
- 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.,
- Use circular or elliptical cross-sections somewhere in your design,
- 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.
- 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.
- 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.
- Your program should allow interactively changing mesh resolutions and
interactively toggling between wireframe and solid mode.
Due date: Wednesday, January 26, midnight.
- 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.
- 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.
- 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-
- Keep the p command functional, to toggle between
wireframe and solid mode.
- Add the t command to the program to toggle
the texture maps off and on.
- The problems with circular disks will be discussed in class.
- 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.)
- Place your project (solution) and source files in a directory named
(with exactly that capitalization) in your ieng9 CSE167/Math155B
- 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. 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.