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.
• 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.
|Edition description:||New Edition|
|Product dimensions:||7.80(w) x 9.30(h) x 1.50(d)|
About the 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.
Read an Excerpt
Chapter 4Advanced Algorithms
Animators are often more concerned with the general quality of the motion than with precisely controlling the position and orientation of each object in each frame. Such is the case with physical simulations; when dealing with a large number of objects; when animating objects whose motion is constrained in one way or another; or when dealing with objects in the background whose precise motion is not of great importance to the animation. This chapter is concerned with the algorithms that employ some kind of structured model approach to producing motion. The structure of the model automatically enforces certain qualities or constraints on the motion to be generated. The use of a model eliminates the need for the animator to be constantly concerned with specifying details of the motion. Instead, those details are filled in by the model. Of course, by using these models, the animator typically loses some fine control over the motion of the objects. The model can take various forms, such as enforcing relative placement of geometric elements, enforcing nonpenetration constraints, calculating reaction to gravity and other forces, enforcing volume preservation, or following rules of behavior.
Motion is produced by the combination of the constraints and rules of the model with additional control information from the user.
This chapter discusses both kinematic and dynamic models. Kinematic control ` refers to the movement of objects irrespective of the forces involved in producing the movement. For example, the interpolation techniques covered in the previous chapter are concerned with kinematic control. Several of the algorithms given here are also kinematic in nature, such as those having to do with the control of linked armatures. Dynamic control is concerned with computing the underlying forces that are then used to produce movement. Among the dynamic control algorithms are those that are physically based.
In the discussion that follows, kinematic models are covered first, then hierarchical models and the associated use of forward and inverse kinematic control. Rigid body dynamics and the use of constraints, which are primarily concerned with dynamic control, are then discussed, followed by techniques to control groups of objects. The chapter concludes with a discussion of animating implicit surfaces.
4.1 Automatic Camera Control
One simple example of using a procedure or algorithm for control is the specification of the position and orientation of the camera. Various guidelines are employed in the art of filmmaking for positioning the camera so as to capture conversation, follow action, and emphasize spatial qualities such as vastness or intimacy . These guidelines primarily address aesthetic concerns; the discussion here focuses on basic computational models for calculating camera motion based on the geometric configuration of the elements in the scene.
Often, the animator is more concerned with effectively showing an action taking place than with getting a particular camera angle. When using high-level algorithms to control the motion of objects, the animator may not be able to anticipate the exact, or even general, position of objects during the animation sequence. As a consequence, it is difficult for the animator to know exactly how to position and orient the camera so that the important action will be captured in the image. In such cases, it is often useful to have the camera position and center-ofinterest location automatically generated for each frame of the animation. There are several ways to automatically set up camera control; the choice depends on the effect desired in the animation.
A common way to automatically control the camera is to place the camera position and/or center of interest relative to the positions of one or more objects in the animation. (A simplifying assumption, which will be used for now, is that the camera will maintain a head-up orientation during the motion.) A static camera can be used to track an object by attaching the center of interest to the object's center point. If a group of objects move together, then the average of their locations can be used as the cameras center of interest. This works as long as other moving objects do not get in the way and the object (or group of objects) of interest does not move too far away.
The camera can closely follow a widely roaming object by locating the position of the camera relative to the moving object. For example, a constant global offset vector can be used to position the camera relative to the center of interest; the offset vector can also be relative to the tracked object's local coordinate system. Sometimes it is useful to constrain the cameras position to a predefined plane or along a line segment or curve. The closest point on the constraining element to the center of interest can be calculated and used as the camera location. For example, in some situations it might make sense to keep the camera at a specified altitude (constrained to be located on a plane parallel with the ground plane) so that it can capture the action below. Other constraints can also be used, such as distance between the camera position and the center of interest and/or the angle made by the view vector with the ground plane.
Such precise calculations of a camera location can sometimes result in movements that are too jerky if the objects of interest change position too rapidly. If the camera motion can be precomputed (the animation is not being generated interactively or in real time), then smoothing the curve by averaging each point with some number of adjacent points will smooth out the curve. Attaching the camera or center of interest with a spring and damper, instead of rigidly, can help to smooth out the motion. For example, to track a flock of birds, the center of interest can be attached to the center of the flock and the camera can be attached by a spring-damper combination (see Section 4.3 for a discussion of modeling dynamics and Appendix B for the basic equations of motion) to a location that is to the back and side of this position.
It is useful during animation development to define cameras whose only purpose is to inspect the motion of other objects. A camera can be attached to the front or "over the shoulder" of an object moving in an environment, or it can be attached to a point directly above an object of interest with the center of interest coinciding with the object. To check facial expressions and eye movements, a camera can be positioned directly in front of an object with the center of interest positioned on the figure's face.
Although automatic control of the camera is a useful tool, as with most automated techniques, the animator trades off control for ease of use. Efficient use of automatic control requires experience so that the quality of the results can be anticipated beforehand.
Table of ContentsPreface
Chapter 2-Technical Background
Chapter 3-Interpolation and Basic Techniques
Chapter 4-Advanced Algorithms
Chapter 5-Natural Phenomena and Other Special Models
Chapter 6-Modeling and Animating Articulated Figures
References and Bibliography
What People are Saying About This
This book is, hand's 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
The past decade has been a particularly exciting period in computer animation both for those engaged in the field and for the audiences of the many films that have used the technology. It has been exciting to see animation that could not have been done any other way, as well as films with special effects that blend animation and live action so well as to make them indistinguishable. Underlying this enormous activity is the set of algorithms that comprise the actual software engine of computer animation, defining the powers of expression that are available to the animator. With the industry's maturity has come the need for a textbook that captures the art and mathematics behind the technology and that can serve as both an archival record and a teaching manual. With Computer Animation: Algorithms and Techniques, Rick Parent has done a terrific job of meeting this need. He has worked in the area of computer animation since its early days in the seventies, first as a student and now as a professor on the faculty at Ohio State University as well as a consultant and entrepreneur.
Just as we at the National Research Council of Canada were fortunate to work with artists and animators in the early days of developing computer animation techniques, so was Rick Parent at Ohio State University. Whereas we worked under the leadership of Nestor Burtnyk primarily in 2D layered cel animation, Rick embarked on applying 3D graphics methods that have become the basis of most commercial computer animation today. Because of this experience, Rick's book is both academically rigorous and eminently practical, presenting a thorough and up-to-date treatment of the algorithms used in computer animation.