ANIMA II: A 3-D COLOR SYSTEM

Ronald J. Hackathorn

COMPUTER GRAPHICS RESEARCH GROUP THE OHIO STATE UNIVERSITY

ABSTRACT attempt to maximize the trade-offs involved in 3-D color animation. The goal has been to achieve An animation software system has been developed at the capability and image quality necessary for total The Research Group which allows complex animation and, yet, maintain the ani- a person with no computer background to develop an system efficiency necessary for a production animation idea into a finished color video product mation environment. which may be seen and recorded in real time. The animation may include complex polyhedra forming Anima II is a system designed words, sentences, plants, animals and other crea- for the production of color, three-dimensional educa- tures. The animation system, called Anima II, has video tapes. It is aimed at the , a high as its three basic parts: a data generation rou- tor and artist who requires anything from pur- tine used to make colored, three-dimensional volume of short color sequences for teaching objects, an animation language with a simple poses, to realistic key frame animation involving life- script-like syntax used to describe parallel mo- complex color objects and precisely timed tion and display transformations in a flexible, like movements. The Anima II system provides an scheduled environment, the Myers algorithm used in efficient environment for the creation, animation the visible surface and raster scan calculations and real-time playback display of color-shaded connected for the color display. This paper discusses the polyhedra. The video output is directly color requirements, the problems, and the trade-offs of to video recording equipment and a standard such a system. An overview of research in the television set. area is given as well as the design and implemen- tation highlights of the Anima II system. 2. Background Before discussing previous research in the area of 1. Introduction 3-D shaded animation systems it is important to briefly discuss the requirements, the problems and and im- During the past several years, from the the trade-offs which accompany the design University of Utah (16), General Electric Corp. plementation of such a system. (17) and by N. Max (18), illustrate that the abil- ity to produce 3-D shaded has 2.1 Requirements been a significant addition to the field of com- anima- puter animation. Max's comment about his , System and user requirements for 3-D shaded factors deter- "Sphere Eversion," describes the basic feeling to- tion can be classified into three wards this type of animation: "The film produces mining overall system performance. a visualization which could not have been achieved system in any other medium, and could never have been 2.1.1 Capabilities - A shaded animation animated by hand." (26) can be viewed as having three separate capabili- ties. Each has a unique function within the sys- A 3-D animation system which uses a visible sur- tem and each has different problems. face algorithm to calculate the final displayed constructing image must deal with severe time-space considera- • Data Generation is the process of tions resulting from the increased complexity of a computer model representing the three-dimen- animated. both the data and the data handling algorithms, sional object or form that is to be determined through all phases of the system. Traditionally, The type of data to be generated is algorithm used. shaded object animation while producing high qual- by the type of visible surface need ity has been a difficult, slow and expensive proc- Essentially, polygon-based algorithms algo- ess as a result of implementational trade-offs planar polygons while parametric surface There among these various considerations. rithms need high-order patch equations. have been many approaches to inputting of 3-D tablet dig- An animation software system has been developed polyhedra. These include dual data by the Computer Graphics Research Group as an itizing (32), single data tablet (23,27), and geometric modeling (4,8,13,29).

