CMP 161 -- Programming Assignment 4
Due date:
Midnight, WED, 3/5/2008
Objectives:
Physically based animation with free form deformation.
Useful Links:
To Do:
-
Rather than interactively deforming the model from the
previous program,
you will need to automate the free form deformation.
This can be done by assuming that the edges in the
control cube are connected to the vertices by springs.
If you pull on a vertex node,
neighboring vertices will be pulled as well.
If you let go of that node,
the control cube will jiggle around just like springs.
-
The other ingredient you need for animation is gravity.
You need to figure out the motion of the vertices in
the control cube as it is dropped from some height.
As the control cube hits the ground the vertices should
jiggle around, and the underlying model should also deform accordingly.
Note that you can roughly associate the mass of the vertices in
the control cube with the weight of the object -- i.e. with heavier
vertices, the impact should be stronger.
-
Required:
Enclose the entire model in a single control cube.
-
Optional:
Only part of the model is in the control cube,
or there is more than one control cube.
You can assume the control cubes are non-overlapping.
This means that part of the model are deformable,
while other parts of the model are rigid.
To implement this part properly,
you will also need to do collision detection of
the vertices of the model in addition to those of
the control cube.
Also, in addition to testing collisions with floors,
you will also need to test collisions with other
control cubes or the geometry itself.
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.
-
You can submit your own test data files, or config files for your code.
However,
do not submit data files that we have provided.
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 subdirectory called "prog4". 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: submit cmps161-ap.w08 prog4 files
-
To verify submission use: peek cmps161-ap.w08 prog4
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:15 PST.