Assignment 2 - Modelling with Patches

Due - Midnight Monday March 1

In this assignment, you will create two models of a vase using cubic Bezier patches and render them with BMRT (not PBRT). BMRT has been installed on the public linux machines. The source is in /p/src/BMRT2.6/, you can see example input files in .rib format (Renderman format) in /p/src/BMRT2.6/examples, along with a few .tif files that were produced by BMRT from the input files of the same name. Of particular interest is teapot.rib which contains a description of the ubiquitous teapot as cubic Bezier patches. Several copies of the teapot are rendered in teapots.tif. .rib format is similar to .lrt format, documentation for it can be found here. The key programs of interest are "rendrib" the ray tracer, "rgl" the OpenGL based previewer, and "iv" the image display program which is nice primarily in allowing easy gamma control (if you images look too dark, try displaying them with iv using a larger gamma). These and other tools are in /p/bin/BMRT2.6. The library functions are in /p/lib/BMRT2.6. Of particular interest here is the subdirectory /p/lib/BMRT2.6/shaders, which contains the existing shaders used by BMRT. You will not be able to use BMRT without telling it where these are. You do that by setting the environment variable SHADERS=/p/lib/BMRT2.6/shaders before running BMRT.

Your vases should be geometrically continuous around its central axis of symmetry, but should have at least one discontinuity (or near discontinuity, a sudden change in direction) in its silhouette. The first one need have only an outside, the second will be a closed object with both an inside and an outside. They can be different in appearance if you like, but they don't have to be. They must not look like the vase in vase.rib, which was not modeled using Bezier patches in any case.

Of course, BMRT will only help you with rendering the vases, the modeling you will have to do yourself. I recommend you don't place the patch control points by hand, but rather design it algorithmically in the language of your choice and have your program spit out the .rib file to be fed to BMRT for rendering.

Render it with your own lighting design and surface materials, you may texture map it if you so desire, some textures have been provided along with BMRT. Try to be tasteful.

You should turn in only your .rib files for the vases and the pictures generated by BMRT from them.

Do not use other people's control points. Any two people turning in .rib files with the same control points will be presumed to have cheated since this would occur by chance with probability zero. Feel free to discuss the assignment with your colleagues to your heart's content, however.