* Animation is the process of "giving life" to Permission to make digital or hard copies of part or all of this work or personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies 54 bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Siggraph ’77, July 20-22 San Jose, California the generated objects by specifying motions animation a visible surface algorithm using the which imitate the actions of the physical world. second method is capable of sufficient quality. These motions involve changes to an object's position, orientation (rotation), size and 2.1.3 Efficiency - A general definition of effi- shape. Also the concepts of acceleration, de- ciency is "the ability to produce without waste." celeration and "path-following" are included as In a computer environment, the most valuable re- motion descriptions. The animator controls the source to prevent from wasting is computer time. motions of an object through a program or In an animation environment the resource is people "script" written in the syntax of the system's time. Efficiency in an animation system implies language. Key frame techniques implemented in that all capabilities within the system are easy several 2-D/3-D line animation systems (3,6,19, to use and produce their desired results quickly. 36), notably by the Film Board of Canada (34, For example, the system is inefficient if people 35), have proven a most effective means for who have been trained in animation have to be re- specifying the motion dynamics (movement trained in mathematics and/or computer programming through time and space) of complex animation. just so they may apply their previous knowledge in The central notion of key frame animation is areas of color, form, composition, rhythm, flow that an action of an object will change "from" and motion. Further, it is inefficient if an ani- some spatial state "to" a new state and that mator is forced to stop repeatedly during the pro- this action will range "from" some time frame duction process, because of a slow turn-around within the sequence "to" a later frame. In time to see the results. this manner the user need only specify the spatial-temporal extremes and the in-between To gauge efficiency at the system level (i.e. sys- frames are calculated by the language. As well tem responsiveness and system throughput) an ani- as other responsibilities, the animation lan- mator must question all phases of the system: How guage must also control a visible surface algo- long will it take to make the data? How hard is rithm in one manner or another. it to describe the animation? How long will it take to calculate (turn-around time)? How compli- * Display and record techniques give the animation cated is the final recording process and how long system the capability of viewing the animation will it be to see the results? System efficiency during development and documenting the final in an animation environment can only be measured animation sequence. The most common method of in terms of how long it takes and how hard it is dealing with the output from a visible surface for the animator to get an animation idea off of a algorithm is to photograph it frame by frame. and onto film or video tape. A system The image output may be a sweeping horizontal which provides direct interaction and fast feed- scan line on a refresh CRT, or may be buffered back gives an animator the freedom to experiment in a 2-D matrix memory with raster video dis- with the system and get a feeling for what kind of play. Another method is to encode the visible animation can be done. surface algorithm's results and store this in- formation on an analogue (30), or digital (5, 2.2 Problems and Tradeoffs 25) disk. The video sequence may then be read from the disk, decoded through a scan-line de- Fitting the algorithms used for producing, handling coder, and displayed in real time on a video and displaying 3-D color data together into a uni- monitor. A refresh CRT needs filters to pro- fied animation system causes problems which effect duce color while a raster-scan display will the system's total performance. The problems are typically have color output. due to fixed limits within the system determined by how much time, money and memory was available. 2.1.2 Image Quality - The type of visible sur- Trade-offs occur as some features must be lost in face algorithm used by the system determines to a order for others to be implemented. large degree the single (still) frame image qual- ity produced. There has been much work in the For example the amount of directly addressable mem- area of visible surface algorithms, and no at- ory available determines how much data memory and tempt is made here to present all the factors in- instruction memory can coexist. The size of the volved. Basically, however, there are two types data space limits the complexity of the objects of algorithms, the first type of which calculate while instruction space can decide capability and the intensities of a curved visible surface to the faster response times since program overlay and resolution of a single picture element. This type task switch techniques can be avoided if all the includes the "reflected radiation" algorithm of programs are in main memory together. Magi (20), the recursive bivariate surface patch algorithm by Catmull (9), and (10,28). The second Another example is image quality and its relation- type, polygon-based, simply colors or shades in ship to capability and efficiency. A high-order the faces of 3-D polyhedra. Here the Watkins (31, parametric surface equation realistically describes increase in 33) and Myers (24) algorithms serve for examples. a smooth curved surface and has an The first method inherently produces a smoother image quality over shaded polyhedra. While it may surface than the other and lends itself to the cal- not be difficult to generate, the data for this culation of texture, patterns and reflections (7). type of algorithm without a control language, pre- Thus, for still frame images one typically insists sents difficulties for the animator. The algorithm on a visible surface algorithm using the first can also take a considerable amount of calculation method. However, for multiple frame (moving) time to generate the final pictures. For instance, images, motion contributes significantly to qual- there are some excellent results with Catmull's ity. Indeed it may be argued that the quality of method that took 25 minutes on a PDP 11/45 for a motion is the most significant contributor to the single picture (7). Calculation time becomes im- quality of the animation. In any case, for portant in an animation sequence where one minute

