RASTER-SCAN HIDDEN SURFACE ALGORITHM ... - CiteSeerX

5 downloads 60 Views 950KB Size Report
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

Suggest Documents