CSE 457: Introduction to Computer Graphics


Project 4 Help Session

This help session is designed to assist you in completing project 4, Animate. It covers the following topics:


Startup

The project files can be copied from /cse/courses/cse457/projects/animator. The program is then run by typing animator and the name of your VRML file. Curve files can be loaded into or saved out of animator. Don't forget to save early and often.

The Curve Window and the Animator Interface



Animator

The model's entire hierarchy is drawn in the left window. Interpolators for scaling, rotation, and translation are implicitly added for each node in your model's hierarchy. I would suggest naming all your transform nodes, or else the program will assign a name, and it's not pretty.


The curve window contains the curves for the interpolator parameters of the interpolator currently selected in the hierarchy window. The curve available for manipulation is purple, while the other 2 or 3 curves are drawn in white. Each curve is initialized to have a single control point at frame 0, with wrapping enabled. This makes the parameters static through the entire animation.

The two view windows allow you to view your animation from two different angles simultaneously. The unlabeled (!) buttons directly below the view windows allow you to view the model from different angles in any of six predetermined views, or one of your own choosing. The first button is a "freeform viewing" button; if selected, you may change the view of the model by using the mouse buttons (see below). The other predetermined views, starting at the second button on, are: front, right, top, back, left, and bottom. Clicking any of these buttons will change to said viewpoint and report the result in the text window at the bottom of the program window.
The buttons at the bottom of the Animator window allow playback of the animation. They are all pretty self-explanatory, and report their result in the text window at the bottom of the program window. The normal rate of playback tries to emulate the playback of 30 frames per second that one would ideally witness when viewing the animation with a VRML viewer. To do this, the program drops frames until it progresses through 30 frames every second, though the actual frame rate may be (much) less. The fast-forward and rewind buttons try to emulate 60 frames per second, so they will drop at least twice as many frames.
The buttons, sliders, and checkboxes on the left of the window provide curve attribute options and animation saving/loading options.


The Starting Point Code


All of the required code for completing the animator project belongs in EvaluateCurve.C.
First you will want to fill in the function Evaluate Curve. As a function evaluateCurve takes 5 parameters.
Right now EvaluateCurve only handles Linear Curve types. To get improved animation and extend the capabilites of our animation software we want to implement Bezier, B-spline, Catmull-Rom, and C2 interpolating splines.

Additional Notes


Send questions, comments, feedback to cse457staff@cs.washington.edu