CMSI 371 Computer Graphics, Spring 2017
As advertised, this assignment (your last!) focuses on interaction and dynamic behavior. Specifics can’t really be stipulated here because this will be very dependent on your scene. But just have something that isn’t trivial. Definitely do more than the sample code!
The previously mentioned readings from the Angel textbook, if you have that, remain relevant to this assignment (and may actually be more meaningful now that you have a bigger picture of things). A closer focus on Chapter 3, in particular, may be helpful here, depending on the specific interaction that you are planning to do.
Take the Red Pill
Build on a variety of sources to add animated, interactive, or dynamic elements to your scene. For animation, do at least one of the following:
- Adapt the keyframe tweener library from Assignment 0222 so that it can be used with your scene. Hints: The easing functions don’t change; you will want a keyframes data structure that references your 3D framework objects; and finally the biggest changes you’ll make code-wise will be in your periodically-called scene-updating function.
- Implement physics-based behavior like gravity, acceleration, or anything else. You may integrate a physics engine or roll your own simple one. Hints: The assignment repository already has a full-blown vector library—use it! Some of this work harkens back to assignments from CMSI 186 and CMSI 370, only now in 3D and displayed visually.
For interaction, do this:
Remember that these approaches are largely orthogonal and therefore can be mixed and matched. Note also that although some changes to your model and view code may be necessary, they should be quite distinct and separate from the actual dynamic behavior. In fact, these changes may have no effect at all on the view code, with the model affected mainly through additional properties or data.