A System for Computer Generated Movies Edwin Catmull, University of Utah with the Recent Developments in Fast
Total Page:16
File Type:pdf, Size:1020Kb
A System for Computer Generated Movies Edwin Catmull, University of Utah With the recent developments in fast hid- (1,2,3). This research uses Watkins (3) den surface algorithms and a method for algorithm since it has been implemented smooth shading of half-tone pictures, it in hardware and is remarkably fast. One has become feasible to generate useful of the objections to these algorithms is movies with the computer. This paper that all surfaces must be made up of describes a system used to make computer polygons. This is a severe restriction generated movies. It also explains the for curved surfaces such as spheres or methods used to attempt to solve the skin. Fortunately, Henri Gouraud (4) has problems of object representation, object developed a method, called smooth shading, manipulation, concurrent motion, and ease for making polygonal surfaces appear of specifying motion. The system was curved. first used to make a movie of a hand that With these developments, it has lasts for little more than a minute. become feasible to generate useful half- tone movies with the computer. This KEY WORDS AND PHRASES: half-tone com- paper describes a system used to generate puter graphics, hidden surface, polygonal movies. It explains the methods used to surface structure presentations, anima- solve the problems of object representa- tion, graphic language, movie tion, object manipulation, concurrent CR CATEGORIES: 3.41, 4.29, 8.2 motion, and ease of specifying motion. INTRODUCTION THE SYSTEM Computer generated pictures and Figure 1 shows a block diagram of movies have been made by artists and a system for making movies. The high computer scientists for several years precision scope is a raster scope simi- now, and have recently caught the public lar to a TV but with higher resolution eye. Most of the computer movies, how- and quality. The hidden surface removal ever, have consisted of line drawings. is done by a routine developed by Gary The state of the art in half-tone pic- Watkins (3) which operates on polygons. tures was not advanced enough to make it The smooth shading was developed by reasonable to produce half-tone movies. Henri Gouraud (4). It is necessary to Half-tone pictures are displayed on a send these routines the points of a poly- screen much as a TV picture is presented: gon, the normals at each point for shad- surfaces are painted with differing ing, and the whiteness or colour for each shades on scan lines. The most basic polygon. All objects displayed by this problem with half-tone pictures was system must be made up of polygons. This deciding which surface was in front and is usually not a serious limitation therefore should be painted on the scope. because of the smooth shading. Several algorithms have been developed for different classes of surfaces. Most were DATA DESCRIPTION quite time consuming. Recently there have been fast hidden surface algo- For the purpose of this paper, an rithms for surfaces made up of polygons "object" or "part" is a group of poly- gons that will transform together and a "body" is an organized group of objects. This research was supported in part by For example, the body of a hand is made the University of Utah Computer Science up of several smaller objects: the palm, Division and the Advanced Research Proj- the bottom of the thumb, the middle of the thumb, the top of the thumb, etc. ects Agency of the Department of Defense monitored by the Rome Air Development The objects are organized in a tree Center, Griffiss Air Force Base, New York, structure. By using a tree structure, under contract number F-30602-70-C-0300. any transformation applied to an object at a node also applies to its children. 422 Iteletype~ i°r ~instructions to • manipulate -- 1 manipuiate ___~ hidden high objects • surface J precision removal • scope and shading object J movie description I camera file Figure i. If one rotates the bottom of the thumb, One can define an axis of rotation the other two parts of the thumb follow for an object relative to its parent ob- automatically. Each object is described ject. The axis of rotation is defined by as follows: three points where the axis passes through the second point and is perpendicular to the plane defined by the three points. A positive rotation is taken from the first father to the third point. One can name differ- brother ent degrees of rotation. For example, in a forearm, we might call zero degrees points OPEN.and 170 degrees CLOSED. Then when one wants the arm to go straight, regard- polygons less of the position it is in, it is only necessary to give an instruction that the axes forearm go to position OPEN, rather than named positions having to keep track of the position. This can prevent losing track of where one is at after making many changes. For example, to describe a body con- The points are a numbered list of sisting of two objects where each object x, y, and z coordinates. Polygons are consists of one polygon. described by a list of numbers where each number refers to the correspondingly numbered point. If the number is pre- ¢o,,,,) c,,,,,) /Z C*,,,I) ceded by a "+" the point is in the ob- ject named as father. If the number is preceded by a "÷" then the point is in the object named as brother. This way objects can be connected together by having polygons with points in different objects to allow for flexible surfaces. ./,,,,"~o.o.i) . -'¢,,o.i) (.%0, I) r po "t' Each object can be assigned a color. ," • ,_JX (%o,o) 423 NAME=FLAP1 rotates. In order to make a movie of POINTS only one minute (1440 frames), about 1 0. 0. i. 13,000 instructions must be executed. It 2 i. 0. i. is immediately apparent that it is un- 3 i. i. i. reasonable to specify frame by frame a 4 0. i. i. complex behavior that lasts for more than 5 i. 0. 0. a few frames. The problem is compounded POLYGONS by the fact that objects may move indepen- 1 2 3 4 dently inetime, thereby making normal END FLAP1 looping techniques inadequate to generate NAME=FLAP2 the instructions needed. FATHER=FLAP1 POINTS MOP - A MOTION PICTURE LANGUAGE 1 2. 0. i. 2 2. i. i. Typical programming languages are POLYGONS much too sequential in nature for speci- 1 2~ +3 +2 fying easily the kinds of simultaneous AXIS 1 +i +2 +5 and overlapping action we expect in a FLAT=0 movie. There have been some animation CLOSE=90 systems that have tried to solve this END FLAP2 problem (5,6,7,8). The language MOP is designed to allow concurrency from the This method of data representation point of view of the user. It generates is fairly convenient to use but still instructions for MOTION which changes and does not solve some of the more difficult displays the objects. problems of flexible surfaces. Careful Figure 2 shows a sequence of ii inspection of the hand (figure 2) when the frames where a hand first closes and then hand is closed will show that the joints opens in a fanout way. Notice that the become somewhat distorted. This is not motion starts slowly, speeds up, and then just a matter of choosing wrong axes of slows before stopping. The rate at which rotation. Two possible solutions to this an object moves or changes can be speci- particular problem are: fied by either some mathematical formula- i. Interpolation between two states tion (in this case a sine curve) or a taking into account rotation. Unfor- table of empirical data. The program then tunately, it would be extremely difficult integrates the area under some portion of to get the coordinate definition of a the curve to determine the movement for closed hand. each frame. 2. Generating the polygons of a For example, if one wanted an object flexible part using some curve fitting or to accelerate (animators refer to it as a B-spline technique. This has yet to be slow-in), a table could be created as fully worked out. follows: MOTION - THE OBJECT MANIPULATION ROUTINE The routine MOTION accepts instruc- tions to manipulate objects, prepares the data for sending to the hidden surface algorithm, and controls the camera. The instructions to MOTION can come from either a teletype or a file. The most commonly used instructions are: ROTATE <object name><axis number><de- grees> MOVE <object name><dx><dy><dz> DISPLAY There are other instructions to control The user would have to specify the table resolution, background, intensity, cam- either by guesswork or from empirical era, the instruction file, etc. There data. The table can be used for any are instructions to return the current frame period. The number of frames in the state of an object. For example, a con- period is the number of divisions along trolling program may request the degrees the time axis. The movement in each of rotation that the top of the thumb has frame can then be easily calculated. made or how many degrees the thumb must Most statements in MOP are of the rotate to reach a given named position. following form: <label> <frame period> This makes it usually unnecessary to keep <instruction> <parameters~. The label is track of the changes made to an object. an alphanumeric name followed by a colon. For a movie of a hand, each frame It is optional and is used to name a may require as many as 14 instructions, statement.