Assignment 02 - Basic Shading

Due Date

This assignment is due at 11:59pm on Thursday, September 20th. Projects turned in late will lose points as described in the policies handout. This assignment should be done alone or in pairs. You may share ideas with other groups, but you may not share code.

This assignment is worth 53 points.

Submission Details

You may develop on Unix, OS X, or Windows. The platform you use will be the one used to grade assignments. Keep in mind that there are slight variations due to OS versions, different libraries, and other factors, so you should verify that your code runs on the instructional machines appropriate for you platform choice.

We will be using the submit software for submission of this assignment. Instructions for using the submission software are here The assignment name is "basicshading".

You should include a README file that at the minimum contains the following data:

  1. Your (and your partner's) name,
  2. The platform your code runs on,
  3. The location of your source code (i.e. indicate who in your group has done the submission, and on what platform). Only one of the people in your group should submit the actual code. The other people should only submit the README file.

All files needed to compile your code should appear in the submitted directory. It is your responsibility to make sure that they will compile and run properly.

Do not wait until the last minute to start this assignment. This assignment should be easy, but it may also be your first experience coding for graphical output. Assume the unexpected and give yourself time to deal with it.

Check the news group regularly for updates on the assignment or other clarification. We will assume that anything posted there is henceforth known to all.

You should also update your class web page to include images generated by this code. If you like, you may write code to output image directly from your software, or you can use screen shots. This class has graders so the Professor generally does not see assignments unless there was some issue in grading them that required his attention. He does, however look at the web pages. If you don't post anything there then he can only conclude that you did not do the assignment or that your results were too poor to post. It is also a nice place to show off your work to others in the class.

Overview

For this assignment, you will write a program that:

You program will take a series of command line options:

There may be up to 5 point lights and 5 directional lights in a scene. The r g b values of 1.0 should be mapped to a display values of 255.

All command line arguments are optional. The default values should be a black sphere with no lights.

Optional features that you can implement for extra credit are:

Other features should be clearly documented in your README file. They should be implemented through additional command line options. The behavior of the arguments specified in as required for the assignment should not be changed. Your README file should explain what your optional features are and provide example command invocations that produce nice results.

The TAs have provided some example code on the resources page to start with. You may use this code if you like or you can start from scratch. If you chose to use the TAs' code then you are responsible for figuring out how to use it. If there is a bug in that code, please bring it to the attention of the TAs immediately. Please be advised that even if there is a bug in their code do not assume that you will be allowed to turn in the assignment late.

Questions should be posted to the news group.