Compufilms: A computer animation process

Lawrence I Lieberman

Research Scientist, Pennsylvania Research Associates

and Moore School of Electrical Engineering

January 1971

Simulation, Vol 16, No 1

LAWRENCE LIEBERMAN received his BS in 1970 from the Moore School of Electrical Engineering, University of Pennsylvania. He participated in the development at the Moore School of the Growing Machine, an expandable language, pushdown processor, in 1967, and was a member of the computer animation project which, in 1968, produced the first in a series of full-length, computer-generated, color-and-sound movies on electromagnetic fields and waves. Since 1968 Mr Lieberman has been employed as a research scientist by Pennsylvania Research Associates Inc, where he has specialized in computer graphics and image processing including radar displays, lunar landing simulation, and Compufilms. He is currently enrolled in the Moore School's graduate program in Computer and Information Sciences. He is a member of the ACM, Tau Beta Pi, Eta Kappa Nu, Sigma Xi, and Sigma Tau.

ABSTRACT

Compufilms is a computer-generated animation technique developed jointly by Pennsylvania Research Associates Inc (PRA) and film producer, Stanley Rose. A medium-scale general-purpose digital computer (RCA Spectra 70/46) is used to generate display instructions for a Digital Equipment Corporation PDP 8/338 connected as a satellite computer via telephone lines. The DEC 338 CRT display is photographed with a motor-driven motion picture camera having a single frame feature. Special effects and color are added at this point.

The basic movie generating softwave was written at the Moore School of Electrical Engineering, Univensity of Pennsylvania, on sponsored projects. The developers have been able to extend the use of this software and combine it effectively with special animation and cinemagaphic processes to create Compufilms. This article describes the system and its operation, and illustrates its use as a practical animation process.

INTRODUCTION

Compufilms is a process for computer-generated animation which combines computer graphics techniques with the special effects methods of cinematography. The method allows line drawings of objects to be animated by entering their associated motions into a computer which then displays the resulting scene frame-by-frame on a CRT for photographing. In addition to the object motions, the movements of a three-dimensional conceptual camera are given to the computer which then simulates the actions of a real motion picture camera. All the objects and the camera are independently movable with six degrees of freedom in an imagined 3-D space. A live special-effects camera adds color, multiple exposures, background mixing, and other optical processes.

THE SYSTEM

The hardware configuration of the system shown in Figure 1 requires a medium-scale general-purpose digital computer and a display processor with vector generating capability. In this case a minicomputer-display, a Digital Equipment Corporation PDP 8/338, is employed as a satellite computer during the processing of the animation program by an RCA Spectra 70/46. In the film production part of the procedure the display processor is used as a stand-alone playback mechanism, i.e., animated scenes produced by the main computer which have been transmitted to the satellite computer are recorded on magnetic tape (DECtape) and may be displayed off-line at the convenience of the cinematographer.

RCA SPECTRA 70/46 2018 DATAPHONE DEC PDP 8 9-TRACK TAPE TELEPHONE LINE (VOICE GRADE, FULL DUPLEX, SYNCHRONOUS) DEC TAPE 55 338 DISPLAY DISPLAY PROCESSOR SATELLITE OR STAND-ALONE
Figure 1 - System configuration

The software consists of two basic sections: the graphics and animation routines which reside in the general-purpose computer, and the display monitor which handles communications, recording, and picture display in the PDP 8/338. The graphics and animation package is a set of FORTRAN IV subroutines which allow the programmer to deal with the artist's input at various levels. The most basic level is the one at which each line is dealt with as an individual entity. Subroutines exist to manipulate and display vectors or characters with windowing-clipping of lines at the boundary of the displayable area - after perspective projection.

However, interesting film sequences usually require many lines or at least have groups of lines that are logically related. Furthermore, the ability to cause these objects to move about without having to respecify (or redraw in the manual animation sense) each successive frame of the sequence is certainly a desired characteristic of any animation system. This is done with a hierarchy of subroutines which progressively give the programmer a more natural control over the components of a scene.