55 takes 1440 or 1800 frames (depending on film/video "encoding manually when additional artistic free- recording). If polygon based shading algorithms dom is required." are used, image quality drops but capability and efficiency increase (especially if the algorithm 2.3.2 Case Western Reserve University has a com- is efficient). puter system which can generate shaded perspective pictures in real time. This "Shaded Graphic Sys- Another trade-off in an animation system is the tem" was developed for Case by Evans and means of displaying the data and recording the fi- Sutherland Corporation at a cost $400,000. It nal sequence. Film offers higher quality (resolu- consists of a graphics processor driving a pipe- tion and contrast ratio) compared to video, but line of special purpose hardware for matrix multi- must be chemically processed before the results plication and shading. Sharing memory with the can be seen. Video however, has the advantage graphics processor is a PDP-11 with a 10 megabyte that it can be immediately seen as it is being re- disk and an assortment of I/O devices. 3-D data corded and the video tape can be reused. Also is processed on a scan line by scan line basis by color is a natural component in a video system a hardware implementation of Watkin's hidden sur- whereas it must be added through filters for the face algorithm and sent to a shader which uses the film process. Gouraud shading technique (21). The resulting im- age is displayed on a raster scan CRT for real- It is often said that standard TV display of com- time display. A camera unit with color filters puter pictures is of low resolution because one under computer control is used to produce computer sees the jaggies. This assumption is quite mis- animated films. leading and one should make a distinction between the inherent resolution of TV and computer gener- Jones (22) describes a high level programming lan- ated pictures. For instance, if a color TV camera guage he implemented for the Case system. It con- is recording a rotating 3-D color cube (a real- sists of a complete implementation, for the PDP world object) and it is displayed on the monitor 1l, of Algol-60 with the addition of string vari- viewed at a distance 5 times the height of the ables, I/O facilities, and extensions for handling screen, then there will be no apparent jaggies. graphic shaded images. The primary purpose of On the other hand a computed animation sequence of this work was to facilitate the use of a custom- a similar colored cube rotating on the monitor also built system which can produce shaded images in viewed from the same distance will usually have real time. According to Jones one important ad- jaggies. The visible surface algorithm must com- vantage of Algol was its block structure which pute the 3-D position, intensity, hue and satura- Jones decided would lend itself quite nicely to tion for each point generating the scan lines to the description of graphical structures. The con- display the picture. Typically there is a certain sequence of this approach is that just as Algol percentage of error in these calculations and the itself is a way of talking about algorithms, the computational time required to overcome these er- graphic-extended Algol is a way of talking about rors can be lengthy. What one must consider are graphical data structures. the trade-offs. While high picture quality is im- portant and desirable, what does it mean in the Currently, the system requires 3-D data to be en- context of moving images and the bandwidth limita- tered through a dual data tablet arrangement which tions of an NTSC signal? Vision research suggests means the animator must provide detailed drawings that less picture resolution is necessary for mov- from several viewpoints (something most ing images than static images. with their "sketchy" don't have readi- ly available). But besides this and the lack of 2.3 Other Systems color in the system, the combination of Jones' ex- tended Algol-60 language and the powerful graphic Based on the literature to date, there have been display processor presents a good example of a many computer graphics facilities which have imple- general purpose 3-D real-time animation system. mented either a technique for generating 3-D ob- Most of the film "Sphere Eversion" was calculated jects, an animation language, or a visible surface with this system. algorithm. Two examples would be the University of Utah which produced the Watkins Algorithm (31,33), 2.3.3 Credit should be given to Goldstein (20), and Archuleta's work at Lawrence Livemore Labora- Nagel, et al. (13) and Elin (14) for their pio- tory (2) where he implemented a fast version of the neering work in the area of 3-D shaded animation Watkins Algorithm on a CDC 7600. However, only a with the Magi-Synthavision system. The unique few facilities have attempted to integrate these visible surface algorithm uses curved patched sur- fundamental capabilities into one complete system faces, but its approach is fundamentally different for the expressed purpose of animation. from others. "Rays" are fired from some point in space and traced to the first visible point on a 2.3.1 An experimental 3-D animation system was de- 3-D object. The advantage of this technique is veloped at the IBM Watson Research Center by Appel that since the rays are stopped at the first sur- et al. (1). This system produced output to a high face encountered, no time is spent examining the resolution microfilm recorder in the form of hidden parts of the model which would be normally hidden. line or shaded objects. A special "movie specifi- The system is capable of generating data with a cation language" was used to control motion, chang- sophisticated "combinatorial geometry" technique ing viewpoints of perspective and a remote light (thus preventing the decrease in data generation source capable of casting shadows. Efficiency in capability, typically associated with parametric the system was increased by sharing program tasks surface algorithms). Here, "the user specifies among an IBM 360/67, a 360/91, and a 1130. 3-D the geometry by establishing two tables. The first data was entered into the system either by inter- table contains the type and location of the bodies actively picking points with an IBM 2250 or by used in the geometric description (there are nine

56 the final basic shapes). The second describes the physical component in the calculations for region in terms of the bodies in table 1 and the display output. three Boolean operators, '+', '-', and 'or'. Each region has a unique region number and the bodies o Displaying and directly recording in real time, are numbered in the order of their occurence. The the color video sequence that was calculated model is completely described in terms of its re- and stored (in binary) on the system disk by gion number." the animation language. noteworthy theoret- The input to the system also includes "the loca- While each of these areas have in and of them- tion and characteristics of a camera (focal length ical and implementational features about the Anima II and size of image plane), the direction from which selves, what is significant of these separate, com- the light is coming and a set of instructions system is the integration a complete system, which is called "Director's Language," which tells the com- plex processes into efficient. puter how to treat the objects (animate the ac- both easy to use and tors) in the film." Currently the Anima II system is supporting anima- the areas of education, telecom- The calculated visible surface output is stored on tion projects in as well as research projects magnetic tape. Using this tape as input a second munication and art pass through the computer is made to convert the for astronomy, statistics and computer-aided region-intensity data into color-intensity. The design. film process (based on color addition) requires that the output tape be made with three weighted red, green and blue frames for every one frame from the input tape. The tapes, in this form, are fed through a Data General Minicomputer to a pre- cision CRT. The images are filmed through a com- puter controlled color wheel (triple exposure-- once for red, green and blue).

The Magi-Synthavision system has taken an excel- lent approach to 3-D shaded animation with the use of "Combinatorial Geometry" and a "Directors Lan- guage" to control their calculated visible surface output. Unfortunately the system suffers from a lack of interaction, because to use these powerful facilities the animator must keypunch in the com- mands to control both the data generation and ani- mation process. Also, calculation time is slow, ranging from 30 seconds a frame for extremely sim- ple data, up to around 20 minutes a frame (15).

3. Anima II

The animation software system has been implemented in a standard minicomputer environment (Diagram 1) with a PDP 11/45 as the central processing unit. The CPU has 64 K of core memory (32 K of which contains the RSX ll-D operating system) and 32 K of MOS memory. In addition, the peripherals in- clude: a 4096 x 4096 Vector General refresh CRT with joystick, buttons and dials; a 44 mega-word (16 bit), "3330 type" moving head disk used as the system disk; a special purpose color, raster-scan decoder which serves as our real-time video inter- face. The software in the animation system was written in assembly language to increase efficien- cy (Diagram 2).

