# Computer Animation

## 1st Edition

### Algorithms and Techniques

**Authors:**Rick Parent

**Hardcover ISBN:**9781558605794

**eBook ISBN:**9780080502502

**Imprint:**Morgan Kaufmann

**Published Date:**13th August 2001

**Page Count:**552

**View all volumes in this series:**The Morgan Kaufmann Series in Computer Graphics

## Table of Contents

Foreword

Preface

Chapter 1 - Introduction

1.1 Perception

1.2 The Heritage of Animation

1.2.1 Early Devices

1.2.2 The Early Days of "Conventional" Animation

1.2.3 Disney

1.2.4 Contributions of Others

1.2.5 Other Media for Animation

1.2.6 Principles of Computer Animation

1.3 Animation Production

1.3.1 Computer Animation Production Tasks

1.3.2 Digital Editing

1.3.3 Digital Video

1.4 A Brief History of Computer Animation

1.4.1 Early Activity

1.4.2 The Middle Years

1.5 Chapter Summary

References

Chapter 2 - Technical Background

2.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 Considerations

2.2 Orientation Representation

2.2.1 Fixed Angle Representation

2.2.2 Euler Angle Representation

2.2.3 Angle and Axis

2.2.4 Quaternions

2.3 Chapter Summary

References

Chapter 3 - Interpolation and Basic Techniques

3.1 Interpolation

3.1.1 The Appropriate Function

3.2 Controlling the Motion Along a Curve

3.2.1 Computing Arc Length

3.2.2 Speed Control

3.2.3 Ease-in/Ease-out

3.2.4 Constant Acceleration: Parabolic Ease-In/Ease-Out

3.2.5 General Distance-Time Functions

3.2.6 Curve Fitting to Position-Time Pairs

3.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 Surface

3.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 Languages

3.7 Deforming Objects

3.7.1 Warping an Object

3.7.2 Coordinate Grid Deformation

3.8 Morphing (2D)

3.8.1 Coordinate Grid Approach

3.8.2 Feature-Based Morphing

3.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 Summary

3.10 Chapter Summary

References

Chapter 4 - Advanced Algorithms

4.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 Summary

4.3 Rigid Body Simulation

4.3.1 Bodies in Free Fall

4.3.2 Bodies in Contact

4.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 Constraints

4.5 Controlling Groups of Objects

4.5.1 Particle Systems

4.5.2 Flocking Behavior

4.5.3 Autonomous Behavior

4.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 Summary

4.7 Chapter Summary

References

Chapter 5 - Natural Phenomena

5.1 Plants

5.1.1 A Little Bit of Botany

5.1.2 L-Systems

5.1.3 Animating Plant Growth

5.1.4 Summary

5.2 Water

5.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 Summary

5.3 Gaseous Phenomena

5.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 Summary

5.4 Chapter Summary

References

Chapter 6 - Modeling and Animating Articulated Figures

6.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 Strength

6.2 Walking

6.2.1 The Mechanics of Locomotion

6.2.2 The Kinematics of the Walk

6.2.3 Using Dynamics to Help Produce Realistic Motion

6.2.4 Forward Dynamic Control

6.2.5 Summary

6.3 Facial Animation - Scott King

6.3.1 Types of Facial Models

6.3.2 Creating the Model

6.3.3 Textures

6.3.4 Approaches to Animating the Face

6.4 Overview of Virtual Human Representation - Matt Lewis

6.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 Detail

6.5 Layered Approach to Human Figure Modeling

6.6 Cloth and Clothing

6.6.1 Simple Draping

6.6.2 Getting into Clothes

6.7 Motion Capture - Doug Roble

6.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 Summary

6.8 Chapter Summary

References

Appendix A - Rendering Issues

A.1 Double Buffering

A.2 Compositing

A.2.1 Compositing without Pixel Depth Information

A.2.2 Compositing with Pixel Depth Information

A.3 Displaying Moving Objects: Motion Blur

A.4 Drop Shadows

A.5 Summary

References

Appendix B - Background Information and Techniques

B.1 Vectors and Matrices

B.1.1 Inverse Matrix and Solving Linear Systems

B.1.2 Singular Value Decomposition

B.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 Vectors

B.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 Shapes

B.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 Quaternions

B.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 Points

B.5 Randomness

B.5.1 Noise

B.5.2 Turbulence

B.5.3 Random Number Generator

B.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 Mass

B.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 Tensors

B.7 Numerical Integration Techniques

B.7.1 Function Integration

B.7.2 Integrating Ordinary Differential Equations

B.8 Standards for Moving Pictures

B.8.1 In the Beginning, There Was Analog

B.8.2 In the Digital World

B.9 Camera Calibration

References

Index

About the Author

## Description

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.

## Key Features

- Expert instruction from a pace-setting computer graphics researcher.
- Provides in-depth coverage of established and emerging animation algorithms.
- For readers who lack a strong scientific background, introduces the necessary concepts from mathematics and physics.
- Illustrates advanced programming techniques with highly detailed working examples.
- Via the companion Web site, provides lecture notes from the author's course for professors, example animations based on the programs covered in the book, Java applets, and links to relevant Web sites.
- Special contributions from Dave S. Ebert on Natural Phenomena in Chapter 5
- Special contributions from Scott King, Meg Geroch, Doug Roble, and Matt Lewis on Articulated Figures in Chapter 6.

## Readership

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.

## Details

- No. of pages:
- 552

- Language:
- English

- Copyright:
- © Morgan Kaufmann 2002

- Published:
- 13th August 2001

- Imprint:
- Morgan Kaufmann

- eBook ISBN:
- 9780080502502

- Hardcover ISBN:
- 9781558605794

## 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

## About the Authors

### Rick Parent Author

Rick Parent is an Associate Professor at Ohio State University, where he teaches computer graphics and computer animation. His research in computer animation focuses on its relation to modeling and animating the human figure, with special emphasis on geometric modeling and implicit surfaces. Rick earned a Ph.D. in computer science from Ohio State University and a Bachelor's degree in computer science from the University of Dayton. In 1977, he was awarded "Outstanding Ph.D. Thesis Award" (one of four given nationally) by the NCC. He has served on numerous SIGGRAPH committees, in addition to the Computer Graphics International 2000 Program Committee and the Computer Animation '99 Program Committee and is on the editorial board of the Visual Computer Journal.

### Affiliations and Expertise

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.