CS 3014 Computer Graphics
Final Project
Due: Final Exam Day/Time. Demonstration expected at that time.
Points Possible: 200 + unlimited Extra Credit
The Assignment:
Design a 3D scene, add realism to it
using lights, materials, textures, and allow the user to interact with
it, either through navigation or some other means that makes sense in
the context of your scene. You may design the scene to be
anything you want. If your creativity is lacking, you may use some of the work from previous projects, and/or some of the suggestions below. However, you may choose to do other objects instead -- these are merely suggestions. It is important that you include the concepts detailed below to earn the points. It is up to you, in your documentation, to clearly demonstrate where each concept is realized.
For the basic 200 points:
- Design a 3D scene. For example, design a room with ceiling,
floor, and 3 walls. (Leaving off one wall of the room makes it easier
to navigate in the room.) Add some objects to the room. Make sure you have use basic transformations in designing the objects.
- (10 pts) At least one object in the room should not be lighted, but simply defined with color values. You need to disable lighting when rendering this or
use emissive lighting. For example, add a sphere to the ceiling
to represent a ceiling light and give it an emissive quality when
defining its material value, which means it will not interact with the
light even though lighting has been enabled.
- (20 pts) At least one object in the room should have material
values and interact with light. For example, add the 3D table you
created for a previous project, using the glut-supplied cube.
Remember, using glut-objects means you don't have to supply the
normals to the faces. Add material values to the cubes making up
the table to interact with the light.
- (10 pts) Add a positional light to the room. Allow user to toggle the light off/on using the numeral 1 key.
- (10 pts) Add a second postional light to the room (different
color values from the first) and allow user to toggle it on/off using
the numeral 2 key. This positional light could be located at the same
position as the emissive ceiling light and then ...The emissive globe
should be appear to "turn off/on" when the 2 key is toggled,
corresponding to turning off/on this ceiling light.
- (10 pts) Add a directional light to the scene which is toggled on/off using the "d" key.
- (20 pts) Add a spotlight to the scene which is toggled on/off using the "s" key. The spotlight effect must be clearly evident.
- (10 pts) Add a gluQuadrics object to the room and assign it
material values. Like the glut objects, these supply their own
normals, but you need to recall how to force this.
- (20 pts) Add an object to the room whose faces require user-supplied normals. These normals may be hard coded.
- (20 pts) Add an object to the room whose normals are computed
by Newell method and use the function you made for homework assigment
to do this.
- (20 pts) Add textured objects to the scene.
- at least one textured object whose texture is obtained from an image file.
- at least one textured object whose texture is obtained from a bitmap.
- (20 pts) at least one textured object must interact with a light source (not necessarily a spotlight.)
- (20 pts) Allow user to navigate through the room with spherical
navigation system, or other system of your choice. Or, allow some
sort of interaction with the scene which makes sense.
- Suggestions for Extra points:
- (20 pts) Allow the spotlight to interact with a textured object.
- (20 pts) Attach a spotlight to the camera and allow the user to move the camera around in the scene.
- (20 pts) Incorporate user-defined mipmaps.
- (20 pts) Include an animated object in the scene -- for example, rotating fan blades -- via transformations
- (20 pts) Include an animated object in the scene via morphing. If it is a 3D morphing, worth 30 points.