The system, Anima II, supports an environment in which a user trained in areas other than computer programming, is capable of:

* Creating complex color polyhedra with a real- time interactive geometric "modeling" routine. 3.1 Data Generation * Writing an animation script describing parallel, keyframe motion dynamics controlling multiple The objects in the animation sequence are created pro- objects. with Parent's (29) interactive data generation gram. The user views and interacts with the ob- * Animating the script using a specially written jects in real time on a random scan CRT. Concave animation language processor in which the Myers polyhedra are joined and intersected to form com- visible surface algorithm is the kernal plex shapes. The object can be bent or warped into

57 ANIMA II SOFTWARE

USER INTERFACE

VIDEO FILE SYTEM

FILE SYSTEM

Diagram 2

58 multiple shapes for animating later. Transparent position of some object to the point specified by to the user is the data structure of the objects X, Y, Z on the first frame of the sequence (coor- which consists of closed polygons forming closed dinate and frame values can be given as numbers or convex or concave surfaces. The user is only aware symbolic variables)." "At the same time, change of positioning two objects in some relation to each the position from the point where it was set, to a other, pushing a button, and either joining the two new point given by different X, Y, Z values and be together or cutting one into the other. The proc- there by frame number 100." ess is accumulative and can be repeated as often as necessary to build the final object. The color of The ability to schedule the language instructions the objects can be specified when the user chooses allows the user to animate multiple objects with- his primitive objects (a green ball can cut a green out being concerned with looping or programmatic hollow in a red cube) or individual faces may be flow control. This notion of parallel commands is selected and "painted." quite different from the typical approach found in other graphics languages in which the animation is The data generation routine uses 32 K of MOS memo- controlled by guiding an internal program address ry for instruction and data space and uses 20 K of counter or pointer, into, through and out of a se- core memory for a device handler which buffers the ries of transformation control loops. display lists and refreshes the Vector General. The routine can handle up to 2500 unique edges. A The photographs in Figures 1 through 12 are sev- user accustomed to the "sculpting and building" ap- eral of the extreme positions taken from an anima- proach of the routine can make an object in a very tion sequence involving a duck, a frog and the short time. This can range from 5-15 minutes for meeting of the two. The first four stills show a simple shape such as a block letter, 2-3 hours the duck in a head-down, head-up position as it for the frog and duck in Figures 1-12, and up to takes a drink of water. What the photos can't five hours for complex data like the "Jack-in-the- show is the duck wadling, wagging his tail, flap- Box" shown in the video tape accompanying this ping his beak, as well as changing his orientation presentation. These times also include the bending (turning to one side then the other) and moving and warping process to make multiple shapes for in- through space--all at the same time. The sched- terpolation (blending) in the language. A detailed uled commands in the script can be given quite di- presentation of the intersection algorithm used in rectly to control the transformations needed for the data generation routine is being given at this this type of animation. The animator works on mo- conference by its author. tions independently, component by component. In the case of Figures 5 to 9, the animator created 3.2 Script the frog and then intuitively "bent" the legs and arms into the extreme shapes that make up jumping Once the 3-D objects have been created, the user and swimming. Then, in the script, the animator controls the rest of the animation process through decides what the timing will be to get the frog to his script. The script is a story-boarded anima- change realistically from one shape to another. tion idea, transcribed into a list of instructions When this is settled, the animator may decide on written in the special descriptive syntax of the when to turn the frog during the sequence. After language. The language of the Anima II system of- that, how should the frog be moved to give the ef- fers a means of imitating the complex motions of fect it is swimming. Here, acceleration and de- "real" world objects by breaking each motion into celeration can be controlled by the animator to simple, but precisely controlled changes through improve the quality of motion. The introduction space and time. Language instructions are indi- of the duck, as seen in Figures 10 to 12 presents vidually scheduled to be active over a range of no difficulty to the user. Commands animating the time during the animation sequence. When the in- duck and frog are given directly, in parallel and struction has reached its time limit, it can be re- with no regard to mutual interference. scheduled to be active later in the sequence, or it can be removed from further consideration. An in- When an animator is satisfied with the actions of struction specifies key frame time parameters and the objects, he has the option of controlling the it also describes key frame spatial transform para- whole scene. Commands are used similar to conven- meters. However only the extreme parameter which tional animation terms such as pan, tilt, zoom and the instruction is changing to need be given, be- field, which change the relationship of the ob- cause the language keeps track of where each object server to the objects. Other features of the ani- currently is. This saves animators from having to mation language include color, brightness, fades, keep records on their own of what they have done so lighting-control in the form of independent posi- far in the script. They specify where they want to tion and rotation of multiple light sources and go "to," and the language calculates what the vec- the ability to calculate a single frame or short tor should be to get there. This applies whether animation segment within the script. the transform affects position, rotation, size, shape, or path. Using this format, a combination 3.3 Animation Language of a "set" and a "change" scene directive can com- pletely control one simple motion as in the exam- When the objects have been made and the motion de- ple: scribed, the animator need only evoke the language to calculate the final video sequence. The lan- guage processor, designed and implemented by Hackathorn (12), follows the user written script. It compiles an animation file which contains all the object and color parameters needed by the vis- ible surface routines next in the production proc- ess. If, for example, the script describes a

