# Computer Animation

**Algorithms and Techniques**

**By**

- Rick Parent, is a Professor of Computer Science and Engineering at Ohio State University, where he teaches computer graphics and computer animation. He has taught Computer Animation for over 25 years and has worked in the field for over 35. His research interests include the modeling and animating of the human figure.

Whether you're a programmer developing new animation functionality or an animator trying to get the most out of your current animation software, **Computer Animation: Algorithms and Techniques** will help work more efficiently and achieve better results. For programmers, this book provides a solid theoretical orientation and extensive practical instruction-information you can put to work in any development or customization project. For animators, it provides crystal-clear guidance on determining which of your concepts can be realized using commercially available products, which demand custom programming, and what development strategies are likely to bring you the greatest success.

View full description### Audience

Computer science students and computer programmers interested in programming techniques used to produce computer animation. Titles include: Technical directors, modelers, graphics programmers, animators, and computer graphics researchers, students, and hobbyists.

### Book information

- Published: August 2001
- Imprint: MORGAN KAUFMANN
- ISBN: 978-1-55860-579-4

### Reviews

"This book is hands-down my recommendation on the technical aspects of computer animation techniques. It's both a broad overview of the field, as well as a handy reference. I expect it to be a common sight on the bookshelves of students, teachers, graphics researchers, and practitioners in the field." —Larry Gritz, Exluna/Nvidia

### Table of Contents

