Graphics Links at Holmes3D.net

The Utah Teapot

The Utah teapot is an extremely frequently used model in computer graphics, and anyone that can program a 3D viewing program should be familiar with the teapot. A history of the teapot tells the story of its origins.

The above teapot is from an OFF file of the teapot. The original teapot, from Martin Newell's PhD thesis, consisted of 28 Bezier patches. The original had no rim for the lid and no bottom. Later, four more patches were added to create a bottom, bringing the total to 32. The data set was used by a number of people, including graphics guru Jim Blinn. In a demonstration of a system of his he scaled the teapot by .75, creating a stubbier teapot. He found it more pleasing to the eye, and it was this scaled version that became the highly popular dataset used today.

The three images below show wireframe curved renderings generated from the Bezier patches of the teapot. The patches themselves consist of control polygons, which are shown in the second image as thick dark lines. These polygons define surfaces. By evaluating the surfaces repeatedly in an ordered fashion and connecting the points with short straight lines, curves can be drawn on the surfaces. How often you evaluate the surface determines how many curves you get and how many straight lines go into drawing each curve. The first and second teapots below were evaluated four times as often as the third, and used three times as many straight lines for each curve.

Patch Datafiles

Multiple versions of the teapot's Bezier control points can be downloaded here. The files are in an extremely simplistic, non-standard format with the minimal information needed to quickly read the patches. The first line contains the number of patches in the file, then each patch is given, with its dimensions, followed by its control points, one per line.

teapotCGA.bpt - The teapot as defined in the Computer Graphics & Applications journal referenced below. It has a bottom, but no rim on its lid.

teapotCGAnobottom.bpt - The same teapot as above, but with the four patches of the bottom removed.

teapotCGAtall.bpt - The CG&A teapot, scaled by 1.33333 to restore its height to the original version.

teapotCGAnobottomtall.bpt - The same teapot as above, but with the four patches of the bottom removed.

teapotrim.bpt - Another set of datapoints for the teapot, in a different scale. This one is also 32 patches, but instead of adding a bottom with the four patches, a rim has been added.

teaspoon.bpt - Newell actually created a full teaset. This is supposedly the teaspoon from the set, from the web.

teacup.bpt - Like the teaspoon above, this is supposedly the teacup from the set, from the web.

About the Pictures

The blue OFF teapot is a screen capture of the teapot.off file as rendered by my Java version (2.7b) of RoffView. The three curved-surface teapots were all all generated using a program I wrote for CSE477. The program reads one of the above data files (teapotrim.bpt, for these images), evaluates the patches based on a specified configuration file, runs the points created through the 3D perspective transformation we are using in this class, with view parameters also specified in the configuration file, and outputs the straight lines as PostScript commands in a PostScript file. The images above are screen captures of the resulting PostScript file as rendered in Ghostscript.

For More Information

See Computer Graphics & Applications, Volume 7, Number 1, January, 1987, pp 8-19.

Graphics Links at Holmes3D.net

Page contents copyright Ryan Holmes