CMP 161 -- Programming Assignment 0 (warmup)
Due date:
Midnight, Friday, 1/15/10
Objectives:
Make sure everyone has basic computer graphics covered.
Review basic camera setup, lighting, shading, picking,
object transformations.
You must also be familiar with at least one GUI,
e.g. FLTK, for the graphical user interface to your program.
Implement the following in stages of increasing complexity:
-
Read and render the enterprise coor/poly file in:
http://www.soe.ucsc.edu/~pang/161/w10/data
.
Make sure the enterprise is scaled and centered at the origin so
that it is facing the user and occupies roughly half of the
viewport space.
Allow the user to
switch among the two shading modes:
(a) flat or constant shading and (b) smooth or gouraud shading.
[shading about 25%]
-
Add functionality to
(a) translate, (b) scale, and (c) rotate the enterprise.
The amount of transformation can be specified using
GUI sliders or directly with on the screen by dragging the mouse.
[ transformations about 25%]
-
Add a light object (e.g. represented by a sphere)
that the user can pick (by clicking on it) and drag around the scene.
The light object is an additional light source to whatever
default you've already provided in your scene.
To distinguish the effects and presence of this new light source,
set it to a different color value.
[picking about 25%]
-
Basic setup, fixed camera, and gui account for the remaining 25%
GUI and Language Bindings:
Unless otherwise specified, for ALL your programming assignments,
you can use your choice of GUI and programming language.
The MAIN requirement is that we should be able to compile and test
your code using resources provided/available from the UCSC Instruction
Computing.
This requirement will limit your choices.
For GUI's, we have glut and fltk installed.
Resources:
Grading:
This program nominally accounts for 5% of your final grade. We must
be able to compile/test your code. Make sure that code and accompanying
make/project files, etc. must be tested for successful compilation at least on
the PCs in the lab.
Also be sure to include the executable and a README file
in your submission as to which platform to use.
Programs turned in at least a full day early will earn 1% bonus credit. Late
programs will be charged 1% late points. In addition, late programs will not
be accepted 24 hours past due date. Late programs and reports will not be
accepted for the final project. The bonus credits may be accumulated up to a
total of 50% toward program and final project credits. Programs are graded 80%
for functionality and correctness and 20% for style, readability,
documentation/writeup, and efficiency. Additional points may also be earned
for extra features.
Submission:
Submission must be done using the "submit" command from CATS.
- submit cmps161-ap.w10 prog0 prog0.tar, or
- submit cmps161-ap.w10 prog0 prog0.zip
This command should work from any ucsc unix machine,
but if there is a problem try it from unix.ic.ucsc.edu.
Create and submit a subdirectory called prog0.
It should contain the executable and
all the files you have to make your program compile/run.
DO NOT include the data file in your submission -- or we will run out
of disk space in the submit directory.
Approximately 20% of the grade is towards
documentation/readability/style/ease of use.
Last modified
Tuesday, 22-Jan-2019 09:42:16 PST.