The goal of this homework is to create a 3-D object using OpenGL and animate it, i.e., some aspect or attribute of the object will change over time. The program should be written using OpenGL, and generate a sequence of frames (at least 50) showing the object change in position (the whole object) and one or more other attributes of one or more components of the object. Examples might include the angle of a joint, the orientation of a head, or the size of a balloon.
Your program should control the sequencing and playback in a manner similar to a VCR. The attributes to be modified should be controlled by a parameter that coincides with the number of the frame being displayed. Basic abilities, such as playing forward, single stepping between frames, and rewinding should be supported. This interface can be by simple keystrokes or via a dialog box with buttons.
For this assignment, the motion can be simply specified as a start and end configuration, with linear interpolation for the intermediate frames. Later assignments will concentrate on curved paths, smooth acceleration/deceleration, and so on.
Requirements:
The homework is due at 9AM on Thursday, January 18.
For this project you should do your implementation using OpenGL. You can extend your code from CS4731 or start from scratch. In the directory /cs/cs4732/software/demos you will find an example program for animating the orientation of a square, called rotate_square.cpp. You can use this as a starting point for your work, if you'd like. Alternatively, you can extend the gears demo to include your model.
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.
Capture a set of images of your window/model in different poses using xv. Save them to files called yourlastnameX.jpg, where X is a digit from 0 to 9 (no, you don't have to have 10 pictures).
Submittal should 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.