<<

A System for Computer Generated Movies

Edwin Catmull,

With the recent developments in fast hid- (1,2,3). This research uses Watkins (3) den surface and a method for 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 , 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 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 MOVE 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:

424 Figure 2. A sequence of ii frames showing the hand close and open. • Notice the rate of change is not constant.

.... , ~ o - •

425 ~ ~ s ? ~ ~ ~ ! }!

i~ ~ ~ ~ ~ ...... ~ ~ ~ ~i~ !~i

~i~i~! ~i~i~ ii !~ i } ~::ii~ii~ :/}!i ~i ~ !~:

~iI ii~ iii~ i..... :~i~ ~!ii~!!ii ~~:~ i~ i~!!~ ! ~ i ~

i ....

426 Figure 3. A line drawing of the hand as it was input.

Figure 4. The hand as displayed using hidden surface and smooth shading algorithms.

427 Figure 5. The hand as displayed using hidden surface algorithm but no smooth shading. The indiv- idual polygons can be seen.

L i ! L ~ i

> e÷c

P~tw l I I ,L' ~. [ t

Figure 6.

428 The frame period is used to specify The statements to MOP may be in any over what frames the statement is execu- order. This feature makes a considerable ted and at what rate changes occur. It is difference in programming ease. of the form: THE MAKING OF A MOVIE ,,

As an illustration of the capabili- ties of this system, a movie of a hand The first expression is the starting was made. A hand was chosen because it frame, the second is the last frame, and was difficult enough to show some of the the third indicates which table or arith- possibilities and weaknesses of the sys- metic formula is to be used to dictate the tem. The hand has a flexible surface rate of change. and parts that move relative to other The instruction is either a reserved parts. The following steps were taken. instruction or the name of another state- ment. Data Acquisition The parameters are arithmetic expres- sions or strings, the value of which may Although outside the scope of this either be passed to another statement or paper, it should be noted that this is passed to a reserved function for output. still a formidable task. For the hand, When the program is read in, the a plaster of paris mold was made. (A frame sequence is either known or unknown. word of caution to anyone wishing to make For example: a similar mold: it is more comfortable to shave the back of the hand before 76,175,B ROTATE "PALM",1,30 making the mold than to have the hairs pulled out by the mold.) Next, a plaster has a known frame sequence 76-175 and will model was made from the mold and covered cause the palm to be rotated 30 degrees with a thin layer of latex material. about axis 1 during that 100 frames. The Polygons were drawn on the latex. It was amount rotated each frame is determined by necessary to extract the three dimension- the table or formula named "B". On the al coordinates of some 270 corner points other hand: defining the surface of the hand, organ- ize them into about 350 polygons, and LAB: FIRST,FIRST+50,B ROTATE "PALM",l,30 organize the polygons into the parts of the hand. This was followed by deter- has an unknown frame sequence as long as mining the axes about which each part FIRST does not have a value. Each state- rotated. Figures 3, 4, and 5 show the ment is initially put into one of two polygons drawn as lines, polygon surfaces, lists: one for instructions where the and the smooth shaded version. frame sequence is known, the other for the unknown. Mapping Out the Action One of the reserved instructions is "BEGIN" which means that all of the This consists of deciding what following statements until an "END" will actions are to take place and when they be grouped under the same label. However, are to occur. See figure 6. Some of the execution of each statement in the this work can be done interactively. group is still determined by its own Baecker (7) has developed a scheme in two frame period specification. dimensions for specifying motion, however, A frame counter is started that is this has not yet been worked out satis- incremented for each frame. During each factorily in three dimensions. Tradition- frame, every statement in the "known" ally, the creation of an animated film list is checked to see if the frame begins with a story board. The system counter is within its frame specifica- described in this paper is meant to be tion. If so, the statement is executed used with a storyboard format. However, with appropriate modifications made de- the way one lays out the sequence of pending on how far into the frame events is a matter of personal style. sequence the frame counter is. A state- ment may call by label a statement or Programming group of statements from the "unknown" list to be in the "known" list by giving The first step is to write routines values to its undefined variables via the of motion. As an example, the fingers parameters. The new statements may take move often enough that one might like to on the frame specification of the caller. be able to type: This way routines of motion may be writ- ten. N,N+50 ROTFIN 45,45,50,60; The output is a file of instructions for the MOTION routine. A page and a where the parameters specify how much half of coding in MOP to manipulate a the parts of the respective fingers hand to various positions for a minute would rotate. Once the routines of movie will generate the some 13,000 Motion have been written (in MOP) it is changes that are made to the hand. relatively trivial to program the movie

