Chilton - ACL - SCFOR - Fortran Graphics System For The SC4020
Chilton - ACL - SCFOR - Fortran Graphics System For The SC4020
Paul Nelson
1974
Computer Animation
Fortran is one of the high level languages developed to make computers easier to use. It was originated by IBM for
scientific application since this was the first area in which computers made a major impact.
Early digital computers had their electronic on or off states laboriously set by hand. The different combinations of these
states or bits, in units called words, specify the instructions to be obeyed by the computer when decoded by a central
processing unit. Later, programs were provided which assembled instructions in man-readable form automatically into
machine readable form. Currently, more sophisticated translating programs or compilers produce many machine
instructions for every statement or line of code written by a programmer. Errors are detected when certain rules pertaining
to the languages are broken and diagnostics to this effect are printed out. Fortran is such a compiler. Machines made by
different manufacturers usually provide Fortran compilers. Generally speaking programs written in Fortran for one machine
will run on another without too much alteration.
Several graphics packages have been produced in Fortran and in principle it is not too difficult to transfer these from one
machine to another. However, in order to obtain maximum efficiency it is sometimes necessary to go to more basic
assembly languages. These permit the designer of a package to gain full access to the machine's power or capability.
Routines written in this form are callable from Fortran statements. But these subprograms are not always easily transferred
as they may be machine dependent. This means that they may rely on certain hardware (i.e. electronic) or even system
software features. Different ways have to be found to achieve the same end result.
To produce computer generated film the following procedure is usually adopted. After a storyboard has been worked out, a
program is written which will reproduce the desired pictures frame by frame. Use is made of the routines provided by the
graphics package to obtain these with minimum effort. Sometimes the objects portrayed are the result of curves generated
purely from mathematical functions. For these the data is derived purely from calculations internal to the program. In
others, large amounts of data in the form of X-Y co-ordinates have to be utilized. These may have to be tediously worked
out by hand from drawings on squared paper or, better still, automatically produced by a line-following device. In the latter
case, the position of a pen on a special table determines the X-Y value at any one point. Often, a combination of both kinds
of data is employed. The working out of three-dimensional co-ordinates for some objects presents even greater difficulty.
The program, written as Fortran statements, is then either punched on cards or on paper tape for input to the computer.
On-line typewriter terminals are another means whereby programs may be entered into the computer, but these are not
always available. Once in the machine, the program is compiled by the Fortran compiler into machine instructions. When
the computer starts obeying these instructions the program is referred to as being executed. If successful, the result is an
output of information designed .to reproduce the pictures specified in the storyboard. They are, as we have seen,
reconstructed on automatic plotting machines or microfilm recorders. The information can be transferred off-line by means
of magnetic tape. Each 2,400ft reel is capable of holding details of approximately two million operations or instructions to
the recorder. In producing cine films with even a modest amount of plotting per frame, it is surprising how many tapes are
sometimes required. One example used six full tape reels to make a five minute film.
It is also possible to transfer the information on-line via cables carrying the electrical pulses directly from the computer to
the recorder and vice-versa. After the various functions, such as advancing the film, have been performed on the recorder,
signals can be sent back to the computer to prepare it to send more data along the cable. The disadvantage with an on-line
system is that if the film is spoilt or subsequent runs required, the program has to be run again. Even when outputting lines
and points at several thousand per minute of computing time, periods in excess of one or two hours are often required for
film sequences lasting two or three minutes.
Let us now examine the process in slightly more detail.
Computers are provided with accumulators and can perform operations such as adding, subtraction, multiplication and
division, and can also compare figures. In other words, they are designed to operate on numbers. There is no reason why
the decoding of bit patterns should not give rise to a completely different set of functions. Such operations could, for
instance, position a line or a character on the face of a cathode ray tube. This is basically how microfilm recorders work.
The images on the screen are produced by decoding information - bit patterns - prepared by a host computer as outlined
above and normally recorded on magnetic tape. The screen is photographed by a cine camera, also operated by
instructions from the magnetic tape. The computer, by obeying its own instructions can generate instructions that another
machine, the microfilm recorder say, can obey. It often turns out that as well as having entirely different operation codes,
the word length or number of bits in a basic unit for the recorder is not the same as that for the computer.
CALL OPCODE(1)
might be used to place operation code 1 for the microfilm recorder into the part of a word where it is expected to be found.
This code could be the one that advances the film in the camera ready to record the next image. A set of such codes would
include the following:
Code Interpretation
1 Advance Film
2 Plot a character
3 Draw a line
4 Stop
In the case of plotting a character, additional information would have to be supplied specifying the character and its position
on the cathode ray tube. In the case of a line, the starting position of the line and its length or deflection along two axes at
right angles to one another. This supplementary information would then be stored in the remainder of the word with the
appropriate operation code by other routines callable by the user.
Y
L2
L1
Y (140,260)
(100,200)
X
An important feature of a computer that enables routines to perform effectively is the transfer or jump operation. This allows
the machine to jump to a location out of sequence for its next instruction. After obeying a certain (sub) program or
subroutine the last instruction will cause the computer to transfer back to the next instruction after the initial jump. Thus:
Different values for the number within brackets or argument could be used by subordinate Opcode. In this example, it
would first cause the microfilm recorder to advance the film and secondly prepare it to plot a character, Two more routines
would then have to called specifying the character and its position.
giving two (microfilm recorder) words. This could be disguised from the user trying to make a film by providing the two
routines as indicated on the right-hand side. In addition to reducing the number of characters to be typed it is somewhat
more intelligible. Another example might be:
CALL OPCODE(3)-----|
CALL X(100) |
CALL Y(200) | ___ CALL LINE(100,200,140,200)
CALL DISPLX(40) |
CALL DISPLY(60) |
----|
The number 100 and 200 would be where the line in the X and Y direction commences and 140 and 260 would be the co-
ordinate of where the line terminated.
The plotting area is divided up into addressable points in both the X and Y directions. Any position may therefore be
accessed with an accuracy dependent on the point separation.
Since there is a finite number of positions on the tube face, usually 1024 in the X direction and 1024 in the Y, the values
given to the recorder must lie within the range 0 to 1023. However, the user may be working with numbers which go from
-10 to +3000. Somewhat higher level routines thus become desirable so that values in the users scale can be specified.
The higher level routines then scale these so as to generate numbers in the range 0 to 1023 and produce a correctly
proportioned picture.
The above implies that all of the object picture is scaled onto the screen. If the scale conversion is gradually changed so
that less of the object picture still fills the screen, a zoom-in effect is achieved (see dotted lines).
Thus:
CALL MYLINE (-10, 0, 3000, 0)
should somewhere give
CALL LINE (0,0, 1023,0)
Object Picture 1
(-10,0) (3000,0)
(0,0) (1023,0)
Screen
Windowing is where only a portion of the object picture is seen at a time. The window may be moved about, keeping the
scale conversion constant but changing the limits of the area being viewed. Gradual stepping moves an object across the
field of view simulating panning. If it is replaced by another object with which it shares the screen, a wipe is produced.
Additionally, a zoom combined with a wipe is possible.
Fig. 4: Windowing is where only a portion of the object picture is seen at a time. The window may be moved about.
Gradual stepping moves an object across the field of view simulating panning. Additionally, a zoom combined with
a wipe is possible.
Slight displacements of lines and points from one frame to the next will obviously produce cine film. The programmed
controlled displacements may be as small as one unit or addressable position so that ultra smooth movements are
possible. Calling higher level routines, although easier for the programmer, increases the amount of work for the computer.
As computers become faster this is less of a problem. Another approach is where a small computer is attached to the
microfilm recorder to perform the major part of the picture forming steps. Such software packages as Beflix which produce
textured areas by filling in with lines and characters stand to gain considerably from these systems.
With this as a background it should now be possible to discuss software or programming features useful in computer
animation. One of the first necessary options to provide is a character set made up of small lines. This must be simple to
use and the character size should be easily adjustable.
An example might be:
WORD could be the name of the first of successive words or locations containing the characters, (NCHARS, of them) to be
output of size CHSIZE, commencing at position X1, Y1. The routine after picking up from the core store the definition of the
characters in terms of lines, say, would ultimately call routine LINE many times with appropriate values for the arguments.
Thickening of the basic lines by drawing parallel lines either side would make larger characters more acceptable.
Alternatively, special fonts for different sizes such as those developed by Bell Telephone Laboratories could be employed.
CONSTANT INFORMATION
In animation it often happens that constant information, neither changing in shape or position on the screen, is required as
a background. Obviously, these bit patterns once formed need not be regenerated from a higher level each time. If saved
somehow, either in the core, on magnetic tape or on a magnetic disc, they could be re-output economically. An example
might be where calls, generating lines, are positioned between special save calls:
The next time the picture defined by the lines is required a call accessing the bit pattern generated is all that is needed. For
example:
CALL USEIT
A further extension would be to provide arguments to these routines so that more than one background could be specified
in a program
CALL SAVEAA(1)
......
CALL SAVEBB(1)
CALL USEAA(1)
-------
CALL SAVEAA(2)
......
CALL SAVEBB(2)
CALL USEAA(2)
One of the banes of a programmers life is that however large a set he provides someone will eventually come along
requiring the largest number plus one more!
The presentation of apparently solid objects, whereby calculations have to be performed to remove the hidden lines or lines
obscured by nearer surfaces, is no mean task, either for the programmer or the computer. But apart from these difficulties
and the fact that colours are not easily produced by present systems, all is well. Even with these present limitations, which
will tend to disappear with time, interesting films are being produced. The aims of the researcher are usually easily satisfied
by the most basic facilities. He is interested in the movements of a few points or lines laboriously worked out by the
computer. Often he is more than satisfied looking at a few stills and it is a job to persuade him to animate. He nevertheless
usually becomes enthusiastic once over the initial hurdles and viewing his first sequence.
It is true to say that most systems become extended as awareness grows as to the needs of the users. Animators might
find the programming difficult to understand just as programmers frequently do not have a feel for timing or the artistic merit
of film sequences. I was impressed when discussing a particular sequence with a film producer how specific he was able to
be regarding timing for instance. Interaction between interested parties on both sides may help towards better systems in
the future. Always lurking in the background, however, are sordid realities like limits to the size of the computers core and
computing speeds. On dedicated machines these matters are not too serious, but more often than not computer animators
are tolerated at best where others compete for time.
The graphics display terminal is perhaps the answer to the problem of how the professional animator can really benefit
from the assistance of a computer.
With these devices he is able to communicate visually and often in real-time with his creations. Being relieved of the need
to remember how to avoid the pitfalls in a formal programming language, he can concentrate on the art work. With a light-
pen pointing at the screen his drawings may be input directly to the computer and stored. If later on he is not entirely
satisfied, these objects may just as easily be altered or erased. A further advantage is that virtually instant playback on the
screen is possible before recording on film. When contented with his efforts he may literally push a button in order to
reproduce the sequences on film with no more work on his part.
A wide field open to the computer animator is the educational film, where mathematical representations can gain
enormously from the accurate positioning of lines and symbols. The computer was designed for this type of calculation, as
was the Fortran language in gaining access to the computer's power. Practical experience has shown that films produced
for educational purposes with mathematical content can be put together accurately, rapidly and relatively inexpensively
using computers - inexpensively, if the same detail was to be asked of the hand animator, that is. How much footage we
shall see in the future depends largely on the support it is given and the availability of software packages and low cost
computing power. Let us hope it flourishes with judicious nursing.
A DEMONSTRATION FILM
A film, Focus, using the system outlined earlier was made by the Atlas Computer Laboratory, Chilton, an establishment of
the Science Research Council. It was primarily intended to stimulate interest among potential users of the facilities
available. In fact, it received a very generous amount of interest outside this group, and was selected for showing at the
British Industrial and Scientific Film Association meeting at Brighton, England. Further requests have resulted in copies
being shown in the USA, Holland and Borneo.
This film demonstrated various routines for achieving simulated camera effects and other necessary functions such as line
thickening. There then followed a sequence describing the method used by a contouring routine for handling randomly
distributed points having known values. A dramatic view of the earth rotating was produced from an adaption of a program
originating from the American space project. It was generated from over eight thousand pairs of numbers representing the
coastlines of the world and was accompanied by suitably stirring music. This gave way to a sequence of t
The success of the film was in no small way due to the addition of a magnetic sound track. In this I was aided by a
professional film maker, Peter Hadingham of Swift Film Productions. He has, however, strongly advised me never to try and
record sound at the so-called silent speed of 16fps again. This I did as a means of reducing production costs, and because
I considered the quality adequate for small lecture room projection.
© Chilton Computing and UKRI Science and Technology Facilities Council [email protected]
Our thanks to UKRI Science and Technology Facilities Council for hosting this site
Build: 20/07/2022 14:40:28