Exercise 1

Due on Monday, February 9, 2009 before class

Problem Statement

Now, you have learned polygon rendering and local illumination models. This simple exercise asks you to demonstrate ALL problems that may occur in polygon rendering and local illumination models. More specifically, write a program with a simple and intuitive GUI that can clearly demonstrate the following:

  1. Mach band.
  2. The problem of Gouraud shading when light sources do not shed any light to the vertices of a polygon. Try to use a spotlight.
  3. The impact of transformations on rendering.
  4. The result of rendering regularly fluctuated polygons.
  5. The impact of various rendering coefficients: ambient, diffuse and specular reflections, attenuation factor and the involved coefficients, the impact of triangulation on lighting, and depth cueing.
  6. See the slides used in class for more details.
In general, one program with a good GUI control can do all of the above. However, if you feel necessary, you may use multiple programs.

My Expectation

My expectation is simple: the more impact and effects you can show, the higher score you will get. Therefore, use your creativity and imagination. For example, if you wish to demonstrate the impact of ambient, diffuse and specular coefficients, a scene with three spheres with diffuse 0.3, 0.6 and 0.9 is definitely worse than a scene with multiple spheres such that all coefficients can be adjusted in some way. The latter is better because, with adjustments, one can easily see and know the impact. You can take this as a hint and use it to design your program.

Make sure I can run your program/demo, because my computer for testing is very clean that does not have any compiler, library, etc installed. Moreover, do not ask me to install anything. Therefore, generating a static executable is the best way.

Grading

The preferred system is Windows. Each of you will receive a CD for you to submit your work. You should store the following information on the CD:

  1. A README file in the root directory that contains the following information:
  2. A GUIDE file, in PDF or Microsoft Word format, in the root directory that contains a detailed user guide, including the meaning of each button and menu item, operation, and the contents of screen. You may consider the use of some screenshots. You must discuss the results generated from your program(s).
  3. A bin directory that stores the executable file(s) and data files.
  4. A source directory that contains all source code files and makefiles for me to regenerate your executable files.

Before the submission date/time, you may perform as many demonstrations, before and/or after the class or in my office hour, as you want with your laptop computers. If you do not have a laptop computer and you wish to do a demo, you have to inform me well before your visit so that I could bring in my CD drive. Or, you may store your program to a USB port readable flash card. I will make suggestions for you to improve your work.

Extra Works That Will Not Be Collected

Here are some extra works for you to do in order to understand the materials. However, you should not submit your answers.

  1. Suppose we are about to render a triangle of nine pixels located at screen coordinates (x-1,y), (x,y-1), (x,y), (x,y+1), (x+1,y-2), (x+1,y-2), (x+1,y), (x+1,y+1) and (x+1,y+2). We know (x-1,y), (x+1,y-1) and (x+1,y+2) have color red (1,0,0), green (0,1,0) and blue (0,0,1), respectively. What colors the remaining pixels would receive under the Gouraud shading method?
  2. If pixels (x-1,y), (x+1,y-2) and (x+1,y+2) also have normal vectors (0,0,1), (1,0,0) and (0,1,0), what are the results with Phong shading?
  3. Use spheres, blocks, cylinders, cones and tori to design a scene and ray trace it with POV-Ray. Practice the use of colors, ambient, diffuse, phong and phong_size, reflection, transparency and IOR (index of refraction), and so on. You may send your resulting 640×480 image for comment.