The goal of this homework is to develop algorithms for animating shape changes and applying them to your object. You can use either the explicit vertex transformations of Barr (i.e., taper, twist, bend) or the more general coordinate space transformations found in Free-Form Deformation (FFD).
The Barr transforms are generally specified by indicating the type of transform, the dimension that will control the transform, and a parameter indicating the magnitude of the transform (e.g., how much twist to impart or how gradual or extreme the tapering will be). The animation can be a linear interpolation from the starting shape to the final magnitude (i.e., the degree or magnitude will go from 0 to whatever maximum value you give it).
The specification for Free-Form Deformation (you can assume a single hyperpatch) will involve the movement of one or more of the 64 control points. For this assignment you can assume a straight line motion of the moving control points, with linear interpolation to generate the individual frames.
Requirements:
The homework is due at 9AM on Thursday, February 1.
For this project you should do your implementation using OpenGL. You can extend your code from earlier projects or start from scratch.
You will submit a tar file containing all of the source code, a Makefile and a README file. The source code must compile (and run) on a CCC machine. Feel free to develop on any platform you like (OpenGL compiles and runs on Windows), just make sure things run on CCC before submitting. The program should compile when make is invoked on the command line in the directory with your code. Submissions which do not compile when make is typed, or do not run successfully, will not be graded and will be given 0 points.
The README file should contain an extensive description of what you are handing in, the layout of your code ( a discussion of the overall algorithm). This README file will count towards your grade. Submissions without a README or submissions with a worthless README will not be graded and given 0 points.
Submittal will be made using myWPI.
Each homework assignment is graded on a 10 point scale 6 points will be graded for functionality: the program does what the assignment requests. 2 points will be based on documentation in the README, and 2 points will be based on the quality of your design and coding style. Click here for details on the grading policy.
You will lose 10 percent per day for handing the assignment in late. The late penalty will increment at 9AM each day.
Since a grade of 0 will be given if the code does not compile and run, it is in your best interest not to submit anything until you have completely tested and evaluated what you have written.