The goal of this homework is to create a 3-D object using OpenGL and animate it, i.e., some aspects or attributes of the object will change over time. The program should be written using OpenGL or Java3D, 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 limb.
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 midnight on Tuesday, March 22.
For this project you should do your implementation using OpenGL or Java. You can extend your code from CS4731 or start from scratch using the full suite of commands in OpenGL or Java3D. In the software directory on myWPI 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.
You will submit a zip or 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 (Windows or linux). Feel free to develop on any platform you like, just make sure things run on a machine the TA has access to before submitting. Submissions that do not compile 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). It should also include instructions on compiling and running your program. This README file will count towards your grade. Submissions without a README or submissions with a worthless README will lose significant points.
Capture a set of images of your window/model in different poses (many tools for this exist - for example, on Windows you can hit Alt-Print Screen and then paste the image in Paint). Save them to files called yourlastnameX.xxx, where xxx is the file type (.bmp, .jpg, etc.), 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. This homework is worth 10% of your homework grade.
You will lose 10 percent per day for handing the assignment in late. The late penalty will increment at noon 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.