# Computer Animation

### Algorithms and Techniques

Free Global Shipping

No minimum order## 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.

* 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.

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

## Product details

- No. of pages: 552
- Language: English
- Copyright: © Morgan Kaufmann 2001
- Published: August 13, 2001
- Imprint: Morgan Kaufmann
- eBook ISBN: 9780080502502

## About the Author

### Rick Parent

Rick Parent is a Professor Emeritus in the Computer Science and Engineering Department of Ohio State University (OSU). As a graduate student, Rick worked at the Computer Graphics Research Group (CGRG) at OSU under the direction of Charles Csuri. In 1977, he received his Ph.D. from the Computer and Information Science (CIS) Department, majoring in Artificial Intelligence. For the next three years, he worked at CGRG first as a Research Associate, and then as Associate Director. In 1980 he co-founded and was President of The Computer Animation Company. In 1985, he joined the faculty of the CIS Department (now the Department of Computer Science and Engineering, or CSE) at Ohio State. Rick's research interests include various aspects of computer animation with special focus on animation of the human figure.

#### Affiliations and Expertise

Professor Emeritus, Department of Computer Science and Engineering, The Ohio State