59 sequence animating thirty multi-colored block let- 3.3.2 Scheduler ters and lasting for twenty seconds (600 frames), first of three routines which then the compiled animation file will look like a The scheduler is the The scheduling routine sequential list of six hundred dynamically changing are evoked for each frame. of each new frame. data structures, each defining the spatial and dis- is event driven by the start play parameters of a collection of colored surfaces Every frame it: for one frame. * Sequences through each command block in the the parser. The program tasks for the animation language is di- list, compiled by vided into four routines: preprocessor, scheduler, block is flagged ac- interpreter, and compiler. * Judges whether the command tive or inactive after a comparison of the key in the command block and the 3.3.1 Preprocessor frame information current system frame counter. The preprocessing routines are concerned primarily the workspace with building the data structure, but also with the * Updates the motion parameters in this frame. keyword parsing of the script syntax. This routine area if the command is active is controlled first by the prescene directives then by both by the scene directives of the user written script. The scheduler routine works double duty and updating the The prescene directives instruct the preprocessor scheduling the command blocks block carries. in the building of the data structure for the en- unique motion information that each of "set" and tire animation sequence. The data structure in- It is at this state that the concepts command block cludes: "change" become important. A "set" holds its initial parameters through its time range a "change" e Face and vertice information describing the within the animation process. However, as spe- three-dimensional polygonal surface of each ob- block has a direction initially calculated direc- ject in the sequence. cified by the animator with a "change to" tive. From the first frame of activity, the direc- Z) of the "change" e The different possible shapes that any object tion (an increment in X, Y,' and internal can change into. block will be added to the block's own workspace memory. These incrementing (positive or and executed e Group pointers for each object. negative) parameters get interpreted as if they belonged to a "set" command block. This o Sub-group pointers within each object (object information is used, with no further modifications, actual parts). by the interpreter routines in doing the transformations to the data structure. e Multiple "floating" light sources. 3.3.3 Interpreter o Multiple, three-dimensional paths through space, been scheduled for sharable by all objects. After the command blocks have the current frame, the interpreter finds each ac- the parameter type (rota- e A separate color for the inside and outside of tive command, determines path, etc.), every face for every object. tion, position, size, color, shape, and performs the necessary motion or display trans- The key to the The animation language currently can control up to formations to the data structures. frame, all command 128 objects, groups of objects, or possible object interpreter is that for each new start their transfor- shapes, however, the real limiting factor in the blocks scheduled active will In this manner, both maximum complexity of the system is the 32 K ad- mation on the original data. range of their space of the PDP-11/45 CPU. The animation the order of the commands and the dress will be language uses 32 K of MOS memory and 32 K of core schedule determines what transformations memory. This allows 20 K of object data space done to the data on any given frame. (4000 to 5000 unique edges) and elsewhere a 16 K section for buffering shape vertices and path ver- 3.3.4 Compiler tices (about 5300 points at 3 words each). If a data file as op- there is room in memory for the data, the language The compiler routine compiles The routine calculates can control 128 objects, 128 shapes, 64 groups, 32 posed to executable code. perspective transfor- paths and over 500 command instructions. the color of each face, does mations, clips all faces not seen by the observer containing a complete The preprocessor routine parses, interprets, and and builds an animation file in the script. executes each of the prescene directives until it scene description of every frame comes to a SCENE START directive in the script. product of the relation- For the remainder of the script the data structure The color of a face is a of the light is fixed, no new objects can be added, and the rou- ship between the current positions face. The system has tine parses nothing, but scene directives. Each sources and the plane of the keeps as X, Y, Z scene directive gets parsed and converted into a three light sources which it them to be translated "command block," kept as part of a data list in points in space and allows The distance each memory. A command block has all the parametric and and rotated just like objects. the face, decides a key frame (schedule) information in it that was of the light sources is from this relationship a given in the directive line. It also contains weighted brightness. From This value pointers into the data structure, plus a workspace value between 1 and 224 is determined. up of 224 en- area big enough to hold the unique motion values corresponds to a color palette made bit red, which will change from frame to frame. tries, each entry describing a fifteen

60 green, blue hue combination. The color palette is created with the data generation routines have been logically organized into eight intensity-chroma reduced to triangles. sections with 28 entries (the first entry is the darkest color and the last entry is the brightest). For each frame and starting with the first, the When the object is created in the data generation procedure is as follows. The face's information stage, it is "colored" by assigning one of the is read in. This contains faces clipped out of eight intensity-chroma sections to each face. With view, backfaces removed optionally by the animator, the information supplied by the light source calcu- and color for each displayed face. Next the list lations the final offset into the color palette is of unique vertice is read in as well as miscella- produced. neous information such as background color.

The scene has a user-specified observer position. The program checks each face against the face file Every object has its own "picture plane." With for this frame and if it is to be displayed (not this information, the compiler routine calculates clipped or "back faces" removed) the face is added perspective. Each frame, the vertices after being to a list of faces whose highest 'Y' value is iden- transformed by the interpreter are projected onto tical to that of the current face. When all faces a picture plane. The 'Z' axis coordinates are un- have been checked for displayability, the algorithm affected by the perspective so that depth compari- begins producing the visible surface output. As is sons may be done later by the objects in memory as typical of linear to raster conversion and visible one object. It checks which faces can still be surface algorithms, a scan line at a time is proc- seen and appends the animation file with: essed. Starting at the highest of the 512 scan lines, lines are processed one line at a time until * The faces in the object that are displayable. all lines are processed. Each line is processed as follows. If the line contains no active faces e The colors of the displayable faces. (i.e., no face starts, crosses or ends on the line) it is ignored. If the list of faces starting on * The transformed vertices for the current frame. the line is not null then all of the faces on the list undergo a format conversion and are added to * Miscellaneous display parameters i.e., z-clip- a list of active faces. If the list of active ping plane position, and background color. faces is not null then each face on the list is processed, one face at a time, in whatever order When the last frame of the script has been com- the faces on the list are in, until each active piled, what is left is a data file on the system face has been processed. disk ready to be turned into the final color video sequence by the visible surface algorithm and a Processing a face means processing a segment of a raster-scan conversion routine. Up to this point face, since one scan line at a time is processed. the calculation time has been relatively short. Thus the list of active faces can be thought of as The only major calculations in the language are the a list of segments to process on a scan line. The dot products and face normals needed for the light first segment of the list is scanned (i.e., con- source equations. As a result, the language typi- verted to points). The 'Z' (distance from the ob- cally calculates a 300 frame (10 second) sequence server) and intensity values for each point are in under 5 minutes. stored in the appropriate places in the ZVSLS (Z values scan line structure) and IVSLS (intensity Through the script the animator may request that values scan line structure) respectively. Both the the animation file on the disk be played back (in ZVSLS and IVSLS consist of 512 locations, each lo- real-time) to the Vector General. Since the cation of which corresponds to a horizontal posi- transformations of the objects are already com- tion on the output raster. At each horizontal po- pletely defined for every frame in the sequence, sition the 'Z' value of the new point is compared the V.G. playback routine has no computation re- with the 'Z' value of the point in the ZVSLS. If quirements. This makes for an excellent way of the new 'Z' is closer to the observer then both the previewing the animation sequence to get an idea ZVSLS and IVSLS values at the current horizontal about the motions, but of course no color or position are updated with the values from the new lighting information can be displayed. If V.G. segment. If the new 'Z' is farther or equal then output is not specified in the script, the lan- no updating occurs. guage automatically evokes the visible surface. After processing a segment the corresponding active 3.4 Visible Surface Algorithm face is updated for the next scan line. If the lowest point of the face has been passed then the The visible surface routine of the Anima II system face is removed from the list of active faces. is a version of the Myers Algorithm. Full imple- After processing all faces on the list of active mentation details of the original algorithm may be faces for a scan line the scan line is converted found (24), but for completeness, a brief descrip- into run length encoded binary data and stored a tion of the algorithm, as it affects the animation scan line at a time on the system disk. process will be discussed. Given a typical animation sequence which contains The program uses 32 K of MOS memory, containing a polyhedra of around 1000 edges and covering data space of 20 K. At the beginning of each new an area of about one quarter of our TV monitor, the sequence, the program reads a list of faces from visible surface and raster scan conversion calcula- the animation file left by the language. Here we tion of a 300 frame (10 seconds) sequence takes be- note that the language has described all the ob- tween 5 to 10 minutes. If the complexity doubles, jects in the animation sequence to appear as one to but the area remains the same then the same se- the visible surface routine, also that all polygons quence will take 7 to 12 minutes. However, if the

61 area doubles and the complexity remains the same, start of field instructions are ignored. the sequence will take 10 to 20 minutes. The following calculations assume an average of one 3.5 Display and Record byte per run. This case is approached for images with (typically) fewer than 33 intensity-chroma Currently we are using a standard broadcast televi- combinations within a scan line and fewer than 25 sion as the viewing mechanism, a large capacity di- within a field. The disk specifications are those gital disk for image storage and broadcast video of the manufacturer. Since the RJPO4 disk system for the raster-scan format image representation. is (relatively) the slowest part of the system, it The broadcast video is not stored in composite NTSC determines the maximum performance level. For con- format, but rather is stored as run-lengths of par- tiguously stored files (as video files have to be ticular intensity-chroma combinations which are in this system) the disk can be read continuously converted (in real-time) to composite NTSC format at maximum possible speed with the exception that for display. The use of run-length encoding is our some time (7 milliseconds) is lost when changing response to the insufficiency of current computer cylinders. Since there are 19 tracks per cylinder technology to easily handle the large quantities of and the disk requires 16.7 milliseconds for one information implied by raster-format representation revolution, one cylinder can be ready every 317 of dynamic images. For example, a raster-format milliseconds. Since 214,016 bytes are stored per dynamic image of 512 by 512 resolution, 8 bits per cylinder, the average data transfer rate is 675 resolvable element information content, 30 frames bytes per millisecond. Allowing 10 milliseconds per second display rate and 30 seconds duration re- for change of cylinder, 207,266 (214,016 minus quires over 235 million bytes of storage. The im- 6,750) bytes can be obtained for every cylinder plied data transfer rate (8 million bytes per sec- read. Note that the storage space "passed over" ond) is prohibitive within our general purpose for change of cylinder is best wasted as an extra design strategy. This is due to the fact that revolution would be required to retrieve it. Thus, although disks of over 200 million byte capacity the average data transfer rate is 654 (207,266 di- are available, the transfer rate available is less vided by 317) bytes per millisecond. Since each TV than 2 million bytes per second. frame lasts about 33 milliseconds, this is 21,582 bytes per frame. At one byte per run, this is The run-length decoding and analog systems were 21,582 runs per frame. Since the disk has 411 cy- constructed by Dr. John Staudhammer and his asso- linders and the system is retrieving 207,266 bytes ciates (DIGITEC, Inc.; Box 5486; Raleigh, N. C. per cylinder, there are 85,186,362 retrievable 27607). The analog system and rearend of the run- bytes. At a maximum of 21,582 runs per frame, this length decoding system are similar to an earlier represents 3,947 frames. Since the data is contig- system built under Staudhammer's direction. The uous, any reduction in runs per frame directly decoding system converts our run-length format to translates into more frames. Thus, at 2,158 runs that used in Staudhammer's earlier system. (30) per frame there are 39,470 frames. (25)

A dynamic sequence is transferred from the disk to 4. Conclusion the TV according to the following scheme. A 32 KB run-length buffer is divided into two 16 KB buffers The development of computer generated 'solid' ob- for double buffering. A buffer is filled from the ject animation is changing the way an animator ap- disk. While this buffer is being filled, informa- proaches the documentation of an idea. Convention- tion to/from the disk controller from/to the CPU al animation involves drawing and redrawing planar must be multiplexed with the data from the disk. images on each frame throughout the entire se- This multiplexing is automatically handled by the quence. Image creation and image animation are UNIBUS priority arbitration unit. Fortunately, the very often the same process. But in a 3-D computer quantity of control information necessary to run animation environment, the user first builds a col- the disk is a small percentage of the quantity of ored object then animates it and these processes data being transferred. Also fortunate is the fact are separate. The approach of 3-D color animation that the dual ported MOS main memory permits the is similar to that found in other disciplines such instructions and associated data of the control as Cinematography, Theatre and Choreography. Here program to be fetched simultaneously with the data actors or dancers are chosen and given their roles being stored from the disk. Thus, there are vir- by a director who is responsible for the whole tually no memory cycles lost directly to the con- show. The approach is closer still to that of pup- trol program. pet animation in which the work if Jiri Trinka, Willis O'Brien (King Kong) and Jim Hensen with his Information flowing into the run-length decoding Muppets serves as excellent examples. system is buffered in an internal 32 KB MOS buffer before it is decoded. This is the reason that in- The implementation of such an animation system re- formation may be transferred from the MOS main mem- quires balancing system requirements against the ory buffer into the decoding system with no concern available resources, while at the same time keeping for field or frame boundaries. More explicitly, some notion of efficiency in mind. Anima II, has since field and frame boundary information is con- been developed and implemented as one solution to tained in the data, putting off decoding the data the production of 3-D color animation. Each of the until after information transfer permits the data subsystems in Anima II have been especially design- to be treated as a uniform stream. ed to both interact freely with a user and inte- grate transparently into a unified system. While The calculations below are intended to give a quan- sitting at one work station, a user of Anima II can titative indication of the capabilities of the sys- create, animate and display 3-D colored objects, tem. It should be noted that in order to provide then directly record the animation onto standard the clearest calculations, minor overheads such as video cassette tape. The system has limitations in

62 the areas of data complexity: 5000 unique edges ACKNOWLEDGEMENTS per scene; and data transfer: limited mainly by the system disk which can transfer about 20,000 The Anima II system was designed and implemented bytes (1-3 bytes per run-length) each video frame. by the Computer Graphics Research Group at The Currently methods are being explored to improve Ohio State University. Work on the project was these areas and the areas of image quality and to- performed by Charles Csuri (Director), Allan Myers, tal system throughput. Richard Parent, Timothy VanHook, Diana Rainwater, and the author. Funding for this project was pro- vided by NSF Grant DCR 74-00768.

REFERENCES

1. Appel, A., Stein, A., Landstein, J. (1970). 15. Elin, L. (1977). Presented at National Con- The Interactive Design of Three-Dimensional ference and Workshop on Electronic Music Animation, Proceedings of the Ninth Annual and Art, University of Buffalo, Suny. UAIDE Meeting. 16. Film - "Walking Man," University of Utah. 2. Archuleta, Personal Communication with CGRG. 17. Film - "NASA Space Shuttle" General Electric. 3. Baecker, R. M. (1969). Interactive Computer Mediated Animation. Dissertation, Massa- 18. Film - "Sphere Eversion" N. Max. chusetts Institute of Technology. 19. Gattis, W., Watson, (1971). An Input Transla- 4. Baumgart, B. G. (1974). Geometric Modeling tor for Animation and Its Relationship to for Computer Vision. Dissertation, Stan- Key Position . Proceed- ford University. NTIS Report Number AD/A- ings of the Tenth Annual UAIDE Meeting. 002261. 20. Goldstein, R. (1971). A System for Computer 5. Belady, L. (1970). TV Plus Computer Equals Animation of 3-D Objects, Proceedings of Videographics. Proceedings of the Ninth the Tenth Annual UAIDE Meeting. Annual UAIDE Meeting. 21. Gouraud, H. (1971). Computer Display of 6. Blasgen, M. W., Gracer, F. (1970). KARMA: A Curved Surfaces. IEEE Transaction on System for Storyboard Animation. Proceed- Computers. ings of the Ninth Annual UAIDE Meeting. 22. Jones, B. (1976). An Extended ALGOL-60 for 7. Blinn, J. F., Newell, M. E. (1976). Texture Shaded Computer Graphics. Proceedings ACM and Reflection in Computer Generated Im- Symposium on Graphics Languages. ages. Communications of the ACM, Vol. 19, No. 10. 23. Lafue, G. (1975). Computer Recognition of 3- Dimensional Objects from Orthogonal Views. 8. Braid, I. C. (1975). The Synthesis of Solids Research Report No. 56, Institute of Phys- Bounded by Many Faces. Communications of ical Planning, Carnegie-Mellon University. the ACM, Vol. 18, No. 4. 24. Myers, A. J. (1975). An Efficient Visible 9. Catmull, E. (1974). A Subdivision Algorithm Surface Program. Technical Report to the for Computer Display of Curved Surfaces. National Science Foundation, Grant Number Tech. Report UTEC-CSC-74-133, University of DCR 74-00768AO1. Utah. 25. Myers, A. J. (1976). A Infor- 10. Clark, J. (1976). Hierarchical Geometric Mod- mation Storage and Retrieval System. Pro- els for Visible Surface Algorithms. Com- ceedings of the Third Annual Conference on munications of the ACM, Vol. 19, No. 10. Computer Graphics and Interactive Tech- niques--SIGGRAPH. 11. Csuri, Charles (1975). Computer Animation, Proceedings of the Second Annual Conference 26. Max, N., (1975). Computer Animation of the on Computer Graphics and Interactive Tech- "Sphere Eversion," Proceedings of the Sec- niques--SIGGRAPH '75. ond Annual Conference on Computer Graphics --SIGGRAPH. 12. Csuri, Charles A. (1977). 3-D Computer Ani- mation. Advances in Computers. Academic 27. Negroponte, N. (1973). Recent Advances in Press, Inc., New York. Sketch Recognition. Proceedings of the National Computer Conference. 13. Davis, J. R. (1968). A Model Making and Dis- play Technique for 3-D Pictures, Pro- 28. Newell, M. (1975). The Utilization of Proce- ceedings of the Seventh Annual UAIDE Meet- dure Models in Digital Image Synthesis, ing. Ph.D. Dissertation, University of Utah.

14. Elin, L. (1975). Synthevision: Serendipity 29. Parent, R. E., Chandrasekaran, B. (1976). from the Nuclear Age, Artist and Computer, Moulding Computer Clay. Pattern Recogni- edited by R. Leavitt, Harmony Press. tion and Artificial Intelligence.

63 A Real-Time Visible (C. H. Chen, Ed.) Academic Press, Inc., 33. Watkins, G. S. (1970). University of Utah New York. Surface Algorithm. Technical Report UTEC-CSC-70-101. Staudhammer, J., Eastman, J. F. (1975). Com- 30. A Computer Ani- Display on Colored Three-Dimensional 34. Wein, M., Burtnyk, N. (1971). puter Proceed- Object Images. Proceedings of the Second mation System for the Animator. UAIDE Meeting. Annual Symposium on Computer Architecture, ings of the Tenth Annual pp. 23-27. 35. Wein, M., Burtynk, N. (1975). Computer Anima- Images. Proceedings of Sutherland, I. E., Sproull, R. F., Schumacker, tion of Free Form 31. on Computer R. A. "A Characterization of Ten Hidden- the Second Annual Conference Techniques-- Surface Algorithms," ACM Computing Surveys, Graphics and Interactive Vol. 6, No. 1, pp. 1-55, 1974. SIGGRAPH '75. J. (1968). Camp-Com- 32. Sutherland, I. E. (1974). Three-Dimensional 36. Whitney, John, Citron, Movie Production, Proceed- Data Input by Tablet. Proceedings of the puter Assisted of the AFIPS Fall Joint Computer IEEE. Vol. 62, No. 4, pp. 453-462. ings Conference.

64