RASTER-SCAN HIDDEN SURFACE ALGORITHM TECHNIQUES. Griffith Hamlin, Jr. C. William Gear. Report Number 77- 1. January 7, 1977.
ICASE
h
,
RASTER-SCAN HIDDEN SURFACE A L G O R I T H M T E C H N I Q U E S
Griffith Hamlin, Jr. C. William Gear
Report Number 77-1 January 7, 1977
(NASA-CR-185737) -
.~
RASTER-SCAN HIDDEN SURFACE (ICASE) 29 p
N89-71362
ALGURITHM TECHNIQUES
Unclas 00/61
__
~ ~
INSTITUTE FOR COMPUTER APPLICATIONS IN SCIENCE AND ENGINEERING NASA tawey Research Center, M ~ l p t ~ sVirginia ,
~
~
r-
0224338
Operated by -the
n.
UNIVERSITIES SPACE
USRh
RESEARCH ASSOCIATION
RAST ER-S CALI H I D D EN SURFACE ALGORITHM T ECHN I QUE;S ,
G r i f f i t h Ilamlin, J r .
C. W i l l i a m Gear
I
*
ABS TPACT
Two new t e c h n i q u e s a r e calculations
in
hidden
presented
for
reducing
surface elimination.
the
number
that
involved i n
the
the
new
depth
techniques
reduce
calculations.
A
the
be
done
is
shown
by
number of m u l t i p l i c a t i o n s
technique
p a r a l l e l i s m of o p e r a t i o n s i s a l s o p r e s e n t e d .
depth
Two new a l g o r i t h m s u s i n g t h e
t e c h n i q u e s are compared w i t h t h r e e e x i s t i n g a l g o r i t h m s and i t examples
of
for
increasing
the
This allows t h e c a l c u l a t i o n t o
more r a p i d l y i n hardware and i s p a r t i c u l a r l y u s e f u l f o r g e n e r a t i n g
l i n e d r a w i n g s r a t h e r t h a n t h e u s u a l TV r a s t e r
scan
images
in
the
common
raster-scan hidden s u r f a c e algorithms.
*
U n i v e r s i t y of I l l i n o i s a t Urbana
T h i s r e p o r t w a s p r e p a r e d as a r e s u l t of work performed u n d e r NASA C o n t r a c t Number NASI-14101 w h i l e b o t h a u t h o r s were i n r e s i d e n c e a t ICASE, GASA L a n g l e y R e s e a r c h C e n t e r , Hampton, VA 23665.
I.
INTRODUCTION.
Many a l g o r i t h m s f o r h i d d e n s u r f a c e e l i m i n a t i o n u s e a form of raster s c a n i n which t h e s c e n e i s s c a n n e d by a s e q u e n c e o f h o r i z o n t a l p l a n e s i n o r d e r t o generate the
projection
the
of
in
information
s c a n l i n e as shown i n FIGURE 1 .
corresponding
each
plane
into
c omp u t a t i o n s
the
in
order
which
will
it
preprocess
plane
.
convex
polygons
in
dimensions.
three
d e s c r i b e d assume t h a t t h e s e polygons
are
the
vertices
new
polygon
the
increasing
of
algorithms
X
coordinate.
determine
of
which
polygons
and d e t e r m i n e t h e d e p t h
is
edges
in
ascending
in
frqnt.
Most the
of
each
algorithms property
polygon,
from
one
scan
and
then e x p l o i t t h e
that
the
relative
do n o t normally change f r o m one s c a n l i n e t o t h e n e x t ,
and t h a t , f u r t h e r m o r e , t h e o r d e r i n g i n t h e . r c t i v e edge l i s t does n o t much
scan
is t h e n p o s s i b l e t o s c a n a c r o s s from l e f t t o
It
p r o p e r t y of s c a n l i n e c o h e r e n c e which i s depths
Within each
keep t r a c k of t h e X c o o r d i n a t e s of e a c h polygon e d g e
r i g h t (increasing X value) hence
order,
Y
e d g e s t h a t i n t e r s e c t t h e c u r r e n t s c a n p l a n e are t h e e d g e s
t h a t i n t e r s e c t s t h e p l a n e and keep t h i s l i s t of a c t i v e order
both
i n t o a s c e n d i n g o r d e r on t h e i r Y c o o r d i n a t e s .
initially
i n c i d e n t on t h e n e x t v e r t i c e s i n t h e o r d e r e d v e r t e x l i s t . plane
although
A l l of t h e t e c h n i q u e s d i s c u s s e d
T h i s means t h a t as s u c c e s s i v e p l a n e s a r e p r o c e s s e d i n the
number
The two new t e c h n i q u e s
non-intersecting,
c o u l d b e m o d i f i e d t o compute i n t e r s e c t i o n s . sort
the
b e needed i n t h e d i s p l a y
I n a l l of t h e schemes t o b e d i s c u s s e d t h e s c e n e i s composed of a of
the
The a d v a n t a g e of t h i s scheme
i s t h a t i t a l l o w s f o r f a s t s o r t i n g t e c h n i q u e s t o b e used t o information
onto
plane
to
the
next.
change
I n d e e d , i f i t i s assumed t h a t
p o l y g o n s cannot i n t e r s e c t , t h e n t h e r e l a t i v e d e p t h s c a n n o t change,
and
the
RASTER SCAN
Y 4
SCAN PLANJ3 /
/
/I/NTERSECTION
OF ~2 WITH MNE = P2 SEGbEm
/
=PROJECTION OF SCAN P m om0 x-Y P r n . VISIBLF: = PROJECTION OF P2 SEGMENT ONTO x-Y PLANE.
/ / /
/
b'P2
/
/
ox
\
/ /
/
DIRECTION
*
0
I I
z=o
------7
I I I--,_-
I
I
I
I
I
P1 V I S T B L E
p2 VISIBLE:
FIGURE 1
- -- --- --
only
times
when i t i s n e c e s s a r y t o p e r f o r m new d e p t h c a l c u l a t i o n s are when
the order i n the polygon
list
assumption
of
is
active
edges
reasonable
changes.
This
i n many e n v i r o n m e n t s .
non-intersecting F o r example, t h e
p o l y g o n s m i g h t r e p r e s e n t t h e s u r f a c e of a s o l i d body, s u c h as Since
an
aircraft.
two s o l i d b o d i e s c a n n o t b o t h occupy t h e same s p a c e , p o l y g o n s on t h e i r
s u r f a c e s c o u l d n o t i n t e r s e c t , a l t h o u g h t h e y might s h a r e s i d e s i n common.
The two new t e c h n i q u e s i n t r o d u c e d below u s e t h e f o l l o w i n g i d e a s :
1.
I n e a c h s c a n l i n e , a r e c u r s i v e method i s used t o p r o c e s s t h e p o l y g o n s which i n s u r e s t h a t o v e r l a p p i n g p o l y g o n s a r e p r o c e s s e d i n o r d e r of t h e d i s t a n c e from t h e o b s e r v e r ( d e c r e a s i n g Z ) . A s t a c k i s u s e d t o keep t r a c k of t h e p o l y g o n s w h i c h were v i s i b l e b u t h a v e b e e n o b s c u r e d by c l o s e r p o l y g o n s , and t h e polygons which a r e v i s i b l e a r e numbered i n s u c h a way t h a t t h e r e l a t i v e d e p t h of any two p o l y g o n s which are compared w i l l b e remembered f o r all f u t u r e s c a n p l a n e s .
2.
When t h e o r d e r of t h e a c t i v e edge l i s t c h a n g e s , t h e v i s i b i l i t y of p o l y g o n s a f t e r t h e change can o f t e n b e deduced f r o m t h e v i s i b i l i t y b e f o r e t h e change and a n e x a n i n a t i o n of t h e t y p e of t h e e d g e s i n v o l v e d i n t h e change. A l l e d g e s a r e c l a s s i f i e d by marking them as l e f t o r r i g h t d e p e n d i n g on w h e t h e r they a r e on t h e l e f t o r r i g h t s i d e of a polygon as s e e n by t h e v i e w e r . For example, when two r i g h t e d g e s c r o s s and i n i t i a l l y t h e l e f t one i s v i s i b l e below t h e i n t e r s e c t i o n , i t f o l l o w s t h a t t h e r i g h t one i s v i s i b l e and t h e l e f t i n v i s i b l e above t h e intersection. T h i s t e c h n i q u e i s f u r t h e r enhanced by k e e p i n g t r a c k of t h o s e e d g e s t h a t are p a r t of two o r more polygons. Edges which a r c b o t h l e f t and r i g h t are c l a s s i f i e d as m i d d l e edges.
T h e s e two t e c h n i q u e s have been programmed, and t h e described
below.
Both
techniques
are
two
algorithms
are
u s e f u l f o r a n y s c e n e d e s c r i b e d by
p l a n a r convex p o l y g o n s , b u t t h e f i r s t ' i s p r o b a b l y b e t t e r f o r s c e n e s i n which t h e r e are many unconnected polygons.
The s e c o n d a p p e a r s t o b e s u p e r i o r when
t h e s c e n e i s composed of c u r v e d s u r f a c e s approximated polygons.
Descriptions
of
aircraft
fuselages,
by
wings,
adjoining etc.,
s t r u c t u r a l and aerodynamic a n a l y s i s a r e examples of s u c h p i c t u r e s .
3
planar
used
for
The t e c h n i q u e t h a t i n c r e a s e s t h e p a r a l l e l i s m of c o m p u t a t i o n and a i d s the
generation
of
line
drawing
a technique t h a t i d e n t i f i e s t h e next
is
l a r g e s t Y f o r which any change o c c u r s i n th:- a c t i v e e d g c l i s t .
is
in
Since
this
t h e f i r s t s c a n p l a n e a t which a change i n t h e v i s i b i l i t y of p o l y g o n s c a n
occur, t h e v i s i b i l i t y p r o c e s s i n g a l g o r i t h m c a n advance immediately value
and
perform
the
new v i s i b i l i t y c o m p u t a t i o n .
to
that
I f a raster has t o be
developed, i t
can
computations.
If a l i n e drawing i s t o b e g e n e r a t e d , t h e l i n e s c a n be o u t p u t
be
generated
in
parallel
with
the
new
visibility
e a c h t i m e t h a t t h e y t e r m i n a t e o r become i n v i s i b l e .
The n e x t s e c t i o n summarizes t h e p r o c e s s i n g common The
following
two
sections
describe
the
some
experimental
both
algorithms.
two a l g o r i t h m s i n some d e t a i l .
Section 5 discusses the technique f o r parallelism, presents
to
and
the
final
section
r e s u l t s which compare t h e o p e r a t i o n c o u n t s f o r
s e v e r a l s c e n e s r a n g i n g from 11 t o 480 polygons.
2.
BASIC ALGORITHM FEATURES. The o b j e c t i v e of any a l g o r i t h m
different
views
of
a
be
may
each
as
set
of
very
of
a m a l l p e r t u r b a t i o n from t h e l a s t as i n a moving p i c t u r e , are
parallel
micro-processors include
a
I f , on t h e o t h e r hand, a series
t o b e g e n e r a t e d , t h e n t h e o b j e c t i v e s may process
If
scene are t o be generated, then t h e o b j e c t i v e i s t o
r e d u c e t h e t o t a l amount of computation. views,
twofold.
as
possible
in
include
the
calculation
as
much
of
the
o r d e r t o a l l o w € o r s e v e r a l mini- o r
t o work on d i f f e r e n t s e c t i o n s .
organizing
making
so
that
The some
objectives of
the
may
work
also c a n be
i n c r e m e n t a l , t h a t i s , s o t h a t s m a l l changes from o n e v i m t o t h e n e x t c a n b e a c c o m p l i s h e d by a s m a l l amount of work.
4
The work i s b r o k e n up i n t o two computation.
stage.
for
(and
incremental
comptltation.
Both
perspective transformation i f desired)
T h i s c a n b e performed i n c r e m e n t a l l y .
polygon.)
For
the
first
c h a n g e s i n p o s i t i o n w i l l be f e w .
since
algorithms
consideration.
incrementally.
Another
of e a c h p o l y g o n edge indicates
the
the
the
lowest
vertex
of
variant
the
of
bubble
Next, b o t h a l g o r i t h m s compute
lies
in
the
I f t h e polygon i s 'edge on' t o t h e v i e w e r , i t i s dropped
Z=AX+BY+C.
from f u r t h e r
do
i n t h e preprocessing
c o e f f i c i e n t s A , B y and C f o r each polygon s o t h a t t h e polygon plane
visibility
sort, a f a s t b i n a r y o r bucket s o r t c a n be
u s e d , b u t s u b s e q u e n t i n c r e m e n t a l ones s h o u l d u s e a sort
and
Next t h e y s o r t t h e v e r t i c e s by
(The f i r s t t e c h n i q u e o n l y s o r t s
the Y coordinates. each
preprocessing
T h i s n o t o n l y a l l o w s f o r some p a r a l l e l i s m , b u t a l s o i n c r e a s e s
the possibility rotation
stages:
in
These
coefficients
can
also
be
computed
s t e p i n p r e p r o c e s s i n g i n v o l v e s computing t h e s l o p e the
scene.
This
is
computed
as
dxldy
which
change i n X i n t h e movement from one s c a n p l a n e t o t h e n e x t .
( H o r i z o n t a l l i n e s r e q u i r e some s p e c i a l h a n d l i n g d e p e n d e n t o n t h e d e t a i l s
of
t h e a l g o r i t h m implementation.)
During t h e v i s i b i l i t y c o m p u t a t i o n , a n A c t i v e Edge L i s t i s m a i n t a i n e d
in
o r d e r of t h e X c o o r d i n a t e s of t h e i n t e r s e c t i o n of t h e e d g e s w i t h t h e c u r r e n t scan
plane.
When
the
s c a n p l a n e is advanced by i n c r e a s i n g T t o t h e n e x t
h i g h e r v a l u e , t h e s e X v a l u e s must b e updated by a d d i n g t h e slopes
of
t h e e d g e s t o them.
must b e done. scan
line
by
numbering t h e polygons.
Edge L i s t c a n b e u p d a t e d by simply r e s o r t i n g i t . almost
sorted,
a
of
the
T h i s may change t h e o r d e r i n g so some t e s t i n g
The f i r s t a l g o r i t h n d e s c r i b e d h e r e
coherence
inverse
saves
information
Consequently, t h e Active Since
it
is
presumably
v a r i a n t of t h e bubble s o r t p r o v i d e s a r a p i d method.
5
about
The
s e c o n d a l g o r i t h m u s e s t h e i n f o r m a t i o n a b o u t which
elements
in
the
Active
Edge L i s t have changed p o s i t i o n s , s o i t i s more c o n v e n i e n t t o d e t e r m i n e when two
elements have t o be exchanged and t o p e r f o r m t h e a p p r o p r i a t e v i s i b i l i t y
computation immediately a l t h o u g h i t i s sort.
In
either
case,
conceptually
similar
tests
t o d e t e r m i n e i f t h e o r d e r h a s changed.
a d d i t i o n a l conputation is necessary.
3.
deleting
like
number
I f t h e r e are any c h a n g e s ,
When t h e Y v a l u e of t h e n e x t v e r t e x i s
r e a c h e d , a change must be made i n t h e A c t i v e Edge L i s t . adding,
bubb1.c
t h e b a s i c p r o c e s s i n g of one s c a n p l a n e r e q u i r e s a
number of a d d i t i o n s e q u a l t o t h e number of a c t i v e e d g e s p l u s a of
a
to
This
may
involve
The d e t a i l s are a l g o r i t h m d e p e n d e n t .
o r r e p l a c i n g edges.
DESCRIPTION OF STACK ALGORITHM. The f i r s t
algorithm
calculations.
The
employs
input
data
the
describing
p l a n e r , convex p o l y g o n s , assumed t o pierce
one
another
nor
they
may
first
technique
overlap
These
one
polygons
l i n e i n which t h e y a p p e a r .
any s c a n l i n e , a n ACTIVE
not
another cyclically.
The
intersected
by
t h i s scan l i n e .
maintained
of
all
are
dropped
from
l i n e i n which t h e y a p p e a r .
Y
valued)
polygons
that
At
are
Two new e d g e s a r e added t o t h e ACTIVE LIST
from t h e SORTED POLYGON LIST on t h e f i r s t s c a n l i n e i n Polygons
(lowest
T h i s p r o d u c e s t h e SORTED POLYGON LIST. is
LIST
depth
may
polygons a r e numbered and s o r t e d a c c o r d i n g t o t h e f i r s t scan
reduce
t h e image c o n s i s t s of a s e t of
opaque.
be
to
which
they
appear.
t h e ACTIVE LIST a f t e r p r o c e s s i n g t h e l a s t s c a n
When t h e end
of
the
SORTED
POLYGON
LIST
is
r e a c h e d and t h e ACTIVE LIST i s empty, t h e a l g o r i t h m t e r m i n a t e s .
Two e n t r i e s a r e made i n t h e ACTIVE LIST f o r e a c h p a l y g o n , to
the
X-coordinates
of
the
corresponding
two p o i n t s a t which t h e s c a n r a y e n t e r s and
6
e x i t s t h e p o l y g o n as i t s c a n s t h e c u r r e n t scan
line
from
left
to
right.
B e f o r e e a c h s c a n l i n e i s p r o c e s s e d t h e ACTIVE L I S T i s s o r t e d s o t h e X-values
are i n l e f t t o r i g h t order.
R e f e r r i n g t o FIGURE 2 , t h e p r o c e s s i n g of a n i n d i v i d u a l s c a n l i n e with t h e f i r s t (leftmost)
p o i n t i n t h e ACTIVE LIST.
begins
The p o l y g o n e n t e r e d a t
t h i s p o i n t i s d e c l a r e d t o b e t h e CURRENT polygon a n d p r o c e s i n g b e g i n s on i t . To
process
a
polygon means t o s c a n t h e A C T I V E L I S T d a t a which l i e s w i t h i n
t h e l e f t and r i g h t b o u n d a r i e s of t h e p o l y g o n , t o d e t e r m i n e
when
RECURSIVE PROCESSING ONE SCAN LINE
TOP VIEW
,x
Figure 2
7
(if
ever)
the
polygon
becomes
visible,
arid
t o generate output d a t a indicating the
X - p o s i t i o n on t h e c u r r e n t s c a n l i n e where t h e polygon i s algorithm
prweeds,
a
pointer
into
the
visible.
As
the
LIST k e e p s t r a c k of t h e
ACTIVE
p o s i t i o n of t h e s c a n r a y a s i t a d v a n c e s from p o i n t t o p o i n t .
When the s c a n r a y e n c o u n t e r s t h e e x i t of t h e CURRENT polygon, p r o c e s s i n g i s t e r m i n a t e d on t h a t polygon.
A t t h i s t i m e the algorithm
saves
with
the
CURRENT polygon t h e o r d i n a l number r e p r e s e n t i n g when t h e CURRENT polygon was processed
(i.e.
, three
i s s a v e d i f t h e CURRENT p o l y g o n i s t h e t h i r d p o l y g o n
on t h i s scan l i n e f o r which p r o c e s s i n g h a s b e e n
w i l l b e c a l l e d t h e r a n k of t h e polygon. the
frontnost
polygon
of
terminated).
scan
line
to
overlapping
indicate
their
number
S i n c e t h e s t a c k i n g mechanism c a u s e s polygons
to
its processing
have
t e r m i n a t e d f i r s t , t h e r a n k of two o v e r l a p p i n g p o l y g o n s may b e next
This
relative
non-overlapping p o l y g o n s a r e m e a n i n g l e s s .
depths.
Therefore,
used
on
Ranks
before
the
of
using
two ranks,
t h e a l g o r i t h m c h e c k s d a t a s t o r e d d u r i n g p r o c e s s i n g of t h e p r e v i o u s s c a n l i n e t o i n s u r e t h a t t h e two polygons o v e r l a p p e d on t h e p r e v i o u s s c a n l i n e .
a
ranking
polygon,
the
stack
After
i s popped and p r o c e s s i n g i s resumed on t h e
polygon saved a t t h e t o p of t h e s t a c k .
It now becomes t h e CURRENT
polygon.
t h i s o c c u r s t h e s c a n r a y and A c t i v e Edge L i s t p o i n t e r jump back t o t h e
When
p o s i t i o n they had when t h e polygon w a s pushed
onto
the
stack.
This
may
c a u s e t h e a l g o r i t h m t o d e v i a t e from a s t r i c t l e f t t o r i g h t p r o c e s s i n g o r d e r . The
algorithm
produced. output
is
remembers
the
rightmost
X-value f o r which o u t p u t h a s b e e n
I f , a f t e r a pop of t h e s t a c k , t h e s c a n r a y jumps t o t h e l e f t ,
no
generated u n t i l the scan ray again reaches t h i s rightmost value.
polygon
which
h i d e s t h e CURRENT polygon, p r o c e s s i n g of t h e CURRENT Polygon
i s s u s p e n d e d , t h e A c t i v e Edge L i s t p o i n t e r processing
started
is
on
is
pushed
onto
a
stack,
and
t h e newly e n c o u n t e r e d p o l y g o n , which h a s become
visible.
the
I f , b e f o r e e x i t i n g t h e CURRENT POLYGON,
scan
ray
encounters
the
o r a polygon, t h e a l g o r i t h m marks t h a t polygon.
If that
p o l y g o n i s a t a l l v i s i b l e , i t w i l l have b e e n pushed o n t o t h e s t a c k .
When i t
right
side (exit)
i s l a t e r popped
off
the
stack
the
mark
will
cause
the
algorithm
to
i m m e d i a t e l y r a n k i t and pop a n o t h e r polygon from t h e s t a c k .
I f , o n t h e o t h e r hand, t h e polygon i s c o m p l e t e l y i n v i s i b l e , i t w i l l have
I n t h i s case t h e mark w i l have t h e e f f e c t
b e e n pushed o n t o t h e s t a c k .
of d e l e t i n g t h e polygon f r o m f u r t h e r p r o c e s s i n g on t h e This
eliminates
current
number
scan
some Z-depth c a l c u l a t i o n s i n v o l v i n g t h i s polygon.
of r a n k i n g s u c h i n v i s i b l e p o l y g o n s , t h e a l g o r i t h m s a v e s w i t h the
not
line. Instead
of
each
them
t h e polygon t h a t was v i s i b l e when t h e i n v i s i b l e p o l y g o n w a s
of
T h i s i n f o r m a t i o n may s a v e Z-depth c a l c u l a t i o n s
e n t e r e d by t h e s c a n r a y .
on
subsequent scan l i n e s .
4.
DESCRIPTION OF ALGORITHM CROSS Algorithm
CROSS
employs
the
second t e c h n i q u e .
f u n d a m e n t a l e l e m e n t s i n t h e r e p r e s e n t a t i o n of t h e Each
vertex
consists
of
its
coordinates
i n f o r m a t i o n g e n e r a t e d i n t h e algorithm. plus information (ordered)
list
generated of
edges.
in
the
X,
data
In t h i s algorithm the
are
the
vertices.
Y , and Z p l u s some p o i n t e r
Edges c o n s i s t vf a p a i r of v e r t i c e s
algorithm.
Polygons
9
must
Polygons be
planar,
consist convex,
of
an and
non-intersecting
(although
intersections).
The
the
usual
algorithm
preliminary
could
be
modified
to
p r o c e s s i n g i s u s e d t o compute t h e
c o e f f i c i e n t s of t h e p l a n e s of t h e p o l y g o n s , t o o r d e r t h e v e r t i c e s
by
and t o c o n s t r u c t l i s t s of e d g e s c o n n e c t e d t o e a c h v e r t e x .
Y-values,
case,
compute
edges
are
their In this
t o b e g i n on a v e r t e x i f t h e i r end w i t h t h e l o w e s t Y
said
v a l u e i s on t h a t v e r t e x .
They end on t h e v e r t e x w i t h t h e h i g h e s t
value.
Y
Two l i s t s a r e c o n s t r u c t e d f o r each v e r t e x , a l i s t of t h o s e e d g e s e n d i n g on a vertex
and
a
of t h o s e b e g i n n i n g on a v e r t e x .
list
The l i s t of b e g i n n i n g
e d g e s i s o r d e r e d by t h e s l o p e of t h e e d g e s s o t h a t a t h i g h e r will
edges
unordered.
be
in
left
a
to
right
order.
the
The l i s t of e n d i n g e d g e s i s
I t i s u s e d t o remove e d g e s from t h e A c t i v e Edge
v e r t e x i s encountered.
values
Y
List
when
the
T h i s s a v e s t e s t i n g e a c h a c t i v e edge t o see i f i t h a s
ended.
4.1 EDGE CLASSIFICATION Because
edges
can
be
'shared'
between
two
o r more p o l y g o n s , i t i s
p o s s i b l e f o r an edge t o be t h e l e f t o r r i g h t edge of more t h a n one However,
it
is
w i t h each edge. that
no
c o n v e n i e n t i f w e a s s o c i a t e a u n i q u e l e f t and r i g h t p o l y g o n T h e r e f o r e , t h e a l g o r i t h m creates enough c o p i e s of e d g e s
edge i s a l e f t o r r i g h t edge of more t h a n one polygon.
n e c e s s a r y t o a v o i d making more t h a n o n e copy of
an
edge
a
( b e c a u s e t h e non i n t e r s e c t i n g h y p o t h e s i s c o u l d be v i o l a t e d ) . the
polygon.
preprocessing,
c r e a t e d i f necessary.
the
edges
are
so
It i s a l s o
'middle'
edge
D u r i n g p a r t of
c l a s s i f i e d a s L , M o r R and c o p i e s a r e
A t t h e same t i m e , a p a i r of p o i n t e r s i s
created
for
At this time,
the
l e f t p o l y g o n of a l e f t edge i s n u l l , and s i m i l a r l y f o r t h e r i g h t p o l y g o n
of
each
a
e d g e i n d i c a t i n g i t s unique l e f t and r i g h t p o l y g o n s .
right
edge.
During
t h e s c a n n i n g , t h e s e unused p o s i t i o n s w i l l b e t a k e n
10
over f o r s t o r i n g p o i n t e r s t o the next v i s i b l e active
and
visible.
Thus,
polygons
when
the
is
edge
f o r any a c t i v e v i s i b l e e d g e , t h e l e f t p o i n t e r
w i l l a l w a y s c o n t a i n t h e p o l y g o n on t h e l e f t which i s v i s i b l e , and
similarly
f o r the r i g h t pointer.
are
When a n edge i s p u t i n t h e A c t i v e Edge L i s t , p o i n t e r s
stored
with
t h e p o l y g o n s o t h a t a n y polygon under t h e s c a n l i n e h a s p o i n t e r s t o i t s l e f t and
right
edges.
(This
is
the
reason
for
the
r e s t r i c t i o n t o convex
polygons. )
The l i s t of a l l e d g e s under t h e c u r r e n t s c a n l i n e i s right
kept
in
left
to
The X p o s i t i o n of e a c h e d g e i s r e c o r d e d , a l o n g w i t h t h e e d g e
order.
t y p e (L, M, o r R ) , i t s v i s i b i l i t y ( V = v i s i b l e , I = i n v i s i b l e ) t o t h e l e f t and r i g h t p o l y g o n s mentioned above.
The l i s t
must
and p o i n t e r s be
updated
e a c h t i m e a v e r t e x is e n c o u n t e r e d o r two a c t i v e e d g e s c r o s s .
4.2 VERTEX PROCESSING When a v e r t e x i s e n c o u n t e r e d a l l e d g e s e n d i n g on t h e v e r t e x are removed. The
vertex
can
be
marked
otherwise it is i n v i s i b l e .
visible
calculated.
of
the
vertex
any
of
t h e s e edges are v i s i b l e ,
I t s p o s i t i o n i n t h e A c t i v e Edge L i s t i s g i v e n by
t h e p o s i t i o n of t h e removed edges. visibility
if
and
I f t h e r e a r e no its
position
in
edges
to
remove,
the
t h e a c t i v e e d g e must b e
I t s p o s i t i o n i s d e t e r m i n e d by s e a r c h i n g t h r o u g h t h e a c t i v e e d g e
list sequentially.
I t s v i s i b i l i t y i s d e t e r m i n e d by computing t h e
t h e v i s i b l e polygon a t t h a t p o i n t .
depth
of
( T h i s polygon i s known by l o o k i n g t o t h e
l e f t o r right i n t h e list.)
11
Next, a l l e d g e s b e g i n i n g a t t h e v e r t e x are added t o t h e A c t i v e Edge Li.st and t h e c r o s s i n g p o i n t s t o t h e i r l e f t and r i g h t a r e c a l c u l a t e d i f n e c e s s a r y . I f t h e v e r t c x i s invisih?:.,
t h e r e i s i . . i h i n g e l s e t o do.
visible,
This i s necessary because
t h e v i s i b i l i t y of e a c h new edge must b e computed. several
If i t is
polygons c o u l d s t a r t from a v e r t e x , and t h e s e c o u l d o b s c u r e some of
t h e edges.
The v i s i b i l i t y i s d e t e r m i n e d by comparing t h e
the
of
depth
the
currently
edge
depth
If the v i s i b l e
v i s i b l e polygon on t h e l e f t .
polygon does n o t p a s s t h r o u g h t h e v e r t e x u n d e r c o n s i d e r a t i o n , t h i s a
straightforward
depth
calculation
and comparison.
p a s s through t h e v e r t e x , t h e comparison i s done u s i n g the
polygons
with
rcquircs
I f t h e polygon does the
coefficients
of
(The l a t t e r i s n c c e s s a r y t o
and t h e s l o p e of t h e added edge.
a v o i d t h e problem c a u s e d by t h e f a c t t h a t b o t h t h e polygon and t h e e d g e p a s s through t h e v e r t e x under c o n s i d e r a t i o n . )
Anytime a m i d d l e edge i s added i t s v i s i b i l i t y i s d e t e r m i n e d by s e e i n g if
i t s l e f t polygon i s t h e c u r r e n t l y v i s i b l e visible
In
addition,
a
when
r i g h t edge i s added, a s e a r c h must b e n a d e t o f i n d t h e n c x t visib1.c
polygon on t h e r i g h t . section,
polygon.
except
T h i s i s done u s i n g t h e s e a r c h d e s c r i b e d i n
when t h i s i s t h e l a s t e d g e from t h e v e r t e x .
t h e n e x t v i s i b l e polygon c a n b e d e t e r m i n e d by l o o k i n g t o t h e
the
next
I n t h a t case, right
in
the
A c t i v e Edge L i s t .
4 . 3 CROSSING ANALYSIS The
principal
feature
of
c l a s s i f i c a t i o n of c r o s s i n g t y p e s . states
LV,
MV,
the
visibility
Each a c t i v e e d g e i s i n
RV, L I , M I , o r RI.
is
conputation one
of
the the
six
T h i s g i v e s a t o t a l of 36 p o s s i b i l i t i e s
f o r t h e c r o s s i n g of a p a i r of a d j a c e n t e d g e s ,
12
These are shown
in
Table
I
,
,,.
. .
below.
(The
-
* d
&
.
edge is t h e edge w i t h t h e smaller X v a l u e . )
first
A p a i r of
e d g e s t h a t c r o s s a r e h a n d l e d by s w i t c h i n g t h e i r p o s i t i o n s i n t h e a c t i v e e d g e
l i s t a n d t h e n e x e c u t i n g t h e a c t i o n d e s c r i b e d i n t a b l e below.
. when
an
RV
edge
becomes i n v i s i b l e .
example,
c r o s s e s an MV edge, t h e edges s w i t c h and t h e middle edge The o n l y o t h e r a c t i o n needed
p o i n t e r of t h e RV edge.
polygon
For
is
to
update
the
right
Its new v a l u e i s t h e r i g h t polygon p o i n t e r
of t h e m i d d l e edge. Table I
LV
2nd Edge
PlV
RV
LI
MI
RI
1st Edge
LV
I1
E
E
Cla
Clb
cI C
Mv
I1
E
c
-
RV
c2
I2
I2
-
-
-
Blank e n t r i e s i n d i c a t e no a c t i o n , o t h e r w i s e : I1 Flake f i r s t edge i n v i s i b l e I2 Make s e c o n d e d g e i n v i s i b l e C1 I f t h e s e c o n d e d g e i s i n f r o n t of t h e p o l y g o n v i s i b l e t o t h e l e f t of t h e f i r s t e d g e , make s e c o n d e d g e v i s i b l e . ( C a s e s a , b , and c are d i s t i n g u i s h e d l a t e r ) . Compares t h e d e p t h s of t h e p o l y g o n s t o t h e l e f t a n d C2 r i g h t of t h e f i r s t and s e c o n d e d g e s r e s p e c t i v e l y . The o n e w i t h t h e forward p o l y g o n r e m a i n s v i s i b l e . C3 The same as C 1 w i t h f i r s t a n d s e c o n d , and l e f t a n d r i g h t interchanged. E ‘ E r r o r ’ c o n d i t i o n because t h e e d g e s b e l o n g t o t h e same polygon. The c r o s s i n g c a n b e i g n o r e d .
-
-
-
-
-
The l e f t polygon p o i n t e r of a (and
left
similarly
edge for
that
is
may
after
crossing
calculation
updated.
I n a l l b u t two c a s e s , t h e p o i n t e r i s a v a i l a b l e i n t h e o t h e r
13
r i g h t edges)
visible
have
the
to
be
edge.
In
these
two
cases,
Clc
and
C3c
i t is necessary t o search t o f i n d t h e
polygon t h a t is now v i s i b l e between t h e two e d g e s . processing
the
active
edge
under
consideration
i n t e r s e c t i o n point.
is
done
by
from l e f t t o r i g h t l o o k i n g f o r t h e edge u n d e r
c o n s i d e r a t i o n w h i l e r e c o r d i n g e n t r i e s and e x i t s edge
This s e a r c h is
from
polygons.
When
the
r e a c h e d , i t i s known which p o l y g o n s s p a n t h e
The d e p t h s of a l l of them must b e c a l c u l a t e d ,
and
the
most forward c h o s e n as t h e new v i s i b l e polygon.
require
Thus, of t h e 32 c a s e s t h a t c a n o c c u r i n T a b l e I , 2 1 of them no
a c t i o n , 4 of them r e q u i r e a s i m p l e change of v i s i b i l i t y and t h e c h a n g i n g
of a p o i n t e r , and 7 cases r e q u i r e a d e p t h comparison of
addition,
two
polygons.
In
two of t h e l a s t s e v e n cases r e q u i r e a s e a r c h and p o s s i b l y s e v e r a l
d e p t h c a l c u l a t i o n s i n t h o s e c a s e s t h a t t h e v i s i b i l i t y changes.
4.4 PREPROCESSING I n a d d i t i o n t o t h e p r e p r o c e s s i n g d e s c r i b e d i n s e c t i o n 2, t h i s
algorithm
h a s t o do t h e f o l l o w i n g : Edge P r o c e s s Each
edge
is
examined.
I t s end p o i n t s a r e p l a c e d i n a s c e n d i n g o r d e r
and a p a i r of c h a i n s i s c o n s t r u c t e d from e a c h v e r t e x t h r o u g h t h e
so
that
from e a c h v e r t e x i t i s p o s s i b l e t o f i n d t h e s e t of e d g e s t h a t
end on t h e v e r t e x and t h e s e t of e d g e s t h a t s t a r t on t h e set
edges
vertex.
The
of e d g e s t h a t s t a r t o n t h e v e r t e x a r e s o r t e d i n a s c e n d i n g o r d e r of
t h e i r s l o p e s s o t h a t t h e y w i l l be i n t h e c o r r e c t l e f t t o r i g h t o r d e r i n t h e A c t i v e Edge L i s t when t h e y a r e e n t e r e d t h e r e . Polygon Edge L a b e l Each polygon i s exarnined i n t u r n .
If i t i s c l o s e t o
14
‘edge-on’
it
is
. . ,.
. ... ...
2
.
..
.
,
.
.* I
. ... ..
-.
,..i g n o r e d ,
o t h e r w i s e t h e c o e f f i c i e n t s A, B, and C s u c h t h a t Z=AX+BY+C are T h i s i s done by s o l v i n g a s y s t e m of t h r e e l i n e a r e q u a t i o n s
calculated. derived
from
three
adjacent
vertices
on
the
polygon.
If
the
d e t e r m i n a n t o f t h e s y s t e m i s too’smaL1, t h e f i r s t v e r t e x i s d r o p p e d and a n o t h e r added.
This is repeated u n t i l
i s i g n o r e d as ‘edge-on’
polygon
t h e d e t e r m i n e n t of t h e system indicates
whether
the
is
first
an
o r too s m a l l . (which
is
is
solutian
exterior
of
dropped,
its
a
as
available
option
whether
e d g e s a r e examined i n sequence.
edge
is
a
when
or
viewed
(up
ignore
v i s i b i l i t y t e s t s on d u p l i c a t e polygons.
i s e a s i l y found by f i n d i n g t h e edge a t t a c h e d t o t h e largest
down)
I t i s marked
the
I f t h e edge i s created.
of t h e rear polygon i s s a v e d as t h e d u p l i c a t e edge (which i s
d i s t i n g u i s h a b l e i n t h e edge l i s t ) , s o t h a t t h e p i c t u r e simply
or
of t h e polygon on
r i g h t of t h e edge is s t o r e d i n t h e edge l i s t .
edge
is
The c o m b i n a t i o n of
a l r e a d y marked a s b e i n g of t h e same t y p e , a d u p l i c a t e e d g e i s The
from
I f t h e polygon
l e f t o r r i g h t edge.
a c c o r d i n g l y i n t h e l i s t of edges, and t h e ‘name’
left
ways.
A c o u n t e r - c l o c k w i s e p r o j e c t i o n i n t h e x-y
t h e body.
the
two
I f t h i s option is
t o i g n o r e rear polygons.
t h e d i r e c t i o n of r o t a t i o n and t h e d i r e c t i o n of t h e edge indicates
byproduct)
used. i n
This information i s
p l a n e i n d i c a t e s t h a t t h e polygon s h o u l d b e dropped. not
the
I f a s o l u t i o n is found,
u s e d , polygons must b e s p e c i f i e d i n c l o c k w i s e o r d e r the
or
found
polygon i s b e i n g p r o c e s s e d i n t h e c l o c k w i s e o r
counter-clockwise direction. The
a
value
of
the
parameter
15
The f r o n t edge
polygon
with
the
I f t h e edge h a s b e e n marked
R when t h e new t y p e i S
marked a s M.
can
A i n t h e case of l e f t e d g e s , o r t h e
smallest v a l u e i n t h e case of r i g h t e d g e s . a s o f t h e o t h e r t y p e (e.g.
generation
L)
it
is
simply
5.
PARALLEL GENERATION OF RASTER AND L I N E DRAWING TECHNIQUE S i n c e there i s no v i s i b i l i t y change from o n e s c a n l i n e t o t h e n e x t u n t i l
a
new
is
vertex
encountered
or
u n t i l two e d g e s i n t h e A c t i v e Edge L i s t
change p l a c e s , t h e A c t i v e Edge L i s t c a n b e u p d a t e d from o n e s c a n l i n e t o t h e T h e r e i s no need t o t e s t t o s e e i f t h e r e h a v e
n e x t by a d d i t i o n s o n l y . any
I n d e e d , t h e r e i s no need t o g e n e r a t e t h e s t a t e of
changes of p o s i t i o n .
t h e A c t i v e Edge L i s t f o r each s c a n p l a n e , o n l y f o r t h o s e on which
a
of a l l i n t e r s e c t i o n s of a d j a c e n t e d g e s i n t h e A c t i v e Edge L i s t u n l e s s
were
incident
Consequently
order
the
of
Y
value
t h i s l i s t and t h e
next It
entry
was
on
found
the
that
sorted
Lists.
and
tests
used
to
intersection.
the
generate
generated
the
in
amount of a r i t h m e t i c i n v o l v e d i n of
work
involved
in
s u c c e s s i v e s c a n p l a n e A c t i v e Edge
I n t h i s t e c h n i q u e , a s e p a r a t e p r o c e s s o r c a n be g e n e r a t i n g t h e
state
A c t i v e Edge L i s t f o r e a c h s c a n l i n e by a d d i t i o n s and g e n e r a t i n g t h e
r a s t e r o u t p u t from t h a t s t a t e . E r d a h l [ l ] i n 1972.
Such a d i s p l a y g e n e r a t o r
was
described
by
I t a p p e a r s t h a t a l g o r i t h m CROSS p r o d u c e s t h e p r o p e r t y p e
of i n p u t r e q u i r e d by E r d a h l ' s d i s p l a y p r o c e s s o r , e.g.,
edge
the
list
vertex
computing t h e i n t e r s e c t i o n s was less t h a n t h e amount additions
of
n e x t Y v a l u e of a change c a n be f o u n d from t h e minimum i n
the
preprocessing.
those
t h e same v e r t e x o r were p a r t of t h e same polygon.
on
This l i s t i s maintained i n
of
change
T h e Y v a l u e of t h e n e x t change i s c a l c u l a t e d by m a i n t a i n i n g a l i s t
occurs.
edges
been
a s e q u e n c e of v i s i b l e
segments s o r t e d by t h e i n i t i a l s c a n l i n e on which t h e y a p p e a r and t h e n
s o r t e d by t h e visibility
X-values
computation
of
the
intersection
the
scan
line.
The
c a n p r o c e e d by a d v a n c i n g t o t h e Y v a l u e of t h e n e x t
change.
A s implemented, even t h e X v a l u e s
updated
except
when
with
of
the
active
t h e r e w a s a change of v i s i b i l i t y .
16
edge
were
not
T h i s was p a r t l y i n
o r d e r t o a l l o w l i n e d r a w i n g s t o be g e n e r a t e d e a s i l y , b u t a l s o b e c a u s e i t was found t h a t t h e X c o o r d i n a t e s of a c t i v e e d g e s were n o t needed v e r y o f t e n , that
the
in
the
data
a v a i l a b l e was more t h a n o f f s e t by t h e r e d u c t i o n i n t h e number of times
that
the
additional
calculation
its last
work
calculating
intersections
of t h e X v a l u e had t o b e made.
calculated
value
X
and
the
from
so
C;ach a c t i v e edge c o n t a i n e d
corresponding
value
Y
in
the
implementation.
6.
COMPARISON OF SEVERAL ALCORITHEIS
The
two
algorithms
described
a l g o r i t h m s [ 2 , 3 , 4 ] were implemented Each
of
these
or
ir,
a l o n g w i t h t h r e e o t h e r scan-li.ne
FORTPAN on a PRIME-300
minicomputer.
counted
the
number of t e s t s , s t o r e d d a t a
divisions,
and
additions
implementations
accesses, m u l t i p l i c a t i o n s
here,
required
by
the
algorithm.
T a b l e 2 g i v e s t h e s e c o u n t s f o r t h e s e v e r a l p i c t u r e s shown i n t h e
appendix.
The. c o u n t s i n c l u d e d a l l p r o c e s s i n g done on e a c h i n d i v i d u a l s c a n
l i n e ( t h e i n n e r l o o p of a l l of t h e s e a l g o r i t h m s ) , keeping
the
list
of
active
in
pol.ygons
the
left-to-right of
p r e p r o c e s s i n g done i n c a l c u l a t i n g t h e c o e f f i c i e n t s polygon.
is
perforned
t h e counts. assumed
that
order
of
their
In
order,
the
plane
in
and t h c
of
each
topmost
I n a s s i g n i n g c o u n t s t o e a c h p o r t i o n of e a c h a
moderate
amount
of
data
This
additions
and
algorithm
it
was
could be placed temporarily i n For t h i s r e a s o n no s t o r a g e
are i q c l u d c d f o r i n r r e m e n t i n g I n d i c e s and o t h e r
assigning
vertex.
by a l l a l g o r i t h m s t e s t e d and s o c o u l d be o m i t t e d f r o n
r e g i s t e r s w i t h e s s e n t i a l l y i n s t a n t a n e o u s access. acreSses
done
The c o u n t s do n o t i n c l u d e o t h e r p r e p r o c e s s i n g done i n r e a d i n g t h e
i n p u t polygons o r s o r t i n g t h e n i n Y-sort
processing
coiitrol
pointers.
m u l t i p l i c a t i o n s , no a d d i t i o n s t o prograrr, l o o p
c o u n t e r s o r o t h e r s u c h programming f u n c t i o n s were i n c l u d e d .
17
Such o p e r a t i . a n s
are v e r y
much
algorithm,
implementation
and
with
not
Watkins
an
integral
part
of
the
It was d i f f i c u l t t o c o l l e c t d a t a
so were o m i t t e d e n t i r e l y .
on o u r FORTRAN v e r s i o n of t h e directly
dependent,
algorithm
that
could
be
compared
The Watkins a l g o r i t h m w a s d e s i g n e d t o
t h e o t h e r algorithms.
h a n d l e i n t e r s e c t i n g p o l y g o n s which t h e o t h e r a l g o r i t h m s do n o t h a n d l e . implementation
simplified
the
Watkins a l g o r i t h m by removing t h i s f e a t u r e .
Also, t h e Watkins a l g o r i t h m w a s d e s i g n e d t o a c c e p t precision
Our
greater t h a n o n e raster p o i n t .
input
vertices
with
a
Our i n p u t d a t a c o n t a i n e d v e r t i c e s
t h a t were rounded o f f t o t h e n e a r e s t r a s t e r p o i n t .
This
sometimes
caused
t h e Watkins a l g o r i t h m t o t h i n k t h a t two a d j a c e n t polygon6 o v e r l a p p e d (by o n e
r a s t e r u n i t ) , c a u s i n g some e x t r a c a l c u l a t i o n s .
For a l l p i c t u r e s combined, t h e two a l g o r i t h m s d e s c r i b e d fewer
multiplications
and
additions
o b t a i n e d from t h e l i t e r a t u r e . accomplished
In the case
use
any
of
of
the
algorithm
performed
three algorithms
STACK,
this
of
raster
or
techniques.
line
drawings,
and
makes
Consequently i t appears t o be
connectivity information.
f a s t e r t h a n many o t h e r
However,
it
uses
considerably
s t o r a g e than o t h e r t e c h n i q u e s b e c a u s e of t h e l a r g e number of p o i n t e r s . present
i m p l e m e n t a t i o n u s e s a b o u t 40 1 6 - b i t
p o i n t v a l u e s p e r 4-sided polygon. with
an
A better
was
a t t h e e x p e n s e of i n c r e a s e d t e s t i n g of p r e v i o u s l y s t o r e d d a t a .
Algorithm CROSS c a n b e used f o r efficient
than
here
i n t e g e r s and 1 2 3 2 - b i t
However, i t i s
an
more (The
floating
experimental
version
u n n e c e s s a r y number of p o i n t e r s t o a l l o w any v a r i a t i o n t o b e t r i e d . implementation
could
reduce
this
to
a p p r o x i m a t e l y . 22
i n t e g e r s and 9 3 2 - b i t f l o a t i n g p o i n t v a l u e s p e r 4-sided ‘polygon.)
16-bit
A m a j o r problem w i t h a l g o r i t h m CROSS i s due t o t h e f a c t thaL i t docs u s e t h e c o n n e c t i v i t y i n f o r m a t i o n ef f e c t i v c l y . made,
Once a n e r r o r
i t can p r o p a g a t e t h r o u g h t h e f i g u r e .
in visibility
T h i s c a u s e s p a r t i c u l a r problem:;
i f two v e r t i c e s are p l a c e d i n t h e same p h y s i c a l l o c a t i o n , that
round-off
error w i l l take its toll.
i..,
or
close
enough
I f t h e a l g o r i t h m i s t o l d t h a t two
p o i n t s a r e t h e same, t h e c o n n e c t i v i t y and s l o p e s of t h e p o l y g o n s c a n be used t o determine v i s i b i l i t y , otherwise a simple depth c a l c u l a t i o n must he and
round-off
errors
could
yield
t h e wrong c o n c l u s i c m .
made,
Discarding very
T h e a l t e r n a t i v e i s t o c o a l e s c e very
s m a l l p o l y g o n s h e l p s w i t h t h i s problem. close p o i n t s and g i v e them t h e same 'name'
19
i n the data structure.
References
[l] Erdahl, Alan C., "Displaying Computer Generated Ilalf-tpne Picture8 in Real Time," Computer Science Department, University o f Utah, MDCTR-69-250, 1972. [ 2 1 Bouknight, W. J., "A Procedure for Generation of Three-BimenafionaJ Half-toned Computer Graphics Presentations," Communications of the ACM, Vol, 13, No. 9, September 1970, pp. 527-536.
[3] Romney, G. W., G. S . Watkins, D. C. Evans, "Real-time Display of Computer Generated Half-tone Perspective Pictures,' IFIP, 1968, pp. 973978" [ 4 1 Watkins, G. S . , "A Real-time Visible Surface Algorithm," C o q w t e y Science nepartment, University of Utah, UTECH-CSC-70-101, June 19?0.
A 1 go r i thm Nemo r y
Tests
CHANNEL PICTURE Mult/Div Additions
STACK CROSS Bouknight Romney IJatkins
27701 3882 16534 13388 64385
5 50 377 10008 1114 15537
53983 14471 50175 52290 85641
5352 2922 14142 5248 3581 7
CONE PICTURE
STACK CROSS Aouknigh t Romney IJatkins
259686 79723 242524 261167 345671
131112 2 26 80 85682 9 1 720 262095
9783 5639 48787 36233 54599
23752 8753 61471 4891 7 130615
CYLINDER PICTURE
STACK
298237 06229 Bo 11 kn i,g h t 2 7 364 8 Romney 291893 Watkins 382588
156147 22090 95543 99956 308619
7 767 4000 55295 36569 72607
23913 11950 7 1 173 52447 169599
STACK
36788 7032 23949 22320 97624
1239 713 14501 4979 24431
5459 4820 13249 10055 56155
cr,o s s
70503 26415 Bouknight 71787 Romney 75012 Watkins 121989 CF.0 ss
AIRCRAFT PICTURE
STACK CROSS Bouknight Romney Watkins
266557 115515 244 130 260708 358353
131252 31429 89343 93903 252930
13180 7 506 44976 32666 56236
25672 12489 55756 43446 130254
SQUARXS PLCTURE
STACK CROSS Bouknight Romney Glatkins
41041 13996 39599 43354 108840
19712 5014 12921 11753 89533
263 223 5963 72 3 30710
3816 3207 9431 4191 67078
'
TABLE 2.
21
22
.
23
24
25
26
27