Hierarchical Modeling: Modeling and Animating a Dog Model
Demo will be during the class hour (13:40 - 14:30)
You can implement this assignment with a group of two people
You are supposed to implement a 3-D hierarchical model for modeling and animating a dog figure. You will use the matrix stack and the tree traversal approaches that are used to manipulate the primitives and transformations using matrix stack that we have discussed in class.
Essentially, you will write a sequence of function calls with appropriate transformations and transformation parameters, and when you execute that segment, it should produce a hierarchical model of a 3D dog model. When we change the model parameters, it should behave accordingly. You will also animate your models by changing the model parameters gradually. You can implement the dog model using the following primitives:
The hierarchical model should include at least the following joints given in Figure-1. If you wish you can use more joints(but not the less) to increase realism.
Figure-1: Joint configuration for the dog hierarchical model.
Build a user interface to display and animate your model. Also define some buttons/sliders for specifying transformation parameters for joint angles, etc. In other words, it should be easy to give a posture to your animal using your interface.
You should demonstrate a sample animation of some behavior, such as walking, jumping, running or a more complex behavior. You could save your animations in the form of frames so that when you play the frames back you could get a faster animation. You should implement save/load procedures for this purpose. You can save / load your animations in the form of joint transformations for keyframes and playback them when you load these).
Grading will be based on the essential functionality (ease of giving posture to your model and saving these postures as keyframes of an animation), the realism of the animated dog model (thus, shading is important), and the speed and quality of the produced animations. Please also add some environment (groung and background texture) so that the dog does not move in blank space.
You could use one of the standard projection transformations for 3D to 2D conversion (either orthographic projection or perspective projection transformation 3D to 2D transformation).
Optional(Bonusses):
Important Notes: