CMP 161 -- Programming Assignment 4
Due date:
Midnight, Friday, 3/12/2010
Objectives:
Create animation with global and free form deformation.
Useful Links:
To Do:
-
This assignment is divided into two major parts:
(i) twisting animation of a rectangular block and
(ii) embedding a polygonal object within the rectangular block
so that the polygonal object is also twisted.
-
Create a ``solid'' rectangular block made up of 4x4x4 of vertices.
If you render this block in wireframe,
you should see the 64 vertices.
Note that dx, dy, and dz do not need to be the same.
For this stage, set dx=2, dy=1, and dz=3.
That is, the block is longest along the z-axis.
Set this up so that the base of the rectangular block
is centered on the x-y plane.
See figure below.
Approximately 10%.
-
The first task is to apply a global twist deformation to this block
about the z-axis.
Holding the base of the block fixed,
apply a 90 degree twist to the top of the block.
That is,
a third of the way up from the base, you have a 30 degree rotation;
and 2/3 up from the base, you have a 60 degree rotation.
You want to do this twist as an animation
using at least 45 time frames.
You can vary the number of frame to match the speed of your computer.
Approximately 20%.
-
Next task is to read in the
57 chevy model from the data folder.
Apply transformation so that it more or less lines up with the
rectangular volume.
Assuming the car is centered in the object coordinate frame
with x-axis pointing to the right, y-axis up, and the car facing left,
the desired transformations involve:
(i) rotate car about y-axis by 90 degrees,
(ii) translate car along z-axis by half its length.
These transformations should have the chevy headed towards positive z,
the top of the car towards positive y.
Render the car using constant or smooth shading.
Approximately 20%.
-
Next realign the rectangular block so that it is the bounding box
for the chevy.
Adjust dx, dy, and dz so that you have a tight fit around the chevy.
Note that dx, dy, and dz will probably not be integer numbers as in stage 1 anymore.
Render the rectangular block as wireframe.
Approximately 10%.
-
Now, use free form deformation on the chevy using the vertices of the
rectangular block as control points to twist the chevy.
Use tri-cubic Bezier splines.
Approximately 40%.
Items To Submit:
-
Html page with description, images and movies of your project.
Make sure your links are all local
and relative to your submit directory.
-
Makefile, code, README file, user guide.
-
Create a tar or zip file of all of the above and call it prog4.tar or prog4.zip
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. For PC's, we will be using Visual C++. Also be sure to
include a README 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:
Create and submit a tar or zip file called "prog4.tar" or "prog4.zip" respectively.
It should contain all the files you have to make your program compile/run.
Include the other items to be submitted in this directory as well.
Submission must be done using the submit utility from CATS.
-
To submit use, use one of the following commands:
submit cmps161-ap.w10 prog4 prog4.tar
submit cmps161-ap.w10 prog4 prog4.zip
These commands should work from any cats machine, but if there is a problem
try from unix.ic.
Last modified
Tuesday, 22-Jan-2019 09:42:16 PST.