At the Lawrence Livermore Laboratory, the present scheme for generation of comnuter-generated color films is to record each of the desired color segments separately on black and white film. These black and white films are then combined in an optical printer using color filters to produce the final film.
A major obstacle to wide usae of this method is the long turn-round time required for completion of the film. Consequently color films have been used in the final stages of a project rather then during the debug phase. With the intent to make color film a routine output medium, a DD80A Microfilm Recorder was modified by adding a white phosphor CRT and a color filter changer permitting fast, one-pass generation of color computer-generated film.
With the advent of software to produce shaded color pictures, a new problem appeared. A single color frame at full resolution contains over 3 million points. Using the point plot command (36-bits), the storage costs on disk or tape of even a film of moderate length hecome prohibitive.
A special interface was designed that allowed compact representations of these shaded pictures. The 36-bit shaded raster command will plot up to 4095 points, varying the intensity according to a user-specified slope. Typical shaded pictures can be described usiing 0.1% to 1.0% of the storage previously required. In addition, the interface allows compact representation of digitized pictures and automatic expansion of low-resolution pictures on a high-resolution grid.
The direct connection of the device to a CDC 7600 will make feasible for the first time at Lawrence Livermore Laboratory the routine generation of complex computer-generated color film.
The function of the DD80A microfilm recorder is to provide a facility for direct generation of color computer-generated films. The requirements for this facility are:
The DD80A [1] is an old (vintage 1962) electrostatic deflection microfilm recorder. It has the capability for drawing vectors, plotting characters and plotting points on an addressable raster of 1024 × 1024 points. It is quite fast in that it can plot a character or point approximately every 5 microseconds. Its instruction set contains only five 32-bit instructions.
The DD80A has been modified to plot at 32 intensity (grey) levels. The intensity is selected from the interface via a new command. A color filter changer with 8 filters has been added along with a new cathode ray tube. This CRT has a special white phospher to allow recording of color images. The filters are selected by setting the appropriate bits in the new command.
Color computer-generated film is created by using color film in the camera and exposing it through the color filters. The user sets the color filter to the desired color and then outputs the data to be plotted in that color.
The DD80A interfaces to a portion of the LLL computer network as shown in figure 1. The DD80A looks like an on-line tape unit to the host system. The user interacts with the computer via the TTY sub-network. A preview of graphic output can be viewed on a TV display also connected to the computers via another subnetwork.
When the user is satisfied with the output, she/he can then direct the graphics to the DD80A for recording on film, Since the device is on-line, no intermediate disk storage for pictures is required.
The DD80A is connected to two CDC 7600 PPU's by means of an LLL designed interface [3]. In addition to handling the transfer of commands from the 7600 to the DD80A, the interface contains logic that allows the DD80A to appear to the user as if it had an entirely different command structure, including some complex new commands. In particular, the 32-bit, 4-character per-word DD80A is programmed using the 36-bit, 6-character-per-word DD80C instructions, The interface translates these commands into DD80A instructions. DD80C tapes can be plotted on the DD80A with no software translation whatsoever, in addition, a new command directs the interface to set intensity and to change color filters.
Four new commands have been added tp the DD80A via the interface. Their purposes are to provide access to the new color and grey level features and to allow a compact description for certain types of raster data.
The raster commands arc designed to plot pictures which are made up of points lying on a uniform grid. Since the points appear in a fixed order (left to right, top to bottom), the raster commands are designed to provide a savings in user picture storage by requiring the user to supply only the picture information, with the interface calculating the appropriate x,y positions. In addition, the auto-increment feature allows pictures defined on a 512 × 512 or 256 × 256 grid to be plotted on the full 1024 × 1024 raster. The interface can automatically plot the picture information on every other raster position, skipping every other line, or plot on every fourth point and every fourth line. This feature is operable on all of the raster commands.
This command sets the intensity and/or color filters. It can appear hefore or after any other command.
The hidden surface software [2] generates a picture as a series of raster lines, Each line is broken up into a number of segments. A segment can extend over as few as 1 or as many as 1024 points. A segment is specified by the number of points to be plotted, the starting intensity of the segment, and the intensity change per point. The interface takes this single command and generates a sequence of point-plot commands along with the linearly interpolated intensity for each point. To plot a picture, a Set Raster Origin conmand (SRO) is issued which sets the upper left corner of picture. This is typically x=0, y=1023. The SRO command is followed by all of the segments. After raster position 1024 of any line is plotted, the interface skips the correct number of lines (0,1,3) and repositions its x register to zero.Thus only segment data need be supplied by the user.
This command is designed to plot digitized pictures, and also facilitates the display of data digitized on a larger grid than the hardware's 1024 × 1024. The data is organized as a collection of lines (1024 maximum). Each line is a collection of picture elements, A picture element is 2, 3, 4, or 6 bits. (Picture elements of 2, 3, or 4 bits are used for data that is digitized at 4, 8, and 16 levels of intensity respectively. The 5 high-order bits of the 6-bit picture element are used for 32 levels.) These 4 picture element sizes are provided to minimize storage when 32 levels are not required. The picture elements are plotted on raster positions according to the auto-increment setting.
For each picture, the user specifies 4 items.
This information, along with the number of lines of data to be plotted is issued prior to the actual data. This command can be used for scanning data. For example, consider data that has been digitized on a 2048 × 1024 grid. Without moving the data in core, different portions of the data may be presented and/or expanded (auto-incremented) by changing only the control words of the ROI command.
This command is identical to the BOI command except for two distinctions. First, the picture elements are 1 bit, allowing either a point or a blank. Second, where a 0 appears, the interface does not issue a point-plot command but rather skips to the next picture element in 50 nanoseconds. Thus, the time required to plot a BOB picture is a function of the number of 1 bits present, rather than of the total numher of picture elements in the picture. Data that is formatted for displays can be plotted very quickly using this command.
This facility has been designed to efficiently produce color computer-generated films with several new features that minimize storage requirements for picture data, thus reducing the overhead for handling large and complex files.
[1] Cecil A, Michael G, DD80 Programmer's Manual, Lawrence Livermore Laboratory, Report N2.8-002(1964).
[2] Archuleta M, Hidden Surface Processing, Lawrence Livermore Lahoratory, UCID-30057 (1973).
[3] Pryor K, Long R, Lawrence Livermore Laboratory, Internal Document LEA-73-3005-99 (1973). Readers outside the Laboratory who desire further information on LLL internal documents should address their inquiries to the Technical Information Department, LLL, Livermore, California 94550.