Instructor: Prof. Matthew Ward, FL-231, 831-5671, matt@cs
Office Hours: Tuesday: 1PM, Thursday: 11AM, Friday: 2:00PM,
Others by appointment
Teaching Assistant:
Paulo de Barros, pgb@wpi.edu
Office Hours (in FL-A22 or FL-222): Tuesdays and Thursdays: 4:00-6:00PM
Course Description: This course provides an in-depth examination of the algorithms, data structures, and techniques used in modeling and rendering dynamic scenes.
Topics include an overview of traditional animation, animation hardware and software, parametric blending techniques, modeling physical and articulated objects, forward and inverse kinematics, key-frame, procedural, and behavioral animation, and free-form deformation.
Students will be expected to develop programs to implement low-level algorithms commonly found in animation packages as well as use commercial animation tools to design and produce small to moderate sized animations. Both individual and group projects will be included.
Text: The primary text for the course is Computer Animation: Algorithms and Techniques, by Rick Parent (Second Edition). Optional texts on 3D Studio may be purchased if desired. Reasonable choices include 3DS Max 11 Bible by Kelly Murdock and Mastering Autodesk 3DS Max Design 2011 by Mark Gerhard and Jeffrey Harper. Supplemental texts will be placed on reserve in the library which may assist you in understanding some of the more difficult concepts.
Facilities: Most assignments can be performed using the same platform you used for your CS4731 assignments (C++/OpenGL or Java). You can use either your version of the rendering pipeline or the functions within OpenGL or Java 3D. 3DS Max assignments may be performed using the PCs in the IMGD Lab (FL 222) or on any machine running a recent release of 3D Studio Max.
Grade Policy: 50% exams, 50% assignments, although low grades early in the term may be forgiven in cases where students are performing very well at the end of the course. You must obtain a passing grade for both the exam portion and project portion.
Supplemental Material: All handouts can be found on myWPI.
Wednesday Lab Sessions: Labs will be held in the IMGD Lab, and will consist of tutorials and exercises in the use of 3D Studio Max. If you are already familiar with the package, attendance is not required. However, if you'd like to help the TA guide the other students in learning the package, that would be greatly appreciated. And no, we will not be covering how to write your own plug-ins!
Notes:
Projects: The focus of the projects this year will be on modeling and animating animals, real (e.g., your pet lizard) or fictitious (e.g., Mr. Krabs). The animal you choose should be one that has articulated joints, i.e., locations about which bends and twists can occur. You will not be graded on the level of realism in your model, but please avoid just slapping together a few boxes and cylinders. I suggest extruded shapes as a basic building block, along with transformations to scale, rotate, and offset them.
The projects for the course are as follows:
Project 1: (due March 22) Create a multi-component 3D model of some sort of animal (real or fictitious) and animate the position of the object and one or more of its components using OpenGL or Java3D. For example, you might animate a turning head, a raising paw, or some similar motion, as well as position along a line. The model can be very coarse, as detailed modeling is not as important as getting the model to move. You will need to implement a mechanism for controlling the animation, including play, stop, and rewind, and optionally single frame forward, single frame backwards, and any others you find useful. This can be done via simple keystroke processing, or you might want to create an interface component to perform this task. The rendering can be either wire frame or filled polygons (you should try to support both).
Project 2: (due March 29) Extend your project 1 to support motion along a curved path (e.g., a Bezier curve or Catmull-Rom spline along the terrain, using terrain vertices as control points). Then use arc-length estimation and reparameterization to attain smooth (ease-in/ease-out) behavior. Experiment with different accelerations/decelerations to attain different effects. You should be able to get smooth rendering in wire frame mode, but filled polygons may cause some delays and affect the smoothness of motion.
Project 3: (due April 5) Implement either Barr's shape transformations (taper, twist, and bend) or Free-Form Deformation in OpenGL or Java3D on your object from Projects 1 and 2. Animate two or more shape transformations of your choice on your object. Make sure the shape changes are smooth (hint: use the math from project 2).
Project 4: (due April 12) Develop a 3D Studio application that performs both position and shape animation on two objects from the scene that you will use in your final project. Use ease-in/ease-out to smooth out the motion. The objects should be some form of animal, and can be simplified versions of the ones you plan to use. Realism isn't as important as integrating smooth changes and getting familiar with the capabilities of 3D Studio.
Project 5: (due April 19) Create a program using OpenGL or Java3D that demonstrates articulated motion, i.e., component motion that is relative to the position and movement of another component. At least 3 joints must be involved. Either inverse (required for BS/MS credit) or forward kinematics may be employed. You can use or extend your object from Projects 1-3 or choose another object from the scene you'll be mimicking for the final project.
Project 6: (due May 3) Design and implement a video clip in 3D Studio to depict two or more animals moving along a terrain (either one of those we provide or one of your own making). It should last at least 30 seconds and include the following ``compulsory'' effects: inverse kinematics, free-form deformations, parametric surfaces (not just spheres and cylinders), and two or more distinct camera shots. The objects involved in these effects must be of your own creation, but you may feel free to use commercially made or public domain models or textures to augment your scene. A sound track is nice, but not necessary (though most students in the past have included one).
Schedule:
Week 1 (March 15-21) Topics: History of Computer Animation, Animation Pipeline, Orientation Control Lab: Object Modeling in 3DS Reading: Chapters 1 and 2 Week 2 (March 22-28) Topics: Animating Position and Orientation Lab: Surface Properties in 3DS Reading: Chapter 3.1-3.5 Week 3 (March 29 - April 4) Topics: Animating Shapes Lab: Simple Animation in 3DS Reading: Chapter 4.1-4.6 Week 4 (April 5-11) Topics: Kinematics and Collisions Lab: Relative Coordinate Systems in 3DS Reading: Chapter 5.1-5.3 Midterm Exam Week 5 (April 12-18) Topics: Constraints, Group Behavior, Implicit Surfaces Lab: Complex Motion Specification in 3DS Reading: Chapter 7.1-7.6 April 19 Thursday schedule due to Project Presentation Day - no classes Week 6 (April 20 - 26) Topics: Animating Articulated Objects Lab: Special Effects in 3DS Reading: Chapter 9 Week 7 (April 27 - May 3) Topics: Advanced Topics, Project Presentations, Commercial Animations Reading: Lab: Help session Final Exam