Winter 2004
Steve Rotenberg (steve@graphics.ucsd.edu)
Office: AP&M 3349A, Tues & Thurs 5:00pm-6:00pm
Nick Gebbie (ventare@redtoast.net)
Section: Mon, 12:00pm-12:50pm, U413, room 1
Lab hours: After section, Mon, 1:00pm-3:00pm, AP&M 2444
Office: Tues & Thurs, 3:00pm-5:00pm, EBU-1, 6307
Time: Tues & Thurs, 6:30 pm – 7:50 pm
Location: Center Hall 222
Lab: AP&M 2444
There are no required textbooks. Several papers will be required reading and will be added to this list throughout the quarter.
Pose Space Deformation (download the .pdf version at the upper right)
Surface Oriented Free Form Deformations
A Survey of Facial Modeling and Animation Techniques
For an introduction to both computer graphics and OpenGL, I suggest:
“3D Computer Graphics: A Mathematical Introduction with OpenGL”, S. Buss
For a non-mathematical introduction to OpenGL:
“OpenGL Programming Guide”, Woo
For a good book on C++ software architecture:
“Large Scale C++ Software Design”, Lakos
An older computer graphics book, but one of very few that talks about animation:
“Advanced Animation and Rendering Techniques”, Watt & Watt
This advanced graphics class focuses on the programming techniques involved in computer animation. Algorithms and approaches for both character animation and physically based animation will be covered. Particular subjects may include skeletons, skinning, keyframing, facial animation, inverse kinematics, locomotion, motion capture, video game animation, particle systems, rigid bodies, clothing, hair, and other techniques. A good understanding of linear algebra and computer graphics is essential and CSE167 or approval from the instructor is required.
Here is a rough outline of the course. This will be updated throughout the quarter with any changes.
There will be four programming projects, due at the beginnings of week 3, 5, 7and 10.
Some (very) basic C++/OpenGL graphics code will be provided to get some of the simple stuff out of the way, but students are allowed to use a different graphics API and/or object oriented programming language if they prefer.
- Skeleton Hierarchy: Load a .skel file and display a 3D pose-able skeleton.
- Skin: Load .skin file and attach to the skeleton from project 1.
- Animation: Load an .anim file and play back a key-framed animation on a skinned character
Choose one of the following:
- Cloth: Implement a cloth simulation
- Fancy Particle System: Implement a particle system with collision detection and some fancy forces
- Inverse Kinematics: Implement Jacobian IK algorithm on a chain of bones in the skeleton
- Locomotion: Implement multi-legged locomotion using the simple analytical IK scheme
- Rigid Bodies: Implement a simple rigid body system with collisions
- Choose your own project (please discuss it with me first!)
To turn in your projects, please put all necessary files into a .zip file (use ‘zip’)
- This should include all of the source code (.cpp, .h…)
- Also, include any files needed to compile (makefiles on unix, .dsp & .dsw for VC++, etc.), and anything else necessary
- Please leave out the big intermediate files!
- Also, please include a compiled executable.
- Include a readme.txt file in there that lists your name, any problems, issues, additional features, keyboard controls, or any other relevant information you want to include.
When you have your entire project in one .zip file, you can use the ‘turnin’ program to turn it in:
turnin –c cs169w (filename)
It doesn’t matter what you name the file, as turnin will rename it.
If turnin doesn’t work after you’ve tried many times, then please email it to both me AND my TA. Please make sure the file isn’t too big!
This class is for 4 units and grading will be based on programming projects plus a midterm and a final.
Project 1: 15%
Project 2: 15%
Project 3: 15%
Project 4: 20%
Midterm: 15%
Final: 20%
Some basic C++/OpenGL code is provided to get you started. The example is a simple object oriented spinning cube.