README for Assignment 1 Daniel Eaton CS314 djeaton@interchange.ubc.ca 1. KEYFRAME FILES --static poses pose0.txt: rest pose sit.txt: sit pose stand_hindlegs.txt: standing on back legs pose --animations wag_shake_anim.txt: wag tail, shake head sit_anim.txt: going from rest pose to sitting beg_anim.txt: begging animation --etc anim_test.txt: test file, please disregard 2. RUNNING THE APPLICATION - invoke as a1 [anim.txt] - use keys w/s, a/d to rotate the model - use keys z/x to zoom in/out ** use key j to toggle animation on/off (default off) - use key k to step to the next frame - use the key l to reload the current animation file (ie. read for new changes) ** use key p to toggle "super wag" on/off (realistic tail wagging) - ESC/q to quit 3. BONUS (?) - the rate of animation is independed of hardware, since it runs based on the computer's clock by computing successive time differences between idle callbacks (ms accuracy for clock) this works on both windows and linux - realistic tail! i modelled this by imagining the physics behind a tail. the end of the tail is always lagging behind the beginning of the tail, which is actually being driven by the tail muscle. mathematically, this can be shown by using a sin to drive the start of the tail, and then applying a cos (which is pi/2 out of phase with sin) to the end of the tail. next i connect the two points with a parabola (modelled by a sequence of angled cylinders connected together by spheres for continuity). this provides a very nice effect. - it's possible to adjust the amplitude of wagging (o/i), the speed of wagging (y/u) - the dog is totally parameterized, with the appropriate constraints between the parameters. if you change any of the respective dimensions, dog parts lower in rendering hierarchy will be modified such that continuity is maintained. - multiple viewports to see the dog from more than one angle. this greatly simplifies the creation of new poses/animations