CS 312: Computer Graphics -- Assignment 6

Advanced Computer Graphics

Due Wednesday, December 15, 2010 by 11:59pm
Due Friday, December 17, 2010 by 11:59pm 
(No late submissions or redos will be accepted for this assignment)


In this assignment, you have your choice of one of the following graphics projects, or you may decide to create your own (you must talk with me briefly beforehand if you choose this route).  Your project may be based in OpenGL, in RenderMan, or may use neither of these tools and be implemented in C/C++.  You may also choose to extend your ray tracer implementation to achieve one of these.

  1. Choose an actual object and model it as realistically as possible.  You should strive to model all aspects accurately, including the object's geometry, how the object interacts with light, the material properties, surface textures, etc.  Your object must have at least one component that is a more complex surface material, such as the textured skin of an orange, a label wrapped around an object, or the veining and texture of a leaf.  It is better to choose a simple object and model it realistically than to choose a complex object and have it look unrealistic.  Submit several photographs of your real object and at least 3 rendered images (or an OpenGL interactive program) of your object in realistically lit scenes.  A large portion of your grade will be based on whether the object looks realistic.
  2. Implement a procedural shader to represent a material realistically (e.g., grass, rock, a planet viewed from space, etc.).  Apply your shader to a realistically lit scene demonstrating its use.  (You may choose to apply the shader to objects in one of your previous projects.)  Submit at least 3 rendered images (or an OpenGL interactive program) of your shader from different perspectives.
  3. Implement a particle system to generate a phenominon of your choice (e.g., fire, water drops, dust, a galaxy, pollen blown from a flower, snow, hair, grass, etc.).  Submit an program that simulates the phenominon in real-time or multiple images of your particle system in action.
  4. Implement an animated scene using OpenGL (e.g, boids flocking around a landscape, trees blowing in the wind, a deformable mesh, etc.).

In a brief 1/2-1 page writeup (in either PDF or plaintext format), describe your project and any features or parameters associated with your demonstration.  Submit a brief executable shell script (called "assn6.script") that either demonstrates your interactive program or generates each of your renderings automatically.  Be sure to include this demo script with your submission.

Start early.  As described in the syllabus, this project is worth 15% of your final grade.


Submitting the Assignment

Submit your C or C++ program, all source code, the Makefile, appropriate images, and any other files necessary to run your project.  I must be able to type make on the CS systems and have it produce an executable for grading.  Name your executable "assn6".

In your comments, include information about the computer platform (hardware and OS) you used to develop your program, and be sure to include additional comments as needed to describe your code.  A good rule of thumb is that someone should be able to remove all code from the file and recreate a rough semblance of the result from your comments.

If you developed on somewhere other than the cs systems, be certain that your program runs correctly on the cs systems where it will be graded.  Leave time for this step!

Place all submitted files into a directory named LastnameFirstname-Assn6. Then create a tar archive of that directory, such that the tar file expands to the directory (not a bunch of files). Copy that tar archive into ~eeaton/submit/cs312/username/ (where "username" is your cs system username) to complete the submission.

Be certain to use the names specified above for the directory and tar archive!!


Extra Credit Opportunities

Extra credit may be given, at the discretion of the instructor and up to +20%, for projects that are either exceptionally challenging or show exceptionally realistic, stylized, or entertaining scenes.