CS 551/645: Introduction to Computer Graphics
Assignment #4
Goal: RenderMan / Blue Moon Rendering Toolkit (BMRT)
URL: http://www.cs.virginia.edu/~gfx/Courses/2000/intro.fall00.html/Assignments/assign4.html
Assigned: Tuesday, November 21, 2000
Due: Tuesday, Dec 5, 2000 at 9:00 a.m.
Relevant reading/files/software:
Synopsis: For this assignment you will be using a ShareWare implementation of the RenderMan standard called BMRT (Blue Moon Rendering Tools). This toolkit is available on Suns, SGI's, Win95/98/NT, HP's, and Linux.
You will take a skeleton program named writerib.C and the corresponding Makefile and use them to produce the RIB files that can be rendered with rendrib. You'll also need the teapot.patches model. If you are working on the SGI's in Small Hall, you don't have to download your own version of BMRT because you can use what I have downloaded at: /h1/d/dc/dcb8j/Gfx/BMRT2.5.
In the previous assignments you were concerned with modeling objects in the scenes. This assignment will be concerned with rendering and shading models that are already provided for you. The first thing you must do however is fill in the code for the routine: RiLookAt(), which takes the same arguments as the corresponding routine in OpenGL: gluLookAt(). You will then be required to write different shaders for this scene. The shaders you have to write are:
The texture maps for the pedestal will be generated procedurally, and methods for this will be discussed in class. The environment map should be a cube map, and I would like you to reuse the images you used in assignment 3. The texture-maps must be in TIFF format however and not SGI format. The function imgcopy will perform the conversion for you. Also, a program called xv can be used for a number of image viewing and manipulation tasks.
Here are some examples from a previous class's work.
NOTE: RenderMan is a left-hand system, but I want things to be done in a right-hand world. Also the shader compiler is called slc, and you must remember to recompile your shaders each time you make changes to them before rendering your images.
If you use a shell that accepts export (e.g., bash),
export SHADERS=.:/home/dcb8j/Gfx/BMRT2.5/shadersotherwise use
setenv SHADERS .:/home/dcb8j/Gfx/BMRT2.5/shaders
The . guarantees that it takes shaders from whatever directory you run the renderer in. If you put your shaders in some other directory, you will have to adjust SHADERS to include that path as well.
NOTE: the first uses '=', the second does not.
NOTE: teapot.tiff is what the image should look like given the camera parameters that I specified in the skeleton.
Turning in the assignment:
Collaboration: You may talk with one another about your projects, but one should not take written records during the collaboration. Your recollection of the concepts should be the product of the collaboration. Similarly, no side-by-side coding.
Use of the web You may use the web to find additional information about Renderman, BMRT, and you may use shaders that you find on the web.