429 using the plan specified in the previous the location and amount of rotation of any step. Each bar segment in figure 6 can object. usually be taken care of by a single MOP allows for the writing of rou- statement. Again, the order of state- tines of motion, but does not have a very ments is inconsequential. natural syntax. It has been used for making several small movies, none of which Filming had a story theme. The next step is to create a language with a better syntax. The instructions created by MOP are given to the MOTION program which gets CONCLUSION the objects, makes changes on them, sends necessary information to the picture pro- A movie of the hand lasting more cessors, and advances the camera. For than a minute was made using the above debugging purposes, the half tone proces- system. The making of a movie is trivial sor may be replaced by processors that compared to the aqquisition of data at paint the polygon edges on a vector or this time. Data is currently being gath- storage scope (figure 3). ered for the surface definition of a whole human body. At the time of this writing, Computers and Animation a hardware implementation of Watkins algo- rithm has been completed, which is capable The kinds of control needed for a of displaying the picture data at a rate film making language are: of 30 frames per second. At present it i. that it must be set in a context takes three to ten seconds to transform of frames and concurrent actions. the object description to a format accept- 2. the creation and manipulation in able for the Watkins processor, but with general of shapes and relations. the addition of a hardware clipper and 3. how motion occurs - specified by matrix multiplier, the real time display mathematical equations or empirical data. of computer generated half-tone animated 4. to prevent conflict of objects objects is a real possibility. because of accident or data error, i.e. The system described in this paper one would not like to see an elbow bent has the kind of control needed to make the wrong way or a car driving through a movies that look good. For making movies, tree. it is more desirable to be a director than 5. keep track of where objects are a programmer, recognizing, of course, that at. being a good director is still a lot of 6. create routines of motion, i.e. work. a walking routine that could be applied to a person for an arbitrary number of ACKNOWLEDGMENT frames. 7. naturalness in describing I would like to thank R. E. Stephen- action, i.e. son, , Fred Parke, and Barry Wessler for ideas, cooperation, and IN FRAMES T TO T+400 WALK CHARLIE TO encouragement. TABLE; REFERENCES The system described in this paper gives most of the above controls to some i. Warnock, J., "A Hidden Surface Algo- extent. MOP is convenient for specify- rithm for Computer Generated Halftone ing concurrent actions in frames. It Pictures," Technical Report 4-15, Computer allows for rotation of objects in three Science, University of Utah, Salt Lake dimensions in a very natural way. How- City, Utah, June 1969. ever, in general, there are many kinds of flexible surfaces, i.e. cloth and 2. Bouknight, W. J., "An Improved Proced- water, that are difficult to model. The ure for Generation of Half-tone Computer best that this animation system can do Graphics Presentations," Report R-432, is interpolate between extreme configur- Coordinated Science Laboratory, University ations of a surface. A great deal of of Illinois, Urbana, Illinois, September research still needs to be done on the 1969. creation and manipulation of three dimensional objects. 3. Watkins, G. S., "A Real-time Visible For the kinds of motion allowed, Surface Algorithm," UTEC-CSc-70-101, Com- the method of specifying action is very puter Science, University of Utah, Salt general. The problem still remains with Lake City, Utah, June 1970. the animator to dictate the rate of change of motion. This is a non-trivial problem 4. Gouraud, H., "Computer Display of if a nice-looking action is desired. Curved Surfaces," UTEC-CSc-71-113, Compu- Conflict of objects is only partially ter Science, University of Utah, Salt Lake taken care of. There is no check to keep City, Utah, June 1971. one object from passing through another. This problem is partially taken care of 5. Citron, J. and Whitney, J. H., "CAMP- because it is very easy to keep track of Computer Assisted Movie Production,"

430 Proceedings of FJCC, 1968, vol. 2.

6. Weiner, D. D. and Anderson, S. E., "A Movie Language for Educational Motion Pictures," Proceedings of FJCC, 1968, vol. 2.

7. Baecker, R. M., "Picture-Driven Ani- mation," Proceedings of SJCC, 1969.

8. Gracer, F. and Blasgen, M.W., "Karma- A System for Storyboard Animation," Com- puter Graphics, Vol. 5, No. i, p. 26, 1971.

431