ForewordPrefaceChapter 1 - Introduction1.1 Perception1.2 The Heritage of Animation1.2.1 Early Devices1.2.2 The Early Days of "Conventional" Animation1.2.3 Disney1.2.4 Contributions of Others1.2.5 Other Media for Animation1.2.6 Principles of Computer Animation1.3 Animation Production1.3.1 Computer Animation Production Tasks1.3.2 Digital Editing1.3.3 Digital Video1.4 A Brief History of Computer Animation1.4.1 Early Activity1.4.2 The Middle Years1.5 Chapter SummaryReferencesChapter 2 - Technical Background2.1 Spaces and Transformations 2.1.1 The Display Pipeline 2.1.2 Homogeneous Coordinates and the Transformation Matrix 2.1.3 Compounding Transformations: Multiplying Transformation Matrices 2.1.4 Basic Transformations 2.1.5 Representing an Arbitrary Orientation 2.1.6 Extracting Transformations from a Matrix 2.1.7 Description of Transformations in the Display Pipeline 2.1.8 Round-off Error Considerations2.2 Orientation Representation2.2.1 Fixed Angle Representation2.2.2 Euler Angle Representation2.2.3 Angle and Axis 2.2.4 Quaternions2.3 Chapter Summary ReferencesChapter 3 - Interpolation and Basic Techniques3.1 Interpolation 3.1.1 The Appropriate Function3.2 Controlling the Motion Along a Curve 3.2.1 Computing Arc Length 3.2.2 Speed Control3.2.3 Ease-in/Ease-out 3.2.4 Constant Acceleration: Parabolic Ease-In/Ease-Out 3.2.5 General Distance-Time Functions3.2.6 Curve Fitting to Position-Time Pairs3.3 Interpolation of Rotations Represented by Quaternions 3.4 Path Following 3.4.1 Orientation along a Path 3.4.2 Smoothing a Path 3.4.3 Determining a Path along a Surface3.5 Key-Frame Systems 3.6 Animation Languages 3.6.1 Artist-Oriented Animation Languages 3.6.2 Articulation Variables 3.6.3 Graphical Languages 3.6.4 Actor-Based Animation Languages3.7 Deforming Objects 3.7.1 Warping an Object 3.7.2 Coordinate Grid Deformation3.8 Morphing (2D) 3.8.1 Coordinate Grid Approach 3.8.2 Feature-Based Morphing3.9 3D Shape Interpolation 3.9.1 Matching Topology 3.9.2 Star-Shaped Polyhedra 3.9.3 Axial Slices 3.9.4 Map to Sphere 3.9.5 Recursive Subdivision 3.9.6 Summary3.10 Chapter Summary ReferencesChapter 4 - Advanced Algorithms4.1 Automatic Camera Control 4.2 Hierarchical Kinematic Modeling 4.2.1 Representing Hierarchical Models 4.2.2 Forward Kinematics 4.2.3 Local Coordinate Frames 4.2.4 Inverse Kinematics 4.2.5 Summary4.3 Rigid Body Simulation 4.3.1 Bodies in Free Fall 4.3.2 Bodies in Contact4.4 Enforcing Soft and Hard Constraints 4.4.1 Flexible Objects 4.4.2 Virtual Springs 4.4.3 Energy Minimization 4.4.4 Space-Time Constraints4.5 Controlling Groups of Objects 4.5.1 Particle Systems 4.5.2 Flocking Behavior 4.5.3 Autonomous Behavior4.6 Implicit Surfaces 4.6.1 Basic Implicit Surface Formulation 4.6.2 Animation Using Implicitly Defined Objects 4.6.3 Collision Detection 4.6.4 Deforming the Implicit Surface as a Result of Collision 4.6.5 Summary4.7 Chapter Summary ReferencesChapter 5 - Natural Phenomena5.1 Plants 5.1.1 A Little Bit of Botany 5.1.2 L-Systems 5.1.3 Animating Plant Growth5.1.4 Summary5.2 Water5.2.1 Still Waters and Small-Amplitude Waves 5.2.2 The Anatomy of Waves 5.2.3 Modeling Ocean Waves 5.2.4 Finding Its Way Downhill 5.2.5 Summary5.3 Gaseous Phenomena5.3.1 General Approaches to Modeling Gas 5.3.2 Computational Fluid Dynamics 5.3.3 Clouds - Dave S. Ebert 5.3.4 Fire 5.3.5 Summary5.4 Chapter Summary ReferencesChapter 6 - Modeling and Animating Articulated Figures6.1 Reaching and Grasping 6.1.1 Modeling the Arm - Meg Geroch 6.1.2 The Shoulder Joint - Meg Geroch 6.1.3 The Hand - Meg Geroch 6.1.4 Coordinated Movement - Meg Geroch 6.1.5 Reaching Around Obstacles 6.1.6 Strength6.2 Walking 6.2.1 The Mechanics of Locomotion 6.2.2 The Kinematics of the Walk6.2.3 Using Dynamics to Help Produce Realistic Motion 6.2.4 Forward Dynamic Control 6.2.5 Summary6.3 Facial Animation - Scott King6.3.1 Types of Facial Models 6.3.2 Creating the Model 6.3.3 Textures 6.3.4 Approaches to Animating the Face6.4 Overview of Virtual Human Representation - Matt Lewis6.4.1 Representing Body Geometry 6.4.2 Geometry Data Acquisition 6.4.3 Geometry Deformation 6.4.4 Clothing 6.4.5 Hair 6.4.6 Surface Detail6.5 Layered Approach to Human Figure Modeling 6.6 Cloth and Clothing 6.6.1 Simple Draping 6.6.2 Getting into Clothes6.7 Motion Capture - Doug Roble6.7.1 Processing the Images 6.7.2 Camera Calibration 6.7.3 3D Position Reconstruction 6.7.4 Fitting to the Skeleton 6.7.5 Modifying Motion Capture 6.7.6 Summary6.8 Chapter Summary ReferencesAppendix A - Rendering IssuesA.1 Double Buffering A.2 Compositing A.2.1 Compositing without Pixel Depth Information A.2.2 Compositing with Pixel Depth InformationA.3 Displaying Moving Objects: Motion Blur A.4 Drop Shadows A.5 Summary ReferencesAppendix B - Background Information and TechniquesB.1 Vectors and Matrices B.1.1 Inverse Matrix and Solving Linear Systems B.1.2 Singular Value DecompositionB.2 Geometric Computations B.2.1 Components of a Vector B.2.2 Length of a Vector B.2.3 Dot Product of Two Vectors B.2.4 Cross Product of Two VectorsB.2.5 Vector and Matrix Routines B.2.6 Closest Point between Two Lines in Three-Space B.2.7 Area Calculations B.2.8 The Cosine Rule B.2.9 Barycentric Coordinates B.2.10 Computing Bounding ShapesB.3 Transformations B.3.1 Transforming a Point Using Vector-Matrix Multiplication B.3.2 Transforming a Vector Using Vector-Matrix Multiplication B.3.3 Axis-Angle Rotations B.3.4 QuaternionsB.4 Interpolating and Approximating Curves B.4.1 Equations: Some Basic Terms B.4.2 Simple Linear Interpolation: Geometric and Algebraic Forms B.4.3 Parameterization by Arc Length B.4.4 Computing Derivatives B.4.5 Hermite Interpolation B.4.6 Catmull-Rom Spline B.4.7 Four-Point Form B.4.8 Blended Parabolas B.4.9 Bezier Interpolation/Approximation B.4.10 De Casteljau Construction of Bezier Curves B.4.11 Tension, Continuity, and Bias Control B.4.12 B-Splines B.4.13 Fitting Curves to a Given Set of PointsB.5 Randomness B.5.1 Noise B.5.2 Turbulence B.5.3 Random Number GeneratorB.6 Physics Primer B.6.1 Position, Velocity, and Acceleration B.6.2 Circular Motion B.6.3 Newton's Laws of Motion B.6.4 Inertia and Inertial Reference Frames B.6.5 Center of MassB.6.6 Torque B.6.7 Equilibrium: Balancing Forces B.6.8 Gravity B.6.9 Centripetal force B.6.10 Contact Forces B.6.11 Centrifugal Force B.6.12 Work and Potential Energy B.6.13 Kinetic Energy B.6.14 Conservation of Energy B.6.15 Conservation of Momentum B.6.16 Oscillatory Motion B.6.17 Damping B.6.18 Angular Momentum B.6.19 Inertia TensorsB.7 Numerical Integration TechniquesB.7.1 Function IntegrationB.7.2 Integrating Ordinary Differential EquationsB.8 Standards for Moving PicturesB.8.1 In the Beginning, There Was AnalogB.8.2 In the Digital WorldB.9 Camera CalibrationReferencesIndexAbout the Author