F.I. Parke, "Computer Generated Animation of Faces,"

Transcription

F.I. Parke, "Computer Generated Animation of Faces,"
Computer Generated Animation of Faces
Frederick I. Parke, University of Utah
This paper d e s c r i b e s the representation,
a n i m a t i o n and data c o l l e c t i o n techniques
that have been used to produce "realistic"
computer g e n e r a t e d half-tone animated sequences of a human face changing expression.
It was d e t e r m i n e d that a p p r o x i m a t i n g
the surface of a face w i t h a p o l y g o n a l skin
c o n t a i n i n g a p p r o x i m a t e l y 250 polygons def i n e d by about 400 vertices is s u f f i c i e n t
to achieve a realistic face.
A n i m a t i o n was
a c c o m p l i s h e d using a cosine i n t e r p o l a t i o n
scheme to fill in the intermediate frames
between expressions.
This approach is
good enough to produce realistic facial
motion.
The t h r e e - d i m e n s i o n a l data used to
describe the expressions of the face was
obtained p h o t o g r a m m e t r i c a l l y using pairs
of photographs.
also d e s c r i b e s the m e t h o d used to collect
the data for the faces.
These t e c h n i q u e s
could be used to animate other flexible
surfaces.
R E P R E S E N T A T I O N OF THE FACE
The face is a yery c o m p l e x threed i m e n s i o n a l surface.
This surface is flexible.
It u s u a l l y contains creases, and it
has color variation.
What is the b e s t way
to r e p r e s e n t such a surface that allows
both a n i m a t i o n and h a l f - t o n e r e n d e r i n g ?
One p o s s i b i l i t y w o u l d be to find an analytic surface or c o l l e c t i o n of a n a l y t i c surface patches (i) to a p p r o x i m a t e the surface of the face.
A s s u m i n g this were
feasible, there remains the p r o b l e m of
animating this surface or c o l l e c t i o n of
patches.
A g a i n a s s u m i n g that a p p r o p r i a t e
a n i m a t i o n techniques were a v a i l a b l e for
such surfaces, there still remains the
p r o b l e m of p r o d u c i n g h a l f - t o n e r e n d e r i n g s
of the surfaces.
Hidden surface and halftone algorithms exist for quadric surfaces
(2,3) but they tend to be quite expensive.
One can imagine similar a l g o r i t h m s for
surfaces of higher degree, but w o u l d expect them to increase r a p i d l y in expense
as the degree of the surface increased.
For this reason, w h e n h a l f - t o n e renderings are desired, surfaces of high degree
are usually a p p r o x i m a t e d by a skin of
polygons.
In order to a p p r o x i m a t e the face w i t h
analytic patches, one w o u l d expect these
patches to be at least quadric, and probe
ably of higher degree.
The a p p r o a c h of
a p p r o x i m a t i n g the face w i t h analytic surfaces leads to a p p r o x i m a t i n g the approximate surfaces with polygons.
This seems a
rather complex and r o u n d a b o u t approach.
The a p p r o a c h taken in this paper is
one first used by Henri G o u r a u d (4).
His
a p p r o a c h was to d i r e c t l y a p p r o x i m a t e the
surface of the face w i t h a n o n - a n a l y t i c
skin of polygons.
This skin was c o n s t r u c t ed by sampling the surface of the face at
a number of points and c o n n e c t i n g these
points to form a skin o f polygons.
In order to produce a h a l f - t o n e rendering of objects in a t h r e e - d i m e n s i o n a l
space several p r o b l e m s m u s t be solved.
WORDS AND PHRASES:
c o m p u t e r graphics,
half-tone rendering, smooth shading, computer animation, flexible surfaces, polygonal surfaces, facial topology, cosine
interpolation, £ h r e e - d i m e n s i o n a l data
acquisition.
CR CATEGORIES:
8.2, 3.41, 4.41, 6.35
KEY
INTRODUCTION
The human face is a challenge for computer a n i m a t i o n for at least two reasons.
F i r s t the face is not a rigid structure but
is a complex flexible surface.
How is the
m o t i o n of such a surface specified?
Secondly faces are very familiar to us, we
have a well d e v e l o p e d sense of w h a t expressions and m o t i o n s are natural for a face.
We notice small d e v i a t i o n s from our concept
of how a face should appear.
This paper d e s c r i b e s a fairly simple
way of r e p r e s e n t i n g the face and an animation technique that allows the p r o d u c t i o n
of r e a l i s t i c h a l f - t o n e a n i m a t e d sequences
of the face c h a n g i n g expression. The p a p e r
This r e s e a r c h was supported in part
by the U n i v e r s i t y of Utah C o m p u t e r Science
D i v i s i o n and by the A d v a n c e d R e s e a r c h Projects A g e n c y of the D e p a r t m e n t of Defense,
m o n i t o r e d by Rome Air D e v e l o p m e n t Center,
Griffis Air Force Base, New York 13440,
under contract F 3 0 6 0 2 - 7 0 - C - 0 3 0 0 .
451
The first of these p r o b l e m s is u s u a l l y referred to as clipping.
This is the problem of d e t e r m i n i n g if all or part of an
o b j e c t is w i t h i n a v i e w i n g space.
The
v i e w i n g space is a p y r a m i d d e f i n e d by the
p o s i t i o n of the view, the d i r e c t i o n the
v i e w e r is looking and his v i e w i n g angle.
An example of a v i e w i n g space w o u l d be
that part of the u n i v e r s e v i s i b l e through
a window, a s s u m i n g that all objects except the w i n d o w frame were t r a n s p a r e n t
and could not o c c l u d e other objects.
The
second p r o b l e m is the d e t e c t i o n of h i d d e n
surfaces.
In other words, w h i c h surfaces
are in front of other surfaces w h e n seen
from a given position.
The last p r o b l e m
is one of d e t e r m i n i n g the shading of the
v i s i b l e surfaces and p r o d u c i n g the shaded
image on some o u t p u t device, n o r m a l l y a
CRT.
The shading u s u a l l y d e p e n d s on the
o r i e n t a t i o n of the surface w i t h r e s p e c t
to the viewer and the light source.
A p p r o x i m a t i o n w i t h p o l y g o n s has several advantages.
For p o l y g o n a l surfaces,
the p r o b l e m s listed above have been
solved by a n u m b e r of a l g o r i t h m s (5-11).
These a l g o r i t h m s are fast and i n e x p e n s i v e
w h e n c o m p a r e d to a l g o r i t h m s for surfaces
of higher degree.
At least one of these
a l g o r i t h m s (9) is i m p l e m e n t e d in h a r d w a r e
and another (ii) is c u r r e n t l y b e i n g imp l e m e n t e d in hardware.
Also, the develo p m e n t by G o u r a u d (4) of a smooth shading
a l g o r i t h m for p o l y g o n a l surfaces makes it
p o s s i b l e to give a c o n t i n u o u s l y c u r v e d
a p p e a r a n c e to a surface made up of polygons.
For p o l y g o n a l shading the shade of
each p o l y g o n is c o n s t a n t across the polygon.
This shade is a function of the
angle b e t w e e n the normal to the p o l y g o n
and a line from the light source to the
polygon.
For G o u r a u d ' s smooth shading,
however, the shade is not c o n s t a n t across
the polygon.
It is a function of the
angle b e t w e e n the n o r m a l at each v e r t e x
of the p o l y g o n and a line from the light
source to the polygon, and the p o s i t i o n
w i t h i n in the polygon.
The n o r m a l at a
v e r t e x is the average of the normals of
the p o l y g o n s that have this v e r t e x in
common.
In smooth shaded r e n d e r i n g s a special
p r o c e d u r e is n e c e s s a r y ~f creases are to
be visible.
Creases can be made v i s i b l e
by "doubling" vertices.
Since creases
can occur only along the b o u n d a r y b e t w e e n
a d j o i n i n g polygons, each v e r t e x along the
crease is doubled.
One v e r t e x of the pair
belongs to p o l y g o n s on one side of the
c r e a s e and the other v e r t e x of the pair
belongs to p o l y g o n s on the other side of
the crease.
This causes separate normals
to be computed.
When the p o l y g o n s are
shaded, there will be a shading d i s c o n t i n uity along the b o u n d a r y and the crease
will be visible.
F i g u r e 1 shows a face r e n d e r e d w i t h
p o l y g o n a l shading and a d i f f e r e n t expression of the same face r e n d e r e d using the
smooth s h a d i n g algorithm.
Figure 1
Two e x p r e s s i o n s of the same face.
The
top one was r e n d e r e d using p o l y g o n a l shading.
The b o t t o m one was r e n d e r e d using
G o u r a u d ' s smooth shading algorithm.
H a v i n g d e c i d e d to use a p o l y g o n a l re~
p r e s e n t a t i o n , how does one go about aPproximating a face w i t h p o l y g o n s ?
There are
several things to keep in mind.
i.
To get good smooth shading, the
d e n s i t y of p o l y g o n s should be h i g h e s t in
the areas of h i g h e s t c u r v a t u r e (the nose,
mouth, a r o u n d the eyes and the edge of the
chin) and lowest in the areas of lowest
c u r v a t u r e (the forehead, cheeks and neck).
2.
Where creases occur on a face
(under the eyes, the side of the nose, the
edge of the lips and the corner of the
mouth), edges of p o l y g o n s m u s t c o i n c i d e
w i t h the creases.
A p o l y g o n may not span
a crease.
3.
Use the s m a l l e s t n u m b e r of p o l y g o n s
c o n s i s t e n t w i t h good results.
The reasons
for this are obvious: a smaller a m o u n t of
data, faster p i c t u r e g e n e r a t i o n and minim i z a t i o n of the data a c q u i s i t i o n problem.
4.
If a n i m a t i o n is desired, the polygons m u s t be layed out in a w a y that
allows the face to flex naturally.
The
p o l y g o n s should r e m a i n a p p r o x i m a t e l y
p l a n a r as the face flexes.
452
5.
Since the face is a p p r o x i m a t e l y
symmetric, we need worry only about one
side of the face.
The other side is
o b t a i n e d by "mirroring" or r e f l e c t i n g
about the plane of symmetry.
6.
Each p o l y g o n will have a s s o c i a t e d
w i t h it a color.
Where color b o u n d a r i e s
occur on the face, the lips and eyebrows,
for example, p o l y g o n edges m u s t c o i n c i d e
w i t h these boundaries.
A p o l y g o n may not
span a color boundary.
Keeping these things in m i n d the next
step is to find a c o o p e r a t i v e a s s i s t a n t
who will allow you to d r a w or p a i n t a set
of p o l y g o n s on his or her face.
After
drawing the p o l y g o n skin on one half of
the face, ask the a s s i s t a n t to assume a
number of d i f f e r e n t expressions.
For
each e x p r e s s i o n observe how well these
polygons a p p r o x i m a t e the face.
After
m o d i f y i n g the p o l y g o n set several times
you should arrive at a r e a s o n a b l e set of
polygons to r e p r e s e n t the face.
Figure 2
shows the skin of p o l y g o n s used to produce
the faces shown in figures 1,3 and 4.
O n e - h a l f of this skin contains 124 polygons defined by 202 vertices.
A unique point number is a s s i g n e d to
each v e r t e x of the skin.
The skin is then
specified by going around each p o l y g o n in
a c l o c k w i s e d i r e c t i o n and r e c o r d i n g the
point numbers of its vertices.
The details of the face are very
i m p o r t a n t in a c h i e v i n g r e a l i s t i c results.
Figure 3 shows the effect details, such as
the eyes, eyebrows, eyelashes and teeth
have on the r e a l i s m of the face.
The eyebrows and teeth were included simply by
adding p o l y g o n s of the a p p r o p r i a t e color.
The illusion of e y e l a s h e s was a c h i e v e d by
changing the color of e x i s t i n g p o l y g o n s
d i r e c t l y above the eyes.
The face by
itself is not very realistic.
It was necessary to complete the head in order to be
convincing.
F i g u r e 3 shows how a "bonnet"
of hair was used to complete the head.
Color is an i m p o r t a n t feature of the
face.
Each p o l y g o n has a color a s s o c i a t e d
with it.
This color is made up of three
components; red, green and blue.
By
Figure 2
Two pictures showing the skin of
p o l y g o n s used to r e p r e s e n t the face.
Note that the p o l y g o n s of the skin change
shape and p o s i t i o n as the face changes
expression.
I
Figure 3
Four p i c t u r e s that illustrate the effect of details on the r e a l i s m of a face.
The
first picture shows the face alone.
The next picture shows the face w i t h eyes and nose
trils.
In the next picture, teeth, eyelashes, eyebrows and the inside of the m o u t h w e r e
added.
The last picture shows the complete head.
453
s p e c i f y i n g the value of each c o m p o n e n t it
is p o s s i b l e to achieve the desired colors.
Color h a l f - t o n e r e n d e r i n g s are p r o d u c e d by
scanning out the p i c t u r e three times, once
for each of the p r i m a r y colors.
The appropriate color filter is placed in front of
the camera lens b e f o r e each scan.
After some e x p e r i m e n t a t i o n the component values for f l e s h - t o n e and the other
colors of the face were determined.
These
c o m p o n e n t values depend on a number of
variables, including:
the p h o s p h o r of the
CRT, the type of filters used, the type of
film used, the i n t e n s i t y setting of the
CRT, and the c o m p e n s a t i o n function used to
o v e r c o m e the n o n - l i n e a r c h a r a c t e r i s t i c s of
the CRT.
c o m p u t e d using the following algorithm.
current p o s i t i o n = p o s i t i o n in the
p r e v i o u s phase +
C * difference
where
d i f f e r e n c e = p o s i t i o n in next phase p o s i t i o n in p r e v i o u s phase
C =
(i.0-
cos
(~))/2.0
and
= phase f r a c t i o n * 3.14159
DATA ACQUISITION
ANIMATION
M e a s u r i n g the t h r e e - d i m e n s i o n a l position of points on the surface of a face or
any other c o m p l e x o b j e c t is a s i g n i f i c a n t
problem.
If we still have our a s s i s t a n t w h o s e
face is p a i n t e d w i t h polygons, we ask the
a s s i s t a n t to assume a number of d i f f e r e n t
expressions.
We "freeze" each e x p r e s s i o n
photographically.
For each e x p r e s s i o n a
A s s u m i n g that we have a s a t i s f a c t o r y
skin of p o l y g o n s for the face, how do we
animate it?
We w o u l d like to specify the
m o t i o n of the surface in the s i m p l e s t way
c o n s i s t e n t w i t h natural motion.
The a p p r o a c h taken in this r e s e a r c h is
s o m e w h a t similar to the a p p r o a c h taken by
the c o n v e n t i o n a l animator.
The a n i m a t o r
specifies the d e s i r e d m o t i o n by b l o c k i n g it
out w i t h a series of key ~rawings.
He
then gives these key d r a w i n g s to the assistant a n i m a t o r s who g e n e r a t e the r e q u i r e d
i n t e r m e d i a t e frames.
For the c o m p u t e r
animation, the key d r a w i n g s are r e p l a c e d
by data files d e s c r i b i n g the face for each
of a n u m b e r of d i f f e r e n t expressions.
The
data for each e x p r e s s i o n or "phase" of the
face consists of the t h r e e - d i m e n s i o n a l
p o s i t i o n of each p o i n t d e f i n i n g the p o l y g o n
skin used to r e p r e s e n t the face.
Figure 4
shows two phases of a face.
The a n i m a t i o n p r o g r a m takes the place
of the a s s i s t a n t a n i m a t o r s and generates
the r e q u i r e d i n t e r m e d i a t e frames b e t w e e n
the phases as the face changes expression.
To change the face from one expression to another is a m a t t e r of m o v i n g
each p o i n t a small d i s t a n c e in successive
frames.
The p o s i t i o n of each p o i n t of
the skin in each frame is d e t e r m i n e d by
i n t e r p o l a t i n g b e t w e e n the p r e v i o u s phase
p o s i t i o n and the next phase position.
Figure 2 shows how the p o l y g o n s of the
skin change shape and p o s i t i o n as the face
changes expression.
Since the face is g o v e r n e d by p h y s i c a l
laws, its m o t i o n is not linear but tends
to a c c e l e r a t e and decelerate.
A cosine
i n t e r p o l a t i o n scheme was used to approximate the a c c e l e r a t i o n and d e c e l e r a t i o n of
the facial motions.
Each frame has
a s s o c i a t e d w i t h it a phase number.
This
phase number is a real number whose integer
part refers to the p r e v i o u s phase and
w h o s e f r a c t i o n a l part indicates the position of this frame b e t w e e n the p r e v i o u s
phase and the next phase.
For example, if
phase 2 is a smile and phase 3 is a frown
then the phase number 2.5 means an expression h a l f w a y b e t w e e n a smile and a frown.
Each c o m p o n e n t of a point's p o s i t i o n is
Figure 4
Two phases of a face.
454
p o i n t there is a point number and a threed i m e n s i o n a l position.
The t o p o l o g y data
consists of a s p e c i f i c a t i o n for each polygon of the face.
The p o l y g o n specification is made up of the p o i n t numbers of
the v e r t i c e s of the p o l y g o n and its color.
After the desired data is read in,
the data for the other half of the face is
c o n s t r u c t e d by m i r r o r i n g or r e f l e c t i n g the
data for the first half of the face.
For each frame of a sequence a n u m b e r
of tasks m u s t be a c c o m p l i s h e d in order to
compute the data needed to pass on to the
hidden surface and shading algorithms.
U s i n g the phase number a s s o c i a t e d
with each frame, the p r o g r a m i n t e r p o l a t e s
the phase data to get th e p o s i t i o n of
each v e r t e x of the skin for this f r a m e .
These point p o s i t i o n s are s p e c i f i e d
in a c o o r d i n a t e system c e n t e r e d near the
center of the head.
The hidden surface
a l g o r i t h m requires the data to be specified in a d i f f e r e n t c o o r d i n a t e system.
The new c o o r d i n a t e system, r e f e r e d to as
the v i e w i n g system, has its origin at the
p o s i t i o n we w i s h to look from.
The Z
axis of the v i e w i n g system m u s t be pointing in the d i r e c t i o n w e w i s h to look.
The p o s i t i o n data m u s t be t r a n s f o r m e d (12,
13) into this new c o o r d i n a t e system.
The
a n i m a t i o n p r o g r a m first t r a n s l a t e s the
data so the origin moves from the center
of the head to the p o s i t i o n we w i s h to
look from.
It then rotates the c o o r d i n a t e
system so that the Z axis of the v i e w i n g
system is p o i n t i n g toward the p o s i t i o n w e
wish to look at.
After the data is t r a n s f o r m e d into
the v i e w i n g system, the normal to each
p o l y g o n is computed.
Using these normals,
the normal at each v e r t e x of the skin is
computed.
This is done for each v e r t e x
by a v e r a g i n g the normals of the p o l y g o n s
that have the v e r t e x in common.
For each frame of a sequence the following p a r a m e t e r s are passed on to the
hidden surface and shading algorithms:
Figure 5
A typical pair of data photographs.
pair of o r t h o g o n a l views of the face is
taken, one from d i r e c t l y in front and one
from the side.
Figure 5 shows a typical
pair of these photographs.
Using these
pairs of p h o t o g r a p h s we e s t a b l i s h an origin
and a coordinate system.
The three-dimensional p o s i t i o n of each p o i n t is m e a s u r e d
d i r e c t l y from the photographs.
Note that the coordinate system should
be chosen such that two of the c o o r d i n a t e
axes define the synunetry plane of the face.
This facilitates the m i r r o r i n g or reflection o p e r a t i o n n e c e s s a r y to obtain the
data for the other half of the face.
This data c o l l e c t i o n m e t h o d has some
shortcomings.
P h o t o g r a p h s are not orthographic p r o j e c t i o n s but are p e r s p e c t i v e
projections.
Therefore, the images on
the p h o t o g r a p h s are somewhat distorted.
This d i s t o r t i o n can be reduced by using
long f o c a l length lenses when the pictures are taken.
Some a d j u s t m e n t of the
data may be n e c e s s a r y due to this distortion.
A n o t h e r shortcoming is that
some points on the face may not be visible
in both views.
A best guess must be made
for at least one of the coordinates of
these o c c l u d e d points.
i.
The v i e w i n g angle (this is used
to d e t e r m i n e the v i e w i n g space and
is also used in the p e r s p e c t i v e
t r a n s f o r m a t i o n (12,13)).
2.
The color of each polygon.
3. The p o s i t i o n of the b e g i n n i n g
and ending points of each edge of
each p o l y g o n and the normals at
these points.
4. The d e s i r e d resolution.
The a n i m a t i o n p r o g r a m was w r i t t e n in
SAIL (14), an e x t e n d e d algol for the
PDP-10.
THE A N I M A T I O N P R O G R A M
The a n i m a t i o n p r o g r a m contains arrays
to store the topology and phase data for
the face.
Up to three phases may be stored
in the program.
The topology and phase
data is read in from data files.
The user
of the p r o g r a m interacts w i t h it to specify
w h i c h data files he wants read in.
The phase data files consist of the
data for a sequence of points.
For each
IMPLEMENTATION
The system used to produce a n i m a t e d
sequences, and the h a l f - t o n e r e n d e r i n g s
included in this paper is shown in F i g u r e
6. This system uses two PDP-10 computers.
One of these is a d e d i c a t e d machine that
allows only one user at any given time.
455
Time-Shared
PDP-10
Buffer
x01A
S i n g l e - U s e r PDP-10
Link
I Watkins'
Visible
Surface
I Alqorithm
~
Y D/A
Gouraud's
Smooth
Shading
I
Al~lorithm
Z D/A
St°•r•Tube
Animation
Program
Film
Advance/
Shutter
Control
i
Color
Filter
Box
\CRT /
------J
"
Figure 6
System configuration.
This p r o c e s s o r is i n t e r f a c e d to the special
e q u i p m e n t n e e d e d to produce h a l f - t o n e pictures.
The other PDP-10 is time-shared,
and runs under the TENEX o p e r a t i n g system.
There is a link b e t w e e n the m a c h i n e s that
allows data to be t r a n s f e r e d b e t w e e n them.
This system allows us to take advantage of the TENEX o p e r a t i n g system, particularly the file system, on one m a c h i n e and
the special h a l f - t o n e d i s p l a y e q u i p m e n t on
the other machine.
When one wishes to use this system, he
connects the terminal to the s i n g l e - u s e r
PDP-10 and loads a p r o g r a m w h i c h contains;
a software v e r s i o n of W a t k i n ' s v i s i b l e surface algorithm, G o u r a u d ' s smooth shading
algorithm, a p r o c e d u r e to c a l i b r a t e the
h a l f - t o n e d i s p l a y s and p r o c e d u r e s to handle
the s i n g l e - u s e r side of the data transfers
across the link.
When this p r o g r a m begins
execution, it first allows the user to calibrate the display equipment.
It then initializes the r e c e i v i n g side of the data
link and goes to sleep.
At this p o i n t the
user switches the terminal to the timeshared machine.
A f t e r logging in, the user
loads and starts the e x e c u t i o n of the anim a t i o n program.
This p r o g r a m asks the
user a number of questions, including:
w h i c h phase data files he wants read in,
the d e s i r e d number of frames b e t w e e n
phases, the r e s o l u t i o n to use, w h e r e he
wants to look, where he wants to look from,
and w h e t h e r he wants smooth or p o l y g o n a l
shading.
After r e c e i v i n g this information,
the p r o g r a m begins p r o c e s s i n g the first
frame of the sequence.
Data to be passed to the hidden surface and shading a l g o r i t h m s is stored into
one of two buffers.
When a buffer is full,
a flag is set.
This causes the a n i m a t i o n
p r o g r a m to transfer to the other b u f f e r
and wakes up the s i n g l e - u s e r program.
When the s i n g l e - u s e r p r o g r a m wakes up, it
transfers the data out of the full buffer
into its memory, resets the flag and goes
back to sleep.
R e s e t t i n g the b u f f e r flag
allows the a n i m a t i o n p r o g r a m to reuse the
buffer.
When all the data for a single frame
has been transfered, the s i n g ! e - u s e r program begins w o r k i n g on it to g e n e r a t e the
h a l f - t o n e image.
The a n i m a t i o n p r o g r a m
goes on to the next frame of the sequence.
While the s i n g l e - u s e r p r o g r a m is in the
process of g e n e r a t i n g the h a l f - t o n e image,
it ignores the buffer flags set by the anim a t i o n program.
This means that as soon
as the a n i m a t i o n p r o g r a m fills b o t h b u f f e r s
it m u s t w a i t until the s i n g l e - u s e r p r o g r a m
completes the picture and empties a
buffer.
The o u t p u t of the s i n g l e - u s e r p r o g r a m
goes to three d i g i t a l ~ t o - a n a l o g c o n v e r t e r s
w h i c h in turn drive any c o m b i n a t i o n of the
d i s p l a y devices shown in F i g u r e 6.
This system works w e l l if the timeshared s y s t e m is not h e a v i l y loaded.
If
the t i m e - s h a r e d system is h e a v i l y loaded
the s i n g l e - u s e r is idle m u c h of the time
w a i t i n g for data.
All of the h a l f - t o n e r e n d e r i n g s shown
in this r e p o r t were p r o d u c e d w i t h the high
p r e c i s i o n d i s p l a y using a r e s o l u t i o n of
i024xi024.
At this r e s o l u t i o n it takes
about 2% m i n u t e s to scan out a single
b l a c k - a n d - w h i t e picture.
A n i m a t e d sequences are r e c o r d e d using
a 35 ram a n i m a t i o n camera.
F i l m advance and
456
shutter are under program control.
Animated sequences of the face are produced
at the rate of about 20 frames per hour.
University of Utah, Technical Report
UTECH-CSc-70-101, June 1970.
12.
Coons, S. A., "Transformations and
Matrices", Notes for the 1967 Summer School
on Computer Graphics for Designers,
University of Michigan, June 5-16, 1967.
ACKNOWLEDGMENTS
I am grateful to Professors R. E.
Stephenson and I. E. Sutherland and to
Barry Wessler and Ed Catmull for their"
help and encouragement, also to Mike
Milochik for his photographic assistance.
13. Ahuja, D. V. and Coons, S. A., "Geometry for Construction and Display", IBM
S [ s t e m s Journal, vol. 7, pp. 188-205,
1968.
REFERENCES
14.
Swinehart, D. and Sproull B., "SAIL",
Stanford Artificial Intelligence Project
Operating Note No. 57.1, April 1970.
1. Coons, S. A., "Surfaces for Computer
Aided Design of Space Forms", M.I.T., Cambridge, Mass., Project MAC Report MAC-TR41, June 1967.
2. Mahl, R., "Visible Surface Algorithm
for Quadric Patches", Computer Science,
University of Utah, Technical Report UTECCSc-70-iii, December 1970.
3. Weiss, R. A., "Be Vision,
IBM 7090 Fortran Programs to
graphic Views of Combinations
and Quadric Surfaces", JACM,
April 1966, pp. 194-204.
A Package of
Draw Orthoof Plane
vol. 13,
4. Gouraud, H., "Computer Display of
Curved Surfaces", Computer Science, University of Utah, Technical Report UTEC-CSc71-113, June 1971.
5. Wylie, C., Romney, G., Evans, D., and
Erdahl, A., "Half-tone Perspective Drawing
by Computer", Proc FJCC, vol. 31, pp.
49-58, 1967.
6. Appel, A., "The Notion of Quantitative
Invisibility and the Machine Rendering of
Solids", Proc ACM, vol. 14, pp. 387-393,
1967.
7. Kelley, K. C., "A Computer Program for
the Generation of Half-Tone Images with
Shadows", Coordinated Science Laboratory,
University of Illinois, Report R-444,
November 1969.
8. Romeny, G. W., "Computer Assisted
Assembly and Rendering of Solids", Rome
Air Development Center, Griffiss Air
Force Base, New York, Technical Report
RADC-TR-69-365, September 1969.
9. Rougelot, R. S. and Shoemaker, R.,
"G. E. Real Time Display", General Electric Co., Syracuse N. Y., NASA Report
NAS 9-3916.
10. Warnock, J. E., "A Hidden Surface
Algorithm for Computer Generated Halftone
Pictures", Computer Science, University
of Utah, Technical Report 4-15, June 1969.
ll. Watkins, G. S., "A Real-Time Visible
Surface Algorithm", Computer Science,
457