These routines allow one to enter descriptions of bodies which are relative to their own body coordinate system. Each body system can be translated, rotated, and instructed to follow a path in both space and time. Time is controlled by the number of frames per motion and by the assumed time increment per frame, which can also be changed when the sequence is photographed or projected. In addition, the programmer acts as a director who has complete control over his camera. The camera here is another body system - a very special one, though. Like the others it uses an orthogonal, right-handed coordinate frame. All images are viewed by looking out along the z axis (of this x,y,z system) with a field of view whose angle is specified by the programmer. This is called the conceptual camera and is shown schematically in Figure 2.

ZC YC XCAMERA "FILM PLANE" -ZC XBODY YB ZB A BODY SYSTEM XREFERENCE YR ZR FIXED REFERENCE SYSTEM CONCEPTUAL CAMERA SYSTEM 2 X FIELD OF VIEW ANGLE
Figure 2 - The conceptual camera coordinate system

The movements of both the camera and the bodies are all specified relative to a fixed reference coordinate system whose units can be whatever is convenient to the person specifying the scene. Standard (but variable) types of body motions are easily performed by writing FORTRAN subroutine calls such as CALL XTRANS (3,54,75,32.6).

The above would have the effect of moving the third body system 32.6 units in the +x-direction over frames 54 to 75, inclusive. The direction of movement is always relative to the fixed reference system. The frame numbers refer to the fact that a movie (or movie sequence) can be thought of in programming terms as a looping process where each iteration of the loop causes an increment in time, possible movement of the bodies and/or camera, and the production of one frame. In fact, exactly such a loop procedure is used in the main program, and the system software automatically updates all the required parameters (in space, time, and frames) for all the bodies and the camera.

An example of a camera motion is CALL PAN(-1,25,250,0 60.0), which would cause a left angular pan of 60° occurring from frame 25 to frame 250. Camera motions can be combined in many ways. There are seven basic camera actions - pan, tilt, dolly, crane, truck, zoom, and roll (zoom is not actually a motion, but a change of the field of view). Also, the camera and the individual bodies can be made to follow paths of pre-specified points in 3-D space. To use this feature the programmer reads in 3-dimensional arrays of coordinates for each path. Subroutines are provided to handle this information automatically, including all necessary updating.

When a frame is called for, the coordinates of each body system are transformed into reference system coordinates. Then, knowing the position and orientation of the camera system, the program transforms these coordinates into camera coordinates in the camera system's x-y picture plane. Thus a perspective view is produced, with any (body) lines lying outside of the camera's field of view being eliminated. The coordinates of the line endpoints are now converted to the display coordinate system (in this case it is a 1024 × 1024 grid), and the information is either recorded on the Spectra's 9-track tape or transmitted directly to the PDP8/338.

(Actually a multiple, output-buffering system is used, to allow parallel processing.)

The display monitor in the satellite computer will receive the vector information for each frame and display it immediately on the CRT. When an internal buffer is filled, the information is written onto a DECtape (a fixed-address system tape with variable block size, and no interrecord gaps) as differential files, i.e., only those vectors which are different from those in the immediately previous frame are added to the output records. This form of data compression allows for real-time playback of the movie sequence from the DECtape later.

The display processor is used independently as a combined movie-projector-animation stand by loading a playback program and mounting a previously written DECtape with movie information. The program is controlled via the PDP8-338's twelve pushbuttons, which let the operator choose the scene number (up to eight scenes may be stored, or piggybacked, on a single tape), frame rate, and whether multiple scenes are to be displayed. There are sixteen available frame rates ranging from zero (single-stepping, again by pushbutton control) to tape speed, which usually allows over 30 frames per second. For a more detailed description of this portion of the computer-generated animation system, including an evolutionary look at its development at the University of Pennsylvania, Moore School of Electrical Engineering, see Coulter and Johnson [2].

The technique depends greatly upon the enhancement of the output through optical processes. Stanley Rose, a Philadelphia film-maker with 18 years experience in animation and cinematography, has successfully photographed the display screen obtaining high-quality color sequences. Using a Maurer 16 mm animation camera with a special stop-motion motor, he is able to add color with in-front-of-the-camera filters and commercial low-contrast Ektachrome film. A 40 mm lens is employed because of its good definition at the range of 45 inches from subject to film plane.

He is also able to augment the computer graphics not only with color, but also with other effects as well. He can obtain dissolves, fades and wipes (some of the standard movie scene transitions) directly in the camera. Animated trace patterns showing an object's path of movement through space (simulating a display CRT with high persistence), an effect which is very costly if every image is programmed, can be produced cheaply in the camera through carefully controlled multiple exposures. Backgrounds, regular animation, and live-action may also be added.

THE PROCESS

Consider the step-by-step process for making an animated film sequence. First, script sessions are held in which a scenario is developed and basic art design is presented. From the scenario, art design layouts or storyboards are drawn which show key frames in each scene. Also, narration and musical or sound scoring may be completed at this time.

Detailed specifications of all objects and movements in each scene must now be created so the programmer will be able to translate the script-writers' and artists' ideas into a corresponding program. Object definitions are exactly scaled renderings of each body in the movie. (The sketches drawn from the storyboard usually lack detail and exact size relationships.) Sketches are drawn by the artist with the help of the programmer who gives advice as to scaling and spatial relationships. Motions of objects and the conceptual camera are specified in detail on scroll-like worksheets which describe all actions frame by frame. The program and data are now prepared. Each object definition is manually digitized so that a set of x,y,z coordinates exists for every vertex of each of the objects. The ways in which vertices are connected to form each object are coded and punched onto cards also. One other set of input data is created - the initial positions and angular orientations of the camera and bodies (which are all read in as FORTRAN namelists).

The program itself can be thought of as having two sections. Initialization occurs in the first part: memory is allocated for the bodies, data is read in, some of the future camera and body motions are set up, and the output mode is specified. The second part consists of one or more DO loops which cause the production of the various sequences in the movie. More body motions can be specified in these loops. Each iteration of the loop usually creates one frame. (On twos, or double frame production, is done automatically if desired.) Another special feature is the ability to (a) create fixed images (parts of a picture) which are to be used repeatedly (such as background objects), (b) save the display instructions generated, and then (c) re-use these images by sending them to the output buffer. This, of course, saves large amounts of computation time; several hundred copies of these images may be output per second. Computation time for redrawn frames of course varies with the complexity of the drawing, but is typically a hundred times as great as that required by the saving and reusing process.

The next step is to run the program in the general-purpose computer. If the satellite (display) computer is busy, a 9-track output tape is created rather than transmitting directly. The transmitted information is received at the PDP8/338 and recorded (again there is a buffer) on DECtape. Concurrently, each frame is displayed. At the end of the transmission the tape of the scene is played back. At this point editing of the program may be done and the program rerun.

When the sequences are considered acceptable, the photography session begins where color and effects are added. Following this, the normal film process is adhered to: work prints, A and B roll printing (for any film mixing which wasn't done in the camera), film editing, conforming (matching the edited work prints to the master print), answer print (output of the conforming process with optional adjustments in light and exposure), and, finally, release prints.

Figure 3 shows a few frames from some commercial sequences produced by the process. They are exerpts from film sequences shot directly from the DEC 338 display screen. Because the software is based in a scientific programming language - FORTRAN - it is very easily applied to educational and industrial filmmaking. (The Compufilms service is commercially available from Pennsylvania Research Associates Inc) With FORTRAN's subroutine capabilities the main program for a movie can be interfaced with various types of simulations, giving dynamic graphical output.

Figure 3 - Excerpts from Compufilms Movie Sequences

REFERENCES

1. Katzen, J E, A conceptual thee-dimensional camera for computer animation, Master's thesis, Moore School of Electrical Engineering, Philadelphia, May 1969.

2. Coulter, R R Jr, Johnson, T, Interactive movie making, Ninth Annual Proceeding UAIDE, Florida, October 1970.

More Computer Animation Papers 1964-1976