coputer graphics principles and practices

1179

Upload: dereje-dhufera

Post on 03-Nov-2014

122 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Coputer Graphics Principles and Practices
Page 2: Coputer Graphics Principles and Practices

Foreword

TIle field of s)'$ICllL'S prognunming primarily grew OUI of the efforts o f many programmers and managers whose creative energy went into producing pnlCtical. utilitarian systems programs oceded by the rapidly growing computer industry. Programming was practiced as an art ~ each prograIIlmc:l" inverllcd his (l'IlITI solutions 10 problems with lilde guidance beyond that pn:widcd b)' h is immediate associates . In 1968 , the lale A.scher Opler, then 311 IBM . recognized thar 11 was necessary to bring programming knowledge together in a form ,hal would be accessible to all 5)'s&emS programmers. StI~ng the ~ of the an. he decided lhatenougl'lll3(:ful matc;rial ~isted fO jiJSlify a significant codification effort. On his recommend.tioo. IBM decided to sponsorlbe Systems Programming Series as a long term project to collect, organize, and publish those principles and techniq~ Ihal would have lasting value throughout the industry . Since 1968 e ighteen titles have been published in the Series. of ~id! six are currently in print.

n.e Series consists of an open-ended collection of toll-reference books. The contents of cadi book represent lhe individual author's view of the subject area and do not neces.~rily refl ect the views of the IBMCorporarlon. Eadl ~organiz.ed fotcowse use but is detailed enough for refe:rencc .

RepttK!&IA!M topic areas atrudy published . Of that are ~u:d to be cxwered by the Series, include: darahase s)'SIems, communkal:ion symems, graphics systems, expen systems, and programming process management . Ckha- topic areL'I will be included as the systems programming discipline Co'Olves and deYelops.

The EdilOl"1a1 Board

vii

Page 3: Coputer Graphics Principles and Practices

Preface

Interacti~ grnphics is a field whose lime has come . Until recently it w.lS an esoteric specialty involving expensive display hardwan:, substantial computer resources, and idiosyncrlll:ic software . In the last few years. however, it has benefited from the steady and sometimes even spectacular reduction in the hardware price/perfonnance ratio (e.g .• personal computers for home or office with their standard graphics terminals), and from the development of high-lC\'eI, device- independent graphics package.'! thai help make graphics programming ral~nal and straightforward. Interactive graphiCll is now finally ready to fulfill its promise to provide us with pictorial communication and tbus to become a major fadlitalOr of manlmachine interaction. (From preface. F~ndamenrals of interactiw COIfIPllter Graphics. James Foley and Andries van Dam. 1982)

This assertion that computer graphics had finally arrived was made before the rnoIution in computer culrurc sparked by Apple's Macintosh and the IBM PC af1d it!; clones. Now even preschool children are comfort~ble with interactive-grapbics techniques, such as the do;klOp metaphor for window manipulalion and menu and icon selection with a mouse. Graphics-based user interlaces have made productive u.sers of neophytes, and the desk without its graphics computer is increasingly rare.

At the same time that interactive graphics has become common in L1SCT interfaces and v;slt:Miiz.Alion of data and objects . the rendering of 3D objects has bel"Ome dramatically mon: realistic, as evidenced by the ubiquitous computer-generated commercials and movie special effects. Techniques that \¥ere eApc:Timental in the eMly eighties arc: now standard practice, and more remarkable "pholOrealistic" effects are around the corner. The simpler kinds of pseudorea1isrn, which lOok hours of computer lime per image in the early eighties. now are done routinely at animation rates (ten or more frames/second) on personal computers. Thus "real-time" vector displays in 1981 showed moving wire-frame objects made of tens of thousands of vectors without hidden-edge removal; in 1990 real-time raster displays can show not only the same kinds of line drawings but also moving objects composed of as many as one hundred thousand triangles rendered with Gouraud or Phong shading and specular highligbts and with full hidden-surface removal. The highesl­perfonnance systems provide real-time te;ltture mapping, antialiasing, atmospheric attenua­tion for fog and hue, and other advanced effects.

Graphics software standards have also advanced sjgnificantly since our first edition. 1be SIGGRAPH Core '79 package, on which the first edllion's SOP package was based, has all but disappeared, along with direct-view storage tube and refresh vector displays. The much more powerful PHIGS package. supporting storage and editing of structure hierarchy. has become an official ANSI and ISO standard. and if is widely available for real-time

viii

Page 4: Coputer Graphics Principles and Practices

Preface ix

georJlelrK.: gOlphit.--s in !o(.;t:fKific;moJ enll!ina:ring ~it:il(iollli. ;doni: with PHIOS+ , which supports iighling , shading. curves, and SUITaces. Official gmphics standards complemenl lower-level. more efficienl de facto siandards, such as Apple ' s QuickDraw , X Window Sy:>tem's Xlib :m integer raster graphics package , and Silicon Graphics' GL 3D libouy . Also widely available are implemenlations of Pix3r's RenderMan interface for photonalis­IX; rendering and PosIScrip( inlerprelus fot hardcopy page and screen image description. Belief graphics sofl~ has been used 10 make dramalic improvements in !he "look and f«l"of user interfaces, and we may expect ioc~asing use of 3D effects. boI:h for aesthetic reao;ons and for providing new metaphors for organizing and presenting. and navigating Ihrough information.

Jtmaps the ID<>M important new movement in graphks is the incrnWng concern fOt modeling objeclS, nol JUSt for cre.ating lheir pictures. Furthennore, intt:n:S1 is growing in describing the lime-varying geometry and behavior of 3D objects. Thus graphics is increasingly concerned with simulation , animation . and a "bade 10 physics" movement in boI:h modeling and rendering in order to creale objects thaI loot and behave as realistically as possible.

As the 10015 and capabilities zvailable become more and ffior-e SOphisticated and complex, we need 10 be able: to apply thc:m effeclivdy . Rendering is no longer the boulenc:ck . Therefore researchers arc: besinning to apply anificia.l.intclligc:~"C Itx.:hniques 10 assist in the design of object: models, in modcm planning , and in the IlQQUt of ef[ecti~ 20 and 3D grapbical presentalKKls_

Today the: frontiers of graphics are moving ¥ery rapidly, and a text that sets out to be a $l3ndard reference ~ must periodically be updated and expanded. This book: is almost a lotal rewrite of the: Fundo.mmtaJ.I of Inuractiw Compuu:r Grapilil"s. and although this second edition contains nearly double: the original 623 pages, we remain painfully aware of how much material ~ have been fo~d to omit .

Major differences from the first edition include the following:

• 1be ¥eCtor-graphics orientation is replaced by a raster orientation .

• The simple 2D Hooting-point grnphics package (SGP) is replaced by '"010'0 packages ­SRGP and SPHIGS - lhat rlIfiect the two major schools of inter&etivt: graphics proglllmming. SRGP combines features of the QuictDraw and Xlib 20 integer raster graphics packages. SPHIGS , based on PHIGS, proYides the fundamenlaJ features ofa 3D floaling-poinl package: with hic:ran;:hicaJ display lists. We e1Iptain how to do appltcations programming in each of thc:sc: packages and show h<Joo,o.r to implemc:nl the basic dipping , scan-conversion, viewing , and display list tra\It'fS3J algorithms that underlie these systems.

• User-interface issues are di.scu.ssc:d al considerable length, bolll for 2D dc:sJctop metaphors and fOl" 3D inlenction devices.

• Coverage of modeling is expanded to include NUR B (noounifonn rational B-~pline) curve<; and surfaces, a chaptet" on solid modeling . and a chapter on advanced modeling techniques , such as physically based mcxk:Iing. procedural models. fractals, L-grammar systems . and particle systems.

• Increased covc:rnge of rendering includes a detailed tn:atment of anti aliasing and greatly

Page 5: Coputer Graphics Principles and Practices

x Preface

~pallde..:l. o:hilpttni 011 v~ible-~rf~ determination . illumirudion . and shading. including physfcaIly based illuminatiOfl models , ray tracing. and mdiosity .

• Material is added on advanced raster graphics architectures IUld algorithms. including clipping and scan-conversion of complex primiti-.es and simple image-processing opc:r8tions. such as compositing .

• A brief introduction to animation is added.

This text can be used by tOOse without prior Dackgrouod in graphics and only sorne background in Pascal programming. basic daTa structures and algorithms . computer architC(;"lUre. and simple linear algebra. An appendix reviews the necessary mathematical foundations . The book CO\oU"S enough material fOf" a full-year course . but is panitioned into ptlupsLto make sdoctive COYc:I"IJ8C possible . The: reader, therefore . can progress through a carefully designed sequence of units. starting wilh simpie. genera1 ly applicable fundamen­tals and ending with more complex and specialized subjects.

Basic Group. Chapter I provides a historical penpc:ctive and SOfl"le fundamental issues in hardware:. software. and appl ications. Chapters 2 and 3 describe:. respectively, the use and the implementatiOfl of SRGP. a simple 20 integer graphics package. Chapter 4 introduces graphteS hardware. including some hints about how to use hardware in implementing the operations described in the preceding chapters. 1be ne)!.! two chaptus. 5 aocl 6 , introduce the ideas of transformations in the: plane and 3-space . Iq)rc::scnlations by matrices . the u~ of homogeneous coordinates 10 unify linear and affine transfOflllations . and the description of 3D view!I , including the trani formations from arbitrary view ..oIumes to canonical view l'Olumes. Finally. O\apler 7 introduces SPHIGS. a 3D Roating-poinl hierarchical graphics package thai is a simplified ver-sion of the PfUGS wmdard. and describes its use in some basic modeling operations. ChapfCf" 7 also di$CtlSSeS the advantages and disadYarllages ofme h ierardly available in PHlGS and the structure of apPIicalions that use this graphics package.

User IllterUce Group. ChapterS 8-1 0 describe the current technology of interaction devk:es and then address the higher-level issues in user-interface desjgn. Various popular user-interface paradigms are described and critiqued . In the final Chapttt user-interface software. such as window managers. interaction technique-libraries. and u..ser-interface management systems, is addressed .

Mo*I Definition Group. The first two modding chapters. 11 and 12. describe the cun-enI: technologies used in geometric modeling: the lepresentation of CUI'"YeS and surfaces by panmetric functtons , especially cubic ~ines , and lhe lepitsentation of solids by various tedlniques. including boundary tepresenta.tions and esc models. C hapter 13 iotroduces the human coloc-vision system, vuious color-dc:scription syStems, and con~r­sion from one to another. This chapCer also b..-ieHy addn:sses rules for the effeetive use of oolor.

lmage Synlbesis Group. Chapter 14, the first in a four-chapter sequence, describes Ihe quest for realism from the earliest \'ecto r drawings to state-of-the-an shaded grapnics. The artifacl5 caused by aliasing alt of crucial concern in ra.stel' graphics. ilHd this chapter discolsses their causes and cures in considerable detail by introducing the Fourier

Page 6: Coputer Graphics Principles and Practices

Preface xi •

tnlnStOrm and oonvoiutlOn. Chapter 15 describes a variety of m-att'gie., for visible-SlIrl'1tce detennination in enough detail 10 aJIOIW the reader to implement some of the most im­portam ones. lIIuminalion and shading algorithms are (;OYered in detail in Chapter 16. 1be early part of th is chapter discusses algorithms most (;Ommonly found in current hatdware . white the remainder treats texture, shadows. u-anspallmcy. reflections, physicaJ· Iy based illumination models, ray trocing, and radiosity methods. 1be Last chapter in t~i s group, Chapter 17 . describes bofh image manipulations, such as scaling, shearing. and rotating pixmaps. and image storage techniques. indudins various image-compre.s­sion schemes.

Adnnced Techniqltes Gro.p. The last four Chlpters give an overview of the CUITent state of the art (a moving target, of course). C hapter 18 describes advanced graphics hardware used in high-end (:OI1lmerciai and research machines; this chapter was contributed by Steven Molnar and Henry Fudui, authorit.ies ora high-performance graphics architec­tures. ChaplCr 19 dc.Kriba the complex ,';Uta IlIgurithn~ usW for such tasks as scan-«M'lvcrtmg ;ubitary conics, generating antisliased teAt , and implementing page· de5criplion languages, such as fusr$a-ipt . The final tv,c daapter.l SUI"IIeY some of the most imponant techniques in the fields of high·level modeling and computei' animation .

The first two groups cover only elementary material and thus can be used for a basic course at the undergraduate level. A ronow~n course can then use the more advanced chapters. Altemacivdy . instrucCors can assemble customized courses by piclc.ing chapters OlIt of the various groups.

For example, a (;UUr5e designed 10 introduce students to primarily 20 graphics would include ClJapters I and 2 . simple scan cooYersion and clipping from Chapter 3, a technoloiY ove",iew with e mphasis on raster an:hitectures and interaction devkes from Chapter 4 . homogeneous mathematics from Chapter 5. and 3D viewing only from a "how co use it" point of v;e....· from Soctmns 6 .1 to 6 .3 . lbe User Interface Group. ChapterS 8· 10, would be followed by selected introduclOf)' sections and 5imple aJgorithms from the Image Synthesis Group, C hapterS 14, IS , and 16.

A one-course general overview of graphics would include Chapters I and 2, basic algorithms from Chapter 3, raster architectures and. interaction devices from Chapter 4 , Chapter 5. and mO!1 of Cbapter'!l 6 and 7 on viewing and SPHIGS . lbe lI«Ond half of the course would include sections on modding from Chapters II and 13 , on image synthesis from Chapters 14, 15 . and 16 , and on advanced modeling from Chapter 20 10 give breadth of coverage in these slightly more advanced areas.

A (X)urse emphasizing 3D modeling and rendering -..oWd swt with Chapter 3 sections on scan con...ening. clipping of lines and polyaons, and introducing antia1iasing . The course ~Id lhen prOSre5S to C hapters 5 and 6 on !he basic mathematics of transfonna· ImnS and viewing, Chapter 13 on color, and then cover the key Chapters 14, IS, and 16 in the Imlle Synthesis Group. Coverage would be rounded off by selcclions in surface and solid modelIng, Chapter 20 on advanred modeling. and Chapter 21 on animation from the Advanced TechniqUe!i GfOlIp.

Graphics Packqes. The SRGP and SPHIGS graphics pecklFS. designed by David Sklar, alauthor of the two chapters on these packages. are available from the publisher b

Page 7: Coputer Graphics Principles and Practices

xii Prefac"e

lhe J8M PC (lSBN 0-101 -54700·7), the Macintosh aSBN 0·201·54701 ·5), and UNIX IM)rk:stalions running XII, a.~ an: many of lhe algorit:hms for scan conversion, dipping. and viewing (see pagr: 1175).

AcknO'ft'ledgmeats. This book could nOl have been produced without the dedicated work and the indulgence of many friends and colleagues. We acknowledge here OUl" debt to those who have: contributed significantly to one or more chapters; many others have helped by c:ommenling on individual chapters. and we are grateful to them as weU . We regret any inadvertent omissions. Katrina Avery and Lyn Duprt did a superb job of editing . Additional v-.a1uabJe editing an multiple vc:n;Jons of multiple chaplers was provided by Debbie van Dam , Me1ilS8 Gold, and CIaTe Campbell. We are especially graldul 10 our production supervi~r , Betle Aaronson , o ur arc d irectOr,.Joe Vetere , and our edi tor , Keith WOllman, nOl only for their greal help in pnxlucing the book , but also for their palterK:C and good humor under admittedly adverse circumstances-if we ever made a promised deadline during lhesc frantic five years, \\-"e can ' , remember iI!

Compuler graphics has !)e(;ome too complex for even a t.eam of four main authors and fhr= g uest authors to be expert in all areas. We relied on colleagues and students fO amplify our knowledge, catch OtIr mistakes and provide COI\structi¥e criticism of (onn and content. We take ful l responsibility for any remaining sins of omission and commission. Detailed technical readings on one or more chaPIer5 were provided by JoIln Airey, Kur1 Akeley . Tom Banchoff, Brian Barsky, David Bates, Cliff BeVters , Gary Bishop, Peter Bono, Marvin Bunker, 8ill Buxton, Edward Chang , Norman Chin , Michael F . COMn , William Cowan, lahn Dennis , Tom Dewald . Scott Draves, Steve Drucker, Tom Duff, Richard Economy, David Ellsv.orth, Nick England , .Jerry Farrell. Robin Forrest, Alain Fournier, Alan Freiden, Christina G ibbs, Melissa Gold. Mark Green , Cathleen Greenberg. Margaret Hagen , Griff Hamlin. Pal Hanrahan. John H~. Rob Jacob, AbNt Kamran. Mike Kappel, Henry Kaufman, Karen Kendler, DilVid Kurlander, David Lakltaw , Keilh Lantz, Hsic:n-Che Lee, Aaron Man:us, Nelson Max, Deban.h Mayhew, Barbaro Meier. Gary M c:ycr, Jim Michener, Jakob Nid5Cll, MaTI\. Nodine, Randy Pausch, Ari Requicha, David Rosenthal, David Salesin, Hanan Samel, James Sa.nford, James Sargent, Robin Schaufler, Robert Scheifler, John Schnizlein, Michael Shantzis, Ben Shneidennan. Ken Shoemake, Judith Schrier, John Sibert , Dave Simons, Jonathan Sieinttan, Maureen Stone , Paul Strauss, Seth Tager, Peter Tanner. Brice Tebbs, Ben Trumbore , Vi Tso, Greg Thrie , kif Vroom. Colin War-e. Gary Watkin~ , Chuck Weger, Kevin Weiler, Turner Whitted , George \\Ulberg, and Larry Wolff.

ScvenaI. colleagues, including Jack Brucnham, Brian Barsky, Jerry Van AUn. Dilip Da Silva (who suggeued me uniform midpoint ~aunent of Chapler 3) and Don Halfidd . not only read chaplers closdy but also prO'Iided detailed suggestions on algorithms.

Welcome WDJd-processing relief W;I.S provided by Katrina Avery, Barbara Brinen, Clare Campbell , Tina Cantcw, Jo~e Cavatoni, Louisa HOiJaD , knni Rodda, and Debbie van Dam. Drawings for Cbapters 1-3 wen: ably created by Dan Robbins, 50011 Snibbe, Tina Cantor, and Clate Campbell. Figure and image sequences created for this book were provided by Beth Cobb. David Kurlander, Allen Paeth , and George 'M:Ilberg (with I$$isunce from Peter Karp). Plates 1I .21-37, showing a progression of rendering techniques , werc: designed and rendered 11.1 Piur by Thomas Williams and H.B . Siegel. under the direclion of M.W. Mantle . using Pixac's PhotoR.e.aliuk RenderMan sot'twaR. Thanks to Industrial Light &

Page 8: Coputer Graphics Principles and Practices

Preface xiii

Magic for the use of their laser scanner (0 c reate Plates 1I .24-37, and \0 Nonnan Chin for computing vertex normals (or Color Plates 11.30-32. L. Lu and CarJes Caslcllsague WI'Ofe proervns 10 make figures.

Jeff Vogel implemented the aJgorithms of Chapcer 3, and he and Alul Butte vet"ified the code in C hapters 2 and 7 . David Sklar wrote the Mac and XII implementations of 5RGP and SPHtGS with help from Ron Balsys. Scon Bo~ian. AtuJ BulCe. Alex ConlO'o'Ounesios , and Scon Draves. Randy Pausclt and his srudc:nts ported lhe packages to the PC environment .

We have instal led an automated electronic mail set"YeI" to alkJw our readers to obtain machinc-n:adable copies of many of the alpithrns , suggest eJl.e:rcises, report errors in the lCJIt and in SRGP/SPHlGS , and obI:ain CIT8ta lists for the tf::l{t and softwaTe . Send email to " gr-aphte.Kt @c-s.bnJwn .edu ·· with a Subject line of " Help" to rc:cei~ the CUfTCnt list of lIYllilab1e scrviccs. (See page 1175 for information on bow 10 or-der SRGP and SPHlGS.)

Preface to the C Edition Tbis ill_C· ' , S « ... iwota book"'ad dly Min p wiIh CUI., hi in P'aIcaI. h ind t .u+ • dIrouP-Dindlpo-1uoldter..c.l_'Ntdedtdon. UMlla minor modifkMica to R'ME:ii" .. ." .............. ill PMcaI code .. been ~ in ANSI C. n.c i p I'a::ei., die SIWJP ... SPHIGS .... ict F '. are ROW

defined in C, .8tba daan PIiIQII • .rid COi' Ii Nd to the new C irr,pa.w:: ... kIas of me. J*" , (See NC 117~ b i.L ........ on obIaillilla lht m~.)

- wish 10 lhalt Noe'I ... Olin ror conoatire the ~ code 0( the JCOOnd edition to C, pooofJCild.ine: _. Iftd fooa ...... it !IIi .. the I)'POS ..... oic OOft\laltion$ of the oritPna!. TlaMk.1o Matt Ayen for '*'IfuJ proofi"l olCbapcc,s 2, 3 . and 7. and for ...rill M'a 'ion& about ~wnion poblems.

KWh;"8'Qn , D .C. r,..,vUJ"Iff. R,/ . N~ y .... k. N ,Y. Pro'l,,;d,nc,. R .I

J.D .F. A ,,,_D.

S .K . F. 1.F .H.

Page 9: Coputer Graphics Principles and Practices

Contents

CHAPTER 1 'NTRODUCTION

1.1 1. 2 1.3 IA 1.5 ; .• 1.7

Image Processing as Picture Analysis . . . . . .• ..•. . . . . . The Advantages of Inleractive Graphics " . . . . . . Rep~scntative Uses of Computer Graphics . . . . . .. . . _ . . ," Cla!>Sificatioll of Applications . . . . . . _ . . .. . . . . . . Development of Hardware and Software for C omputer GraphiOi Conceptual Frallle\M'Jrk fo r Interactive G raphk s . . . . . . . Summary . _ . . . . _ . . . Exercises . . . . • . . . . . . . . . . . . .. . . . . . . . . . . . .

CHAPTER 2 PROGRAMMING IN THE srMPLE RASTER GRAPHICS PACKAGE (SAGP)

2.1 Dra ..... ing with SRGP 2 .2 Basic Interaclion Handling 2.3 Raster Graphics Feature10 2.4 LimitalKlIlS of SRGP 2 .5 S ummary

Exerrises

CHAPTER 3

· . . . . . . . . . . . . . . . . . . . - . - . . . . . . . . . . . . . . . . . .

BASIC RASTER GRAPHICS ALGORITHMS FOR DRAWING 2D PAIMnlVES

3 .1 3.2 3 .3 3.' 3 .5 3 .• 3 .7 3 .' 3 .9 3. 10 3. I I 3 .1 2

Overview . . . . . . . . . . Scan Converting Lines Scan Converting Circles Scan C()(l~rting Ellipses Filling Rectangles Filling Polygons Filling Ell ipse Arcs Pattern Filling . . . . . Thick Primiti'o'es . . . . . . Line St}1e and Pen St}1e . Clipping in a Raster \\4)rld Clipping Lines

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . · . . . . . . . . . . . . . . . . . . . . . .

. . - . . . . . . . . . . . . . . . . . - . . . · . . . . . . . . . . . . . . . . . . . . · . . . . . . . . . - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xv

1

2 3 4 6 ,

17 2\ 22

25

26 40 5 2

'" 63 64

67

67 72 81

" 91 92 99

100 \04 109 11 0 III

Page 10: Coputer Graphics Principles and Practices

xvi Contents

C lipping Circles and Ellipse~ Clipping Polygons .. Generating C haracters SRGP _copy Pixel Antialiasing ..

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . 3 . 13 3. 14 3 . 15 3 . 16 3 . 17 3 . 18 Summary . . . . . . . . . .

E)(crcises

CHAPTER 4 GRAPHICS HARDWARE

Hardoopy Tcdtnologics Display Technologies RaSlcr...scan DlspJay Systems The Video Controller ... . .... . Random-Scan Display Processor

4 .1 4 .2 ' .3 4.4

4 .' 4 .6 4 .7

Input Devices for Operator Interaction Image ScanneJS

. . . . . . . . . . . . . . . . . . . . . .

E;\:ercises ... .... . . ........ . . . . . . . . . . . . . . . . . . . . . . .

CHAPTER 5 GEOMETRICAL TRANSFORMATIONS

5. 1 5 .2

5 .3 5A ' .5 ' .6 '.7 5.8

20 Tnmsformatrom Homogeneous Coordinates and Matrix Representation 0(

20 Transformations . . . . . . . . . . . . . . . •. . Compo&ition of 2D Tramfonnalions The Window-to-Viewport Transformation Efficiency . . . .. . . . . . . ...... . . Matrill Representation of 3D Transformations Composiltoo of 3D Transformations . . . . . . Transformations as a Change in Coordinate System Exercises . .. . . . ... ... .. . ..... . .. .. .

CHAPTER 6 VIEWING IN 3D

Pro~~ . . . . . . . . . . . . Specifying an Arbitrary 3D View Example:; of 3D Viewing . ... . . .

. . . . . . .

6. 1 6.2 6.3 6A 6.5 6 .6

The Mathematics of Planar Geometric Projections Implementing Planar Geometric Projections

. . . . . . . . . . . . Coordinate Systems ... . . ExetCi:geS ... . . .. . . .... .. . . .... .

12' 12. 127 132 132 140 142

145

146 155 165 179 184 188 195 197

201 20 1

204 208 210 212 213 217 222 226

229

230 2.'7 242 253 258 279 281

Page 11: Coputer Graphics Principles and Practices

Contents xviI

CHAPTEA. 7 OBJECT HIERARCHY AND SIMPLE PHIGS ISPHIGS) 285

Geometric Modeling . ... . .... .. ... . . . . . Characlerislics of Relained-Mooc Graphic5 Packages

7. , 7.2 7.3 7 .4 7.5 7.6 7.7 7 .• 7.9 7. 10 7. I I 7. 12

7 . 13 7 .14 7. 15 7. 16

Defi ning and Displaying SrruCIUres ... . . . . . .. . .. . .

286 293 295 304 308 315 318 321 324 318 332 '34 340 341 343 34' 346

Modeling Transformal ions ...... .... . . . . . . .. . . . Werarchical S tructure NetWOf"ks ..... . . . . . . • . . . .. Mo.trix CornposniOfJ in Dillplay Traversal .. . . . . .. .. •.. . Appearance-Attribute Handling in Hierarchy . . .. .• . • _ . • . • . .... Saun Updating and Rendering Modes .... ....• . • .. . . . . • .. . SlruClure Nelwort.: Editing for Dynamic: Effects _ ..•.. . • . ... _ . Inleraclion . . ....... . . ... . . . ... . • • . • • ••• . •. Addilional Output Fi:atures . . . . . ... _ . . .. ..•. Impl(;mentation il;MtC>; • • • • • • • . • . • . . • • .•.. • •• _ • .

Optimiling Display of Hierarchical Modds . _ . . . . •. _ . . Limitations of Hierarchical Modeling in PHIGS . . . ..•....... Altemati"e Forms of Hierarchical Modeling . • .• • . ... . . SummHl)' E~cises .. . ... . .

CHAPTER 8 INPUT DEVICES. INTERACTION TECHNIQUES. AND INTERACTION TASKS •. , ' .2 '.3

Internclion Hardware Basic InteNW;tion Tasks Compnsite InteraClion Tash EI<e~ .... . .. .

CHAP"fER 9 DIALOGUE DESIGN

. . . . . . . . . . . . . . . . . . . . .

•. , 9.2 9.3 9.4 9.5 9.6

The Fonn and Content uf User-Computer Dialogues User-Interface Slyies . .... . .. .. ........ . Important Design CQnsiderations . . .... . Modes aod Syn' :U ...... . . ... . Visual Design .... . . . • ... The Design Methodology . .... . . .• Exerriscs . .. . . . .. .

CHAPTER 10 USER INTERFACE SOFTWARE

10. 1 Basic Interaction- Handling Models 10.2 Window-Management Sysrems 10.3 OulpUt Handling in Window Systems . . . . . - . . . . . . . . . . . .

347

349 358 38' 388

391

392 395 403 4 14 418 429 431

435

43. 43. 443

Page 12: Coputer Graphics Principles and Practices

xviii Contents

10.4 Input Ha.ndling in Window Systems ...... . .. . .. • .. . . . ...... 447 10.5 Interaction-Technique Toolkits . .... .• _ . •• _ • •. _ • _ _ • _ . ... . . 451 10.6 User-Interlace Management Systems .. .•. _ • . .•......•..•... . 456

Exercises . . . . . .. . . . ........ . . ......• . _ . . . _ _ . . . . . . 468

CHAPTER 11 REPRESENTING CURVES AND SURFACES 471

II . I Polygon Meshes . . . . . . . .. .... . ... . . . . . • • . . • _ . • . .... . 473 11 .2 Paramelrk Cubic Curves .............. . . . •..•. . .. . ..... 478 11.3 Parametric Bicubic Surfaces ... .. . . .. .. .. .. ... . . ...... ... 5 16 11.4 Qu.adric Surfaces . . .... . .. • . . . . ... _ . . . . . . . • . . • . . . . . . 528 11.5 Summary .... . ....... . .. • . •• _ . . .. . • . . • . . • . . . . . . . . . 529

Exercises .. . . ... .... • ..• . .• . . . . . _ • ... . . • . . •.. . . . . 530

CHAPTER 12 SOLID MODELING 533

12. 1 Representing Solids ..... ... . .. • . . . • . . . . . . .. • .. . •.. . .. 534 12.2 Regularized Boolean Set Opentionli .......... . .•. . • .. . . .... 535 12.3 Primitive Instancing ...... . . ..... • •.. • . • . • •• . . . • • . .... 539 12.4 S~ Representations .... . .... . .... • . . ...•. . _ ..... ... 5-40 12.5 Boundary Representations . .... .. .. .•. . •• • • .. . • _ • . . .. . 542 12.6 Spatial·Panittoning R~ntation.s .... • ..•. . .. . . . .••.. . . .. 548 12.7 Constructiw: Solid Geometry . . . ...... . . . .•...... • .... .. . 557 12.8 Comparison of Reprcsent.tions ..... .• • _ • • . . •. . . .• •• . •.... 558 12.9 User Interfaces for Solid Modding .......•. . •... . .. • . . •. . .. .561 12. 10 Sumlnlll'Y ... . . ........... . •. . . . • . ...• ........ . . 561

Exercises .... . . . . ..... .... ... . . . .•.. . • • . • • . • ... . . 562

CHAPTER 13 ACHROMATIC AND COLORED UGHT 563

13. 1 Achromatic Light .......•. . ... . . . . . • .. • • . • ...•.. . . . 563 13.2 Chromatic Color ..... .. .. . . ... ... . .. _ . •.. • ... • . . .... 574 13.3 Color Modcls for Raster Graphks .... .. • _ _ . • . .• . .. . . . • . . .. 584 13.4 Reproducing CoIOl" ........ . ..... •. .. ... . .. .......... 599 13.5 Using Color in Computer Grapfli« ..... • . _ ................ 601 13.6 Sumlllary .. _ . .. . ..... . .... . . .. . . _ • . . .. . . .. . . . . ... 603

EACrcisc:s . ...... . .... ....•.... •. . • _ .• .. . . . . • .•. . . 603

CHAPTER 14 THE QUI!!ST fOR VISUAL REALISM 605

14 .1 Why Rcal ism? .. . . . . ........... . . • ..• . ... .. . . •.. . . . 606 14 .2 Fundamental Difficulties ........ .. . . . . . _ • _ ..• . .. . •.. . .. 607 14.3 Rendering Techniques for Line Drawings ... .... ...... . .•... .. (XJ9

Page 13: Coputer Graphics Principles and Practices

Contents xix

14.4 14.5 14.6 J 4 . 7 14.8 14 .9 14. 10 14 . I 1

Rendering " ecnniques for Shaded Images .. . . ..... . .. ... . Improved Objeet Models ......... • •• • • . • . . . •. ... . Dynamics . . . . .. .. . . . . . . . . . ....• ..•..... .• . . .. Stereopsis . . . .... . . .... . . . . , • . • • • .. . ••• .... . .. Improved Displays . . . . .... . . . .•.. . . ...• • .• . ••. .... . Interacting with Our Other Senses .. . .. .....•. . . ... . .. • . .. . Aliasing and Antialiasing .• . . . . . ...• . • •• •. • • . • •. Summary _ . . . . . .. . ....... . Exercises ... . ... .. . ... • •••• _ •• . . .. • .•. .•.

CHAPTER 15 VISIBLE·SURFACE DETERMINATION

15. 1 15.2 15 .3 15.4 15 .5 15 .6 15.7 15 .8 15 .9 15. 10 15 . I I

Functions of'I'v.u Variables ........ . . . . . . . ...• . .... _ Techniques for Efficient Visible·Surface Algorithms . . . . . ..•.... AJgorithms for Visible-Line Determinat ion . . . .... . . .... • . . . . The z·Butrer Algorithm ...... . . . . . . .... _ . . .• .. . •• .. . List-Priority Algorithms . . . • . . . . . • . . • . . . ..... . s..:an-Unc Algorithms ... • •. •..• . . . • • • . • •. • _ . Area-Subdivision Algorithms . . •. . . •. . . . .•. . . .. _ . . . . AJgorithms for <:>ctrees .. • . .. • ..• . . .. • •• .• •• .. Algorithms for Curved Surfaces ... • ...• • . • . • .. • .•..•... Visible-Surface Ray Tracing ... _ .• •. . • ... _ . • ....... . .. Surnmary . . . ........ . . • . •. _ .. •• • . • •• • • •• . Exen:ises ... . . . ..... . .. .... • .. •.. ...•...•.. _ . . .

CHAPTER 16

6)2 615 615 6)6 617 617 617 646 641

649

Ii" 656 665 668 672 680 686 &;, 698 10) 115 118

.LLUMINATION AND SHADtNG 721

16. 1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16 .9 16. 10 16. II 16. 12 16 . 13 16 . 14 16. 15

Illumination Models .. ... S hading Models for Polygons · . . . . . . . . . . . . . . . . . . . . . . . . Surface Detail .. ..... . Shadows ........... . · . . . . . . . . . . . . . . . . . . . . . . . . . . ~ · . . . . . . . . . . . . . . . . . . . . . . . . . . Interobjcct Reflect ions ..... . •...... .. . .• ...•. . • .. • .... Physically Based Illumination Modds ... • . _ ••..• . • .. • •. . .... Extended Light Soun:c:s ....... ....•..•..• ... . • ... • .... Spoctn1l Sampling . .............. . •. • .. • .. • .. . . . .. Improving (he Camern Modd ...... ..•. .•. .• •.•. .. •... Global Illumination Algorithms •.. . .. .•. . • • . •. .• ... • ... Recursive Ray Tracing .. . ..... ..• •. . • .• .• • . .•• . . • . . Radiosity Methods .......•.. • • ... •.. ..... •. .. . The Rendering Pipe.line ..... .• . .•. .. •.. ... . .. •.. . . . . Summary ••• . • • .• _ •• • •• . .. . • • • ... . Exercises ... .... . . . . . . . . . . . . - . . . . . . . . . . . . . . . . .

722 134 14) 145 154 158 160 m 113 114 115 11. 793

'0<5 813 8J3

Page 14: Coputer Graphics Principles and Practices

xx Contents

CHAPTER 17 IMAGE MANIPULATION AND STORAGE

What [~ an Image? Filtering Image Processing

17 . ] 17 .2 17 .3 17 .4 17.5 17 .6 17 .7 J 7 .8 17.9

Geometric Transfonnatioos of Images · . . . . . . . . . . . . . . . . . . . . .

815

81. 811 820 820 828 835 843 850 851 851

Multipass Transformalio~ . . . . · . . . . . . . . . . . . . . . . . . . . . Image Co mposi ting . . . . . . . . Mechanisms for Image Stot"age Special Effects with Images Summary Exercises

CHAPTER 18 ADVANCED RASTER GRAPHICS ARCHITECTURE

18 .1 18 .2 18 .3 18 .4 18.5 18.6 UI. ? 18.8 18.9 18 .10 18. I I 18 .1 2

S imple Raster-Display System Display-PT()(.'O.<;S01" Systems S tandard G raphics Pipeline Introduction to Multiprocessing . Pipeline Front-End Architectures

· . . . . . . . . . . . . . . . . . .

Parallcl Front-End Architec tures Muhiprocessor Rastt:rization Architectures Image-Parallel RasterizatiOfl Object·Parallel RasterjzatiO£! Hybrid ·Parallel Ra.~terization

Enhanced Display Capabilit ies Sum m llr y Exercises .. .. . . . .

CHAPTER 19 ADVANCED GEOMETRIC AND RASTER ALGORITHMS

J 9. I 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 19 .1 0

Clipping. . . . . . . . . . Scan-Converting Primitives Anlialiasing . . . . . . . . . . . . . . The Special Problems of Text Filling Algot"ith.ms . . . . . . ... . . • . . . Making copyPixel Fast . . .. . . . . . . . .. . . .•• • . The Shape Data Struc ture and Shape Algebrs. . . . • . .. Managing Wind~ with bitSlt . . . • • . . •. • . . . . Pugc-Dcscrip tio n Languages . . . . .... . • . ••. • . . . • .. . S ummary . . . . . . . • . . • . . . . . . . Exercises

85S

"'6 861 866 873 877 880 882 .. 7 ..., 9()2

9()7

920 920

923

924 945 965 976 979 986 992 996 998

. . 1006

. . 1006

Page 15: Coputer Graphics Principles and Practices

Contents xxi

CHAPTER 20 ADVANCED MODELING TECHNIQUES 1011

W . I 20.2 20.3 20.4 20.' 20.6 20.7 20 .1i W .9 20. 10

EXlensions of Previous Techniques . . . . • • • . . • • • . . . . . . . 1012 Prucedur.!.l Model~ ... . . . Fractal Models . . . . .. .. .

. . . . . . . . . . . . . . . . . . . 10 18 . . . . . . • • • • • • • • • • . . . . . . . 1020

Grammar-Based Models · . 1027 Particle Systems .... . . . . . . . . . · . 1031 Volume Rendering . . ... .. . . ...... ... . . . . . . . • . . . . . 1034 Physically Based Modeling . . . . . .. ... . Special Models for Natural and Synlhelie Objecl'i AUlomaling Object Placement ...... . . . . . Summary .... _ .... . . Exercises ... . ... . . ... .. . . • . . . . . .

· . . . . . . . . . . 1 039 · . . • . . . . . . . . . 1043 · . . . . . . . . . . . . 1050

. . . • • • • • . • . . 10.54

. . . . . . . • . . . . . . . 10.54

CHAPTER 21 ANIMATION 1057

21.1 21.2 21. 3 21.4 2L5 21:6

Conventional and Compuler.Assisted Animation Animation Langu:lges . _ .. , . . ........ . . Methods uf C untrolfing Animation •..... . .. Basic Rul~ of Animalion • . .... . .. • .. • .. Probiems Peculiar to Animat ion Summary . . . .. E"ercises

. . . . . . . . . . . . . . . . . . . . . . .

APPENDIX: MATHEMATICS FOR COMPUTER GRAPHICS

· . J058 . 1065 . 1070 . 1017 . 1078 . lOBO

· . 1080

1083

A. I Vector Spaces and Affine Spaces ........ . ... . . ..... . . . 1083 A.2 Some Standard Constructions in VectOf Spaces ...... . .. .. .. 1091 A .3 Dot Producls and Distances . . .. ......... ..... . • ... .... . 1094 A .4 Mau-iccs .......... .. . ... . . . . . . . . .. . •...• . . .. . 1103 A.S Linear and Affine Transfonnations .. , . .....•. . • . . •... • . . . .. 11 06 A.6 Eigenvalues and Eigenvector'S . ...... . . .• . .• ...... . ... . . IIOS A.7 Newlon-Raphson ileration for Root Finding .. •.. . . • . •. . . . . , .. 1109

Exercis.!S . . . . . . . . . . . . . . . . . . .. . . . • . . . .. . . . . . . . 1111

BIBLIOGRAPHY 1113

INDEX 1 153

Page 16: Coputer Graphics Principles and Practices

1 Introduction

Computer graphics started with the display of data on hardcopy plotters and calhcxle ray tube (CRT) screens soon after the introduction of computers themselves. It has grown to include the creation, storage, and manipulation of models and images of objects. These: models come from a diverse and expanding set of fieJds, and include physical . mathemati­cal, engineering. architectural, and even conceptual (abstract) structures, natural phenome­na, and so on . Computer graphics today is largely inleractiw: The user controls the contents, structure. and appearance of objects and of their displayed images by using input devices, such as a keyboard. mouse, or touch-sensitive panel on the screen. Because of the cJ~ relationship betv.een the input devices and the display, the handling of such devices is included in L~ study of computes" graphics.

Until the early 1980s, computer grdphics was a small , specialized field. largely because the hardware was expensive and graphics-based applicatiOll programs that were easy to use and cost-effective were fe'IN. Then . personal computers with buill-in raster graphics displays---such as tile Xerox Star and , later, tne m~-produced . e<.oen less expensive Apple Macintosh and the IBM PC and its c1ones---popularized the use of hirmap graphics for user-computer interaction. A bitmap is a ones and zeros Icpiesentation of Ihe rectangular amty of points (piMls or pels, short for "picture efemenls") on the screen. Once bitmap grapflics became affordable, an explosion of easy-to-use and inexpensi"'C graphics-based applications soon followed. Ciraphicllo_bMC'".d \JOIIer intrrfac.e§ all~,d millions of new users 10

control simple, Jow-cost application programs, such as spreadsheets, word processors, and drawing programs.

The concept of a "desktop" nO'W became a popular metaphor for organizing screen space. By means of a windmt.. tlWlUlger, the user could create, position, and resize

,

Page 17: Coputer Graphics Principles and Practices

2 Introduction

reClaOiutar .screen areas. called windows. mat !iCled as vinual gl"3phics terminals. eadl

running ao application. This allowed users to switch among multiple acrivities just by pointi ng atttle desired window. typically with the mouse. Like pieces of papeT o n a messy desk. wind~ could overlap arbi trarily. Also part of this desktop metaphor .... -ere displays of icons that ~oted oat j us t data files and application programs, but also common office objects . such as file cabinets, mailboxes, printers, and trashcans, thai pcrfonned the computef--<lperalion equivalents of tht'ir real-life coumerpartS . Dir«t manipulation of objects via " poin,ing and diddng" replaced much of ,he ' yping of the arcane: commands used in earlier Optrdting systems Ind computer applications. Thus. users could select icons to activate the corresponding programs or objects. or selen huttons on pul l-down or pop-up screen menus 10 makt! choices. Today, almost all interactive application programs. even tl'tose for manipulating tcU (e .g .. 'M>rd pnx:essors) or nunJerical data (t:.g .. spreadsheel programs), use graphics extensively in the user imerface and for visualizing and manipulating the application-specific obje(:ts. Graphical interaction via raster displays (displays using bi 'maps) has replaced most teJI:tuaJ interaction with alphanumeric lenninaL<; .

Even people who do not use computers in their daily work encounter computer graphics in television commercials and as cinematic spcdal effects. Computcr graphics is no longer a rarity. It is an integral part of all computer user interfa«:S, and is indispensable for visual izing IWI.)o-dimensionai (20 ), three-dimell5ional (3D), and higher-dimen.s>Onal ob;ects: Ateali a~ diverse as education, science, engineering. medicine, commerce , the military. advertising, and entertainment all rdy on computer graphics. Learning hov.' to program and u:r.e computers J>OW includes learning how to use simple 2D grdphk~ as a maner of routine.

1 ,1 IMAGE PROCESSING AS PICTURE ANALYSIS

Computer graphic~ ClKM;ell\S .he picmrial synthesis of reaJ 01' imaginary object~ from their compu!C1"-based models, wherellS the related field of i'IWge prO«:SJi'l8 (abo called piC:IIUt' pf'C.lCeuing) trea ts the convasc process: the analysis of scenes , o r t~ reconstruction of models of 2D or 3D objects from their pictures . PiclUre analysis is important in mall)' arenH.~ : aerial surveillance phocographs, slow-SC'.ln telev:isi()(J images of the moon nr of plane ts gathered from space probe:.. television im::lge!i taken from an industrial robot's "eye." chromosome scans. X-11I)' images. computer;1.ed axial tomography (CAT) scans, and fingerprint analysis all exploit image-processing technology (see Color Plate 1.1).

Image processing has the subareas ilfUlgt' ellh""cement. pultern tktection and recognition, and scene analysis and computer vi~·ion . Image enhancement deals with improving image quali ty by eliminating noise (eJl traneous or missing pixel data) or by enhandng contrast. PaUern detection and recognition deal with detecting and clarifying standard po.llcrns and fi nding deviations (dis tortions) (rom these patteTnli . A particuhuly importanT eJtample ll. optical chantcler recognition (OCR) technology . which aJlows for the cc()(Jomical hulk input of pages of typeset, typewrmen. or even handprinted characters. Scene analysis and computer vision allQ\\l scientists to recognize and reconstruct a 3D model of a scene from ~\'eral 2D irn:lge5. An example is an industrial robot sensing thc relative !oizcs. shapc.-. positions. and colors of paTt:l on a convoeyoc bell.

Page 18: Coputer Graphics Principles and Practices

1.2 The Advant.g8s of Interactive Graphics 3

AllbouJh both compulCT ,graphics and imoge ptQCC$5ing deal with compu.lee proc~in8 o f pictures . lhey have unt il recenlly been quite separate disc~plines . _ Now ~hal they ~h u~ raster displays. h~r. the overlap bct'NCen the two is growmg. ItS IS particularly eVident In two aJea.S. First, in interactive image processing. human input via menus and otller graphical \ntenCUon tcchniquC& helps to control wrious subprocesses while lransfo.-ma­ltons of continuous-tone images are shown 00 the screen in real time . For example , scanned-in photographs arc eicctronically lOuche<! up, cropped. and canbined with others (even w ith synthetically generated images) before publication. Second . simple image. pr'OCt:5Sing opentions are often used in computer graphics to help synthe!iize (he image of a model . Cenain ways of transforming and combining synthet ic images depend lal1:c:ly on image-proce$Sing opnattuns.

1.2 THE ADVANTAGES OF INTERACTlVE GRAPHICS

G11Iphics provides one of the most natural means of communicating wim a computer. since our highly dcvdoped 20 and 3D paltem-l'C'JOO8nition abilities a11O'N us to perceive and process pictorial data rapidly and e ffic iently . In many design, implementation, and construction processes today, the infoonation piccurt:s can give is virtually indispensable . Scientific visualization becKme an imponant field in the late 199Os. when scientists and enjiDeCrS realized that they could DOt interpret the prodiBiow quantiTies of dara produced in supercompulef'runs wilhoot summarizing the data and h ighlighting trc:Dds and phellOfllena in various kinds of graphical representarions.

Crell(ing and reproducing pictures, h~r. presented technical problems that STood in the w;ry of their widespread use. Thus , the ancient Chinese proverb • ' a piclUre: is wonh len thousand ~ .. became a c1~ in our society only after the ~t of i~pensive and simple technology fOf produci"l p ictures--first the printing press. then photography.

IntenlC1rvc computer graphics is the most imponant means of prodocing p ictures ~ince the inventiOfl of pnolOgT.Rphy and television; il hjls the added advantage Ih:ll , wilh lhe computer, we can make pictures n()( only of concrete, "real-world" objects but also of abstract. syNhetic objeCtS, such as mathematkal surfaces in 40 (see ruor Plates LJ and 104), and of data that have no inherent geometry. such Il.<; survey results . Funhermore, we are not confined to static images . Althoug~ static pictures are a good means uf communicating infonnation , dynamically varying pictures are frequently even better-to coin a phraK. a maving picture is YoQfth len lhousand static QflCS . This is especially true for time-varyil18 phenomena, both real (e .g. , the deflection of an aircraft .... ing in supersonic flighl, or the development of a human face from childhood through o.\d age) and abstract (e. g., growth trends , such as IlUClear energy use in the United States or population rnmoement from cit ies to s uburbs and back to the cities). Thus. a movie can show changes over lime more graphicaJly than can a sequence of sl ides . Similarly , a sequenre of frames displayed on a scrt:c:n at more than IS frames per second can convey smooth rfIO(ion or changing form better than can a jerky sequence, wilh several seconds between individual frames. n,e use of dynamics is especially effective when the user can control the animation by adjusting the speed . lhe portion of the to tal scene in view. the amount or detail shown , Ihe geometric relationship of the objects in the s«ne to OflC another. and so on. Much DC

Page 19: Coputer Graphics Principles and Practices

4 Introduction

inleractivo: g~phics le(:hnology lherdon: contains hardware: and .!oOft'Wal'e for user· cootrolled fl'IO{ion dynamics and update dynamics.

With fTUJlion dynamics, objects can be moved and tumbled with respect to a stationary observer. The objects can also remain statKmary and the vi~r can move: around them. pan to '!elect the portion in view . and zoom in or out fOI more or less delail, as though looking through the viewfinder of a rapidly mO'iing video camera. In many cases . both the objects and the camera are moving. A typal example is dle flight simulator (Coior Piales I.5a and 1.51», which combines II mechanical platfomt supporting a mock cockpit with display ~reens for windows. Computers conlrol platfonn mOlton, gauges. and the simulated ~rld of Doth stationary and moving oojects throtlgh which the pilo( navigates. These multimill ion-dollar systems trolin pilOlS by IcUing the pilotsllUlneuYet a simulated craft over a simulated 3D landscape And around simulated vehicles . Much simpler flisht simulaton are among the most popular game!; on personal computers and workstations. Amusemenl parks abo offer "' motion·simulator"' rides through simui;ued terrestrial and exlralern::strial landscapes . Video arcade!i offer graphics-based dexterity games (see CoI« Plate 1.6) and racecar-driving simulators. video games exploiting jnteracti~ mo(ion dynamics: The pla~ can change speed and direct ion with the "gas pedal" and "steering wheel ," as tn::es, buildings, and other cars go whizzing by (5« CoJor Plate 1.7), Similarly, motion dynamics lets the user Hy around a nd through buildings. molecuks. and 3D or 40 mathcmattcal space . In anolhenype of motion dynamics . the "camera" is hekI fixed, and the objects in the scene are mO'lled relat iYC to it. For- example. a cornpJex mechanical linbge. such as the link.age on a steam engine . can be animated by movingor I"OUlting all the pieces appropriatdy.

Vpdult'dyl1LU1ljcS is the actual change of the shape, color. or other properties of the objects being vieo,o..oed. Rx- instance. a system can display the deformations of an airplane structure in ft ight or the Slate changes in I bkrl d iagram of a ·nuclear react« in res~ to the operat«'s manipulation of gotphical representations of the many contrOl mechanisms . l1le smoother the change. the more realistic and mellJlingful the result. Dynamic interactive !1raphics offer.; a l.aqte number of II!:er-controliabJe modes wilh whim 10 encode and communicate infonnation: (he 20 « 3D shape of objects. in a picture, their gray scale o r <."OIor. and tile: time variatio n. .. of these properties. With the recent development of d ig ital signal processing (DSP) and audio synthesis chips , audio feedback can now be provided to augment the graphical feedbad. and 10 make the simulated environment evc:n more realistic .

Interacti~ computer graphics tllus permiG extensive . high.blindwidlh UStt-<:omputcr inu:raction . This significantly enhances our ability 10 understand data. to perceive trends, and to visualize real or imaginary objects--indeed , to Create " vinual worlds" that \oW: can explore from arbitrary points of view (see Color Plates I.IS and 1.16). By making communication more efficient, graphtcs make; possmie higher-quality and mon: precise results or prodUCG. greater productivity. and Jower a~lysis and design cOsts .

' .3 REPRESENTATIVE USES OF COMPUTER GRAPHICS

Computer graphics is used today in many different areas of industry . business . govemment. cducatiorr . elltettainmcnl . and . most recently. the home . The list of a~ications is

Page 20: Coputer Graphics Principles and Practices

1.3 • C~ and ;s growing rapidly as computers with graphtcS capabililja become

commodity products . Let's look at a representative sample of these areas .

• U~r mUrfaca. As we menooned. most apphcations that run on personal computers and 'AOf'kstalions, and even those thai run on temlinais attached to time·shared computers and netYoOItt compute servers. !lave user interfaces tboat my on desklop win60w systems to manage mul~le sjml.tltaneous activities. and on point-and-clidt facilities 10 allO'N users 10 select mcoo items, icons, and objects on the SCf'CM; typing is necessary only 10 inpulI.MI10 be stored and manipula1ed. "Mxd_ptOCess:ing. spreadsheet. 8M deo;:klop-publishing pro­grams ~ typical applications that take advantage of such user·interface techniques. The authors of Ihis book used 5UCh prognuns 00 create both the text and the figures; then, the publisher and meir COnttaclOf'S produced the book using similar rypc:setling and drawing ""'_. • (JfJlertlclj~, plotting in bu.ri~s.J. sciel'JCl!. and udrn%gy. The /lCI(1 most common use of a,raphicfl today is prob.ably to crute 20 W>d 3D gnpiu of malhcmatical, physio;:al , anU eoofIOl1lic (unctions; hislOSrams, bar and pie charts; taSk_schedul ing charts: in'Yefltory and prodUC1ion charts; and the like. AlIlhese are used 10 present meaningfully and concisdy the trends and patterns gleaned from data, so as to clarify complex phenomena and to facilitate infomxd decis;cm making.

• Offiu OMIomoJion and 1!/«tTOl'lic pJJJJi.Jhing. 1be use of gntphics for the creation and dissc:minadon of information has increased enormously since the advent of desktop publishing ~ persona.I oomputers. Many organilJllions whose publications used to be printed by OIJtsidc sptICialisfS call now produce printed materials inoouse. Office aLHoma~ tion and electronic publishing can produce both traditional printed (hardcopy) documents and electronic (softcopy) documents that oontain Ittl, tables, graphs, and other forms of drawn or scanned-in gnptJics. Hypermedia systCO\S thai: allow broYtIsina of networks of Interlinked multimedia OOc:uments an: proliferating (see Color Plate 1.2). • Computer-aUkd cbrJ/ritrJ( and design. In computer~akIed design (CAn). interactive graphiC5 is used to design components and S)'l'tem5 of mecbanicaJ, electrical . electrome­chanical, al'd electronk devices, including stJ"uCt\Ua sud! as buildings, automobile bodies, ai1"plane and ship huJls, very Large~scale-intcgrated (VlSI) dtips , optical systems. and telephone and computeT networks. Sometimes. the user merely wants 10 produce the Pfl'clse drawings of componentS and assemblies, as fOl" online drafting or architectural blueprinlS. Color Plate: 1.8 shows an example of such a 3D design program, intended fot nonprofession­als: a "CU5tomiu)QUI own patio declc." program used in lumber yards. Mote frequenlly . ~. the emphasis is on interacting with a computer"~based modd of the component or system beinS designed in order to test, for example. its struclul":II.i, dcclrical. or thermal properties. Often. the m<Xlcl is intefpreted by a simulator that feeds back the behaYior of lhe system to the user fOl" funl1er inteJ1lClive design and ICSt C)'CJes . Afta" 'objects hIM; been dcs.igncd . uti lity programs can POSI~ the design database to make pans lists. 10 process "bills of materials," to define numerical oontrol tapes for cutting or drilling partS, and so on.

• S;mll.kuiOll and alJimtJtion for scif!lIlijic visu.aJ.izario1t and f!nurrainmf!nt. Computer­prodlJC'ed om;IIUlled movies and dUplays of the time~varying behavior of real "" sirnullllcd

Page 21: Coputer Graphics Principles and Practices
Page 22: Coputer Graphics Principles and Practices
Page 23: Coputer Graphics Principles and Practices

8 IntTCxh,n;:tion

c'\lI.mplc, the representation of (he chip's geometry pmdUCc.<; OlItpm hcyon<1 rh e riCfure

itse lf. In foct. the geometry shown on me screen may contain it!3.f detail than the ultderlying database.

A final categorization arises from the logical and temporal relatiOlfShip bet_cn ubjects afld their pictures. The user- may deal , for examp lc, with only one picture at a time ( typiCdl in plo tting). with a time-varying sequence of related pictures (ItS in motion or update dy namics). or wi lh a structured colkction of objects (as in many CAD applications that contain hierarchic; of asscmbl) and subassembly drawings).

1.6 DEVELOPMENT OF HARDWARE AND SOFTWARE FOR COMPUTER GRAPH'CS

This book concenlfates on f undamental principle:. .nd techniques that were derived in the past and are STill applicable today-and Jl;Cnerally will be applicable in the future. In this section, .... oe take a brief look at tnc nistorical development of '-'OOlputer graphics, to place today's �y.>tems in context. Fuller treamlCnts of the interesling evolution of this field are presented in (PRIN71], [MACH78J. [CHAS81 J. and [CACM84j. It is easier 10 chronicle The evolmion of hardware than 10 document that of softwarc, since hardware evolution has had a �lI.tcr influence on how lhe ficld devtloped. Thus, � begin with hardware.

Crude plotting on hardcopy device; such as telelYpes and line prime� dates {rom the early days of compUling. "The Whirlwind Computer developed in 1950 at the: Massachusclts In;;tilUtc of Tochnutogy (MIT) had wmpute.'-driven CRT displays for output, bot h for operator use and for cameras produ cing hrudcopy. 1be SAGE air-dcfcnse syste m developed in the mKfdle 1950s was the first to usc command and control CRT display consol es on which OpcralOfS idenlified targetS with light pens (hllIld-held pointing devices that sense light emitted hy objects on the SCrttn). The beginnings of tIlOIkrn interactive graphics, �"eJ. are found in Ivan Sutherland's seminal doctoral 'Mlrk on the Sketchpad drawing 'iys;tem [SU1li63). He introduced dDUl struc'u� for storing symbol hiela.dli� wih up via easy repli cation of Standard components. a techniquc akin to the u.se of pi.aslic templates for draw ing circuit symbols. He also develo ped mlentccion tochniques that used Ihe keyboard and light pt'n for making choices, pointing, and drawing, and fOCraJ.lated many Olhcr fundamental ideas and techniques still in usc: today. Indeed, many of the features iDlroduced in Sketchpad a� found in the: PHIGS grldphics pad;age discussed in Cnaptcr 7.

At the same t ime , iT \\o"a.5 becoming clear to computer, automobile. and acrospace manufacturers that CAD and computer-aided manufacturing (CAM) activities had cnor­mous pott:ntial for automating drafting and other drawing-intensive acti .... ities. The General Motors PAC sySlem [JACK64) for automobile design, and the Itel. Digitek system (CHASKI j for lens design, we� pioneering etr()fts that showed the utilit)' of graphical interaction in the iterali\'c design cycles common in cngineering. By the mid-siltlies. a number of research projects and commerdal products had appeared.

Since at thai timc computer inpulloutput (110) was done primarily in batch modt: usin.£: punched cards, hopes were high fnf;1 breakthrough in interactive user-computcr communi­cation. ImerdCtfve graphics. as "the wiooow on the computer." wa� lO be an integral part of vastly accclCTated interactivoe �ign cyclt::l. The results .... ere nOl nearly so dramatic,

Page 24: Coputer Graphics Principles and Practices

1.' • hc/'W'eYer .... inr:c mlc...crive graphics remained bl;:yund the n:::;uun.:g; vf 1Il1 u..l the mOM technology· intensive organization!>. Among the reasons fOf Ihis v.c'e lhoe:

• The high cO.n of me graphics hard .... 'are, when produced without benefit o f economies of ~ale-~I a time when automobi les eO$I a few thousand dollars. computers cost several millio ns of uullars, and the first commercial oomputa displays cost more than a hundred lhou~and dollars

• The o.eed fo r targe-scaie. expensive computin..t rtsourr:es to suppon massive design datOibiiscs . interaclive picture manipulal iOil. and the Iypically large suile o f postproceSSing programs wh~ input came from the graphics-design phase

• 10Ie dijJic"lly oj wriling large . i flleroctive programs fo r the fle'oOo' time·sharing environ­ment at it lime wnen both graphics and inlCr;Krion were new 10 predominantly batch­orie nted FORTRAN programmers

• O"~-(>f-<>·k;nd. n<H1porwbf .. soft,<J{u~ . typically writte n for:a particular m anuf:lClUrer' 5 display device and produced wiloom Ihe bene!h of modem software-engineering principles for bu ilding modular, structured systems: when software j l> nOJlportable, moving 10 new display devices necessitat.!s expellSive and l imc:--c(lnsuming rewril ing of W(JI'king programs .

II was t!'le advent of graphks-based penonal computers . such a.~ the Applt: Macintosh ami the IBM PC, that finally drove down the CO'>ts of both hardware and software so dramalically Ina, millions of grnphics computers wo-e sold it.'> ·'lI.pplia nl.:-es '· for o ffice and home: .... hen the field started in the euly sixl ies, iu prnclil iollers never dreamed that peno nal COlllpUU:r.. featuring !p"illphk,d inu:nK:lion \TIOUld become so o.'Ommon so soon.

1 .5 .1 Output TechnCJk)gy

The .l i"l>IH}, devkes developed in the mid·silltie$ and in common use until tm mid~ightte. :lie called l 'l!ctO'. srroice, line dro""'lng , Of callw,aphir displays. The: term l '«:tor is used as a synonym for line here; a slroke is a l>hort line, and eharact<:n an:: mad(: of $CQuences of such strokeS . We 6hall look briefly at veCtor-sYStem :uchitectu~, because many modern raster graphiCS sysu:rno; use similar lethniques , A typical vector system consists o f a display processor connected a.~ an liD peripheral to the central processing W1i t (CPU), a display buffer memo!)" and a CRT . The buffer stores the computer-produced display Ii.fl or display program: it contains poinl- and line-plocling commands with (x. y) o r (x , y , =) endpoint coord inates. as well as character-plotting commands, Figure 1. 1 shows a typical vector architectore; the display 1h,1 in memory is shown as a symbolic representation 0( the output commands and their ( .... y) o r charHcter values.

The commands for plotting points. lines , and challlCten are interpreced by the display processor. It sends d igi tal and point coordinates to a l'ector gen~,ato, that convertS the digital coordinate values to analog \Qltagcs for beam-deflection circuits that d isplace an eieclron beam writ ing on the CRrs phosphor COAting (the details are given in Cnapl:er 4). The essence of a vector system is thai the beam is deflected from eudpoinllo endpoint, as dicta ted by tbe arbitrary order of (he display commands; this technique is called randam sam. (Laser shows also use random·scatl dettectio n of the laser beam.) Since the light output of Ihe phospho!-" decays in lens or a t most hundreds of microseconds , the d isplay

Page 25: Coputer Graphics Principles and Practices

10 Intl"OducUon

.... -,

. I

"""" ,. .. UNO ..., ,..

CHAR Co

t..il.

I I I I I I I I I

Refresh bull ..

lr'llef'face with hosI computer

I + (DIsplay commands) (tnleracllOn~)

t I De, t i ad! 'I (fX<)

Fig . ' . 1 Architecture of a vector displaV.

processor must c ycle throug h the display list to refresh the phosphor at k:ast )0 times per second (30 til) to !{Void fl icker; hence. the buffer holding the display list is u~ull.lly called a nfrrsh buJ/rr. Note Ihat . in Fig. 1.1. the jump imlruction loops back to lhe top of the disptay list 10 provide the cydic refresh .

In the Silllics, buffe r mClllOf)' and processors fast enough to refresh al (al least) 30 Hz ~ c)I;pensi'I.<C , and only n few thousand lines could be shown without notk:eable: flicker . Then. in the: late sixties. the direct-view storage: tube (OVST) obviated bt.Jth the buffer and the refresh proces!'., and e:lilninated all fl icker. This was the vital step in making interact ive graphics affordabJe. A OVST stores an image by wriling that image once: with a relatively slow-moving electron beam on a storage mesh in v.bich the phosphor is embedded. The small, self-sufficient DVST tenninaf wa~ an order of magnitude less expensiYC than was the typical refresh ~')'Stem ; funher'. it was ideal for a Jaw-speed (3()()' toJ200-baud) telephone interface to time.shaTing systems. DVST tenninals introduced many lISe1$ and prognun. mers to interactive g raphics.

Another major harclware advance of the lale sixties was. attaching the display to a minicomputer. with this configuration. the cemral lime-l;luicing compUIc:r was relieved of the heavy demands of refreshed display devi~, especially user-interaction handling, and updating the: image on the screen. TIle minicomp4Jl~ typically ran applicatton programs as

Page 26: Coputer Graphics Principles and Practices

1.' Oe",e~mlH1t of Hardware and Software for Computer Graphica 11

well. and could In turn be conn«lecI 10 the larger centra! mainframe 10 om large analYSIS progl1lmS. Both minicomputer- and DVST configurations led 10 installations of thousands of graphics sr--'cms. Also at Ihis lime, the hardware of the display ~r itself was becoming more sophisticated, laking OYCI" many routine but time-con'Wming jobs from the graphics sorlwarc . Foremost .. mong !'oUch Ocvlces was the invcntiOfl in 1968 of refresh display hardware tor geometric transformations thai could scale . f()(ale, and translate points and Jines on the scn:en in realtime , could perform 2D and 3D cl ipping , and could produce paralle! and penpeclivc project ions (sa: Chapter 6).

The dC'odopment in the early seventies of inexpensiw:: raster graphiC!>, based Of!

tclevis ion technology. contributed more 10 the growth of the fidd than did any ocher technology. ROSier displays 51Ofc: the display primiriws (such as line!!, cfJanlcters, and solidly shaded or paucrncd are~s) in a refresh buffer in tCfTrlli of their component pixels, as shown in Fig. 1.2 . In some rJ.ster d is plays. there is a hardware display controller that receives and in terprel$ .o;cquenceso( output commands similar to those of the vccu:,.. d i~ ( as shown in the figure) : in simpler. mon: common systems . such as those in personal computers . the display contro ller exists only as a softwan: component of the graphics library package, and the refmlt buft'er is just a P}ece of the CPU's memory thftt can be read oot by the image display sub~ystem (often called the video cOnlroller) that produces the: acrual image on the >;creen.

The complete image on a ruter display is formed from the rasrt!T , which is a sel of horiumtai nult!T Jint!S, each a rOW of irxiividual pixds: the raster is thus stored as a mam!!; of pixels reprr.senling the entire screen area. The entire image is scanned out sequentially by

~"",,"'Iks

AelrMh buffer

Fig . 1 .2 .A.rchilectlffe of a r§ter displa ... .

Page 27: Coputer Graphics Principles and Practices

12 Introduction

The video controller, 011e ra!'ter line at a time. from top to oo!(om and then hack to The lOp (liS shQWll in Fig . 1.3). At each pi lle!' the: beam'§ inte nsity is set to reflect the p ixel's intensity; in color systems, three beams are conlro!led---one each for the red, green, and blue primal) col~!' ~pcdfied by the three color components o f each pixel's value (S« C hapters 4 and 13). F igure 1.4 sh(JW.~ The d itfe:n:oce bel .... '!,!en random and rasler S(;an [or db'playing a simple 20 line drawing of iI huuJ;C (part a), In part (b) , the vectOf' arcs are notated wilh arrowheads :,oClwin,s tOe random deflection of lhe be»m . [)o u l!d lines denote deflection of the beam, which is nnt turncd on ( ' 'blanked' ' ), so Ihal J)<) WlCtor i:. drawn. Part (e) YlOWS the unfill ed hou~ rendered by reclangles, polygon~ , and arcs, whereas pari hI) shows a tilled version . Note the jagged appearance of the lines and arcs in the r<lStc r scan ima!;c:o; of parts (c) and (d); we shall discu~s that vi:rual ilrlifaci Short ly.

In the carly days of rUSler graphic:., T<;frc:;h ing ~ dOlle al to;;levj"it)(l ru les o f 30 Hz; loday , I16()..Hz o r higher refresh rale is used 10 aVOid flic keri ng o f the image::. Whereas in a veCtor system the: refresh buffer stored op-codes and endpoint coordinale values, in a raster sysrem the:: e ntire image of, say, 1024 line:. of 1024 pixeh each , IT'IUST be stored aplicitly , The tcnn bitmap is .'iti J1 in common lJ."-C to descr ibe both the refresh bufler and the arr.ty oi pixel values Ih at map o ne fo r one to p ixel.-; o n Ihe screen. Bitmap graphics has the <!dV',mtage over \/OClo r graphic!. thil t Ihe aClUal display of Ihc image i ~ handled by inexpen.'iIVe scan-out logic: The regular , repet; l i~~ ra~tec scan i~ far ~a~ier arxl lcss expensive lu implement than is the random scan of vecTOr l"yMems, whose veCtor generators must he highly acc Urd,le 10 provide:: linearity and h::pcaUibil ily of the beam '" deflet: lion.

The avaibbihty of inc)(pensive wlid-state random-accc::ss memory (RAM) for b itmaps in the early >e\>entics wa$ the breakth rough needed to make raster graphics the: dominant hardware tcchnology , Bllcvel (also called m<mochrome) CRT~ draw images in black and v.'hite o r bJad.. and grccn; some plas ma panels use o rang.: and black. Bilevcl bitmaps contain a single bi t per pixel. and the entire bi tmap for a screen with a R'soJulion of 1024 by 1024 piKds is only 220 bits, t)C ahout 128,000 byles. Low-end color sy.'items have 8 bits per piM:l . :dlo)Wing 256 color~ simul(.;l.neow;Jy: mOre t'llpen.o;ive systems M Y</: 24 bits per p.x<:I,

Honzontal ral1ace

'"'to"'" r----;::.==~::;; . . :;;::::. ~-I '",, ___ ---- ,...c.. -----­.. - -­-r-C=-

" -----_ .... ----_lo. ... ---- --""

Fig, 1 .3 Raster Kan .

,

Page 28: Coputer Graphics Principles and Practices

, .5 Development of H.n:tware and Softwant for Computer Graphics

'"

o (a) IdeaI l joe dTawing

.:( .. -.....

• • _.. --i:; 1 ,

o •

(e) Raster scan WIth outline pnmrtoves

, , ,

,

(b) Vector scan

(d) Raster scan li'lfith filled primitives

'3

Fig. 1.4 Random scan versus raster scan . We symbolize the screen as a rounded rer-tangle filled with a light gray shada that denotes tt>e white background; the imag" is drawn in black on this background.

allowing a choice of any of 16 million colors; and refresh buffers with 32 bits per pixel . and screen resolut ion of 1280 by 1024 pixels are available even on personal computers . Of the 32 bit.<;, 24 bits arc devoted to represeming color, and 8 to control purposes , as discus~d in Chapter 4. Beyond Ihat , buffe rs with 96 bits (~more) per pixel ' are ;wailable at 1280 by 1024 resolution on the high-end systems discussed in Chapler 18 . A typical 1280 by 1024 cotor system with 24 bits per pixel requires 3.75 MB of RAM-inexpensive by today ' s standards. The term bitmap. strictly speaking, applies only to I-bit·per-pixel bilevcl systems; fOT multiph::-bil-per-pixel systems, we use the more genernJ term pumap (short for pixel map) . Since pumap in common parlance refe", both to the contentli of the refresh

'Of ~ 96 be.., typically 64 bi ... are used for two 3:l·blt color·and·control buffers to 3.llow timJJl,·bujfmng of two images: while one image is being refreshed, the second one is being updated. The remaining 32·bit buffer is used to implement a DarowaR technique called z-bllffering , used 10 do vis.ible·sl>rface detenninalion for creating realistic 3D images (sec Chapters 14 and 15).

Page 29: Coputer Graphics Principles and Practices

14 IntrOduction

buff~r lind 10 the buffer memory irsc: lf, "'"e use the lerm frame bUJlf!f when we mean the

ac1ual buff"r mt:'mory. T he m;;,jor advantages of ras1er graphics over vector gl"llphil;S include lower cost and the

ability to display arr:as fill ed with :<;olid c nloTS or patteTn.~. an especially ,.ich means of communicating informatioo that is C5'iCntia l for realistk images of 3D objects. Further­more , the refresh process is independent of the cQmpl~ity (number of polygons . etc.) of the image. since the hardW"dre is fa.~t enQUgh that each pixel in the buffer ca n be fCad ovt on each refre$h cyde. Most people do nol pel"l:"eive flicker on screens refre.med abovt:: 70 Hz. In comrast, vector displays n icker when the numbe" of primiti~ in the buffer becomes too huge; typically a maximum of a few hundre-d thousand short vecton. may be d i.~"p1a)'ed

flkker· free . The majoc disadvantage o f rd~ter ~)'''tem.~ coolJarcd to vector systems arises from the

discrete nalun: of the pille! rcpresenl3lion . First, primitives sud1 as lines and polygons are specified in tenru. of their endpoints (vertices) and must be . ..can-<'<"Inw.rted into their component pixels in the frdrnc buffer . The tenn derives from the notion that the programmer specifi es endpoint or vertex coordinatc.~ in random-scan mode. and thi~

information must be reduced by the system to piJrels for raster-sean-mode display. Sean conversion IS commonly done with soft wan: in pefliiOnal computers a nd low~nd work­Mal ions. where the microproxessor CPU j ~ responsible flK all graphics. For higher performance , scan L'Onversion can be done by spo,:ial-purpose hardware . includ ing fasUr

image procnsor (RIP) chips used as coprocessors 01" accelerators. Because e<w;h primitive must be scan·convened. real-time d)'llamic,; is far more

computat)onally demanding on raste r sy"tems than on vector systerm. Fir.;!. transformil18. 1000 lines 00 a veclOT system can mean 1r.:lOs form ing 2000 endpoinls in the wor.>t ~. In the flC( t refresh c)'Cle. the v=tor·gc:nerator hardware aUlOmatically redlTNS the transfo rmed lines in their new flOl'itions. In a rasler system. however, not only must the endpoints be transformed ( using hardware transformation units ident ical to Ihose used by vectOf sy""cm:s) , but abo each transformed P'fimitive mUM lltell be ijUl"-<.:unYo:n~ Wiing its new

endpoinls, which define its new sile and 1X)~i lion . None of the content~ of Ihe frame buffer can be salvaged. When the CPU i.~ responsible for both e ndpoint trnnsfonnation and scan conw.rsion, only a small number of primitives can be transf()("rned in real time. Tr:msformalion and scan-.conversiUfl hardW"dre is thus needed for dynamics in raster sy~tems; as 1I result of steady progr~) In VLS I, rhal ha.<; become feasible even in low-end s)'$lems.

The s«ortd dmwback of raster ~ystems arises rrom the nature of the raster itselr. Whereas 3 \"eC[(){" system 010 draw a cont inuous. )mooth line (and .:Yen some mtooth curves) from essentially any point on 1he CRT face to any o ther, the raSler s~lem can display mathematically smoo<h lines. polygons. and boundari~ of curved primit ives such as circle:; and ellipses only by approximating lhem wi th pixels on the raster grid. This can cause the ramiliar problem or "iaggies" or · ·slai rca~ing . " as shown in Fig . 1.4 (c) a nd {d) . This vlsUlIi artifact is a manitestalion of a sampling error called aliasinf? in signa l-proces.<;ing theory ; such artifaL"1~ occur when a function o f a continuous variable (hat contain.~ sharp changes in intensity is appnn,imated with discrete samplts. Both theory and practic.:: ill mooern computer graphics an:: concerned with techniques for antlaliasing on

Page 30: Coputer Graphics Principles and Practices

1.5 Deveklpment of H..-dware and Softwat'e for Computer Graphics 15

g,.."'y -~t:alt: ur ,",..,Ior ;)Y:)icuz:;. Thc::.e h;:~lmilJuc~ ~jr)' g.ntdltliv .. :., iu jllt.:: .. :si!y of m:ighlJoriug pixels 3t edges of primitives. rather than setting pbds 10 maximum or zero in tensi ty only; see C hapters 3 , 14. and 19 for further d iscU5Sion of Ihis important topic .

, . 5 .2 Input TechnolosiY

Input technology has OIlso improved grcady over the years. 1lte clumsy, fragile: light pen of \~Ior sySlerns has been rep/actd by the ubiquitous mouse ( first ~d by office­Itutomation p ioneer Doug Engclban: in the- m id -sixties [ENGE68I) . the data table!, and the transparent. louch·sensitive panel moumed on the screen. Even fancier input devices that supply not just (x , y) IOCaIKln ... on the screen , but also 3D aOO even higner-dimensional input values (degrees of freedom), are becoming common, as discussed in Chapter 8. Audio communication also has excili flj! poIcnl ial , since il allows bands-free: input and natural output of simple instroctions. r~back. and so on . With the standard input devices. the user can specify operations or piCI\l1'e componcnl$ by typing or- d rawing new inrunnaliun o r by pointing to e;o;isting informatioo o n the screen . These internetions require no knowledge of programming and only a linle uyboard use: 'The user makes choices simpty by selecting menu buttons or icons, answers questions by checking options or typing a few characters in a foon, places copies of ~efin~ symbols on the screen, draws by indicatiflg consecutive endpoinlS to be connected by suaighl lino or interpolated by smoOlh cu~. paints by moYing the cursor over the screen . and fill s c losed areas bounded by polygons or paint contours with shades of gray , colon: . Of' vartous panerns.

, . 6 .3 Software Portability and Graphics Standards

Steady advances in hardware technology hiIYC thus made possible the! evolution of graphics displays from one-of-a-kind special output device.<:. to the standard human interface to 100 computer. We may well 'oW;)nder whether software has kept ~. For C[3ffiple . to what CIIlenT luIyc early difficulties with oYerly complex , cumbersome, tand expcrn.i...: g rllphics systems and lI~ication software been resolved? Many of these: difficulties arose from the primitive grapl)k~ ~oflwan::: thaI was available, and In general there has been a long. slow process of marur81ioJl in such soflware. We have mCM:d from low-level. devir:e-dl!peNil!nt packages supplied by manui'oclUTen for thei r particular display devtct:$ to nigher-level . devju-indl!~nd#!ru packages. 1'ho.e packages can driYC a wide variety o f display devices. (rom laser pi' inlers and plouers to fi lm recorders lind high-performance real-time displays, Tbe main purpose of using a device- independent package in conjunction with a n igh-level programming language is to promote application-program ponabilir),. This portability is provided in mudt lhe same way as a high-level , machine-independent language (such as FORTRAN . PucaJ. or C) provides ponability: by isolating the programmer from most machine peculiarities and providing lang uage features readily implemoJted on a broad range ofproccssors . ·· Progrnmmer ponability" is a lso enhanced in that programmers can now rnoYe from system to system, or even from installalion to installation , and find familiar software .

A generul awareness of the need for standards in sud! device-independent grapnk:s padcages arose in Ihe mid-se~nties and culminBt~ in a specification foe- a JD Cere

Page 31: Coputer Graphics Principles and Practices

, 6 IrnrDduetion

Gruphicl S)3um (the Cun: . rur :JKJrtl produced by iUl ACM SIGGRI\PH~ C ",,,,nilta: i ll 1977 IGSPC77] and fC'fined in 1979 {GSPC79j. The firsl three authors of Ihili book were ac tivel), in vol\.Ot!d in the design and documerllalion of the 1977 Core.

The C ore specificalion fulfill ed ;t$ inlended role as 3 baseline spedfication. NO( only did II have rnany impl.cmcutalion't , b UI alst) it WdS usr::d a.\ input 10 ufficial (guvemmelltal) ... t"ndar'ds projects within Ix)[h ANSI ( the American Nat ional Standards Ins titule) and ISO (the Irl tc rnaliO rlal Standards Orga nizatio n) . The fi nit graphics specificatio n to be o fficially ~tanda[(lrlecJ Wdli GKS (Ihe:: Grdphica l Kernd S)'!item [A NSI85b)) , 1111 elaborated. cleaned · up venion of the Core that. unlike tilt: Cure , ....... <; re.~tricted to 20. In 1988 , G KS-3D [TNTE881. a 3D eXlcnsion of G KS. becamr:: an o fficial stOlndanJ. a~ did a much mOf'e <;Op" i~li~'a l ed btu e~ n mon: l."Omplo grdph ics ~)'!item called PHIGS (Programmer' s Hie rdTChical Interac{ive Graphic s Sy<otem IA NS[88J) . GKS suppon.~ lhe grouping 01 logically rdatcd primiti\'es--such as Jines, polygons, and character sni ngs-and lheir alfribu l~ intl> cotlectiflfls l.-a lled :.q:me,lIs: these segment<; mlly not be nested. PHIGS. ~ it:!; name implies , does support nested hierarchical groupings of 3D primilives , called )/ru(;/ure.f. In PHIGS , all PTimiti\'e~. incl uding invocations of substructu~, Itf"e subject to !,'Comctric transformiitLons (S(:"al ing . rotalion. a nd tnm.slation) 10 accom plish dynamic movem enl . PH IGS also SUppoJb a retained dalabase of structures Ihalthe programmer may edit Sc!lectivo!ly; PHIGS automatically updates the screen whenever (he d:uabase has been altcn:d . PHIGS has been e;o; te nded wilh a scI of fe atures for modem . pscudorcaJistic rendering' of nbjccIs on raSler di~lays . Ihis extensmn is catled PHtGS .,.. IPHIG88] . PHIGS implementat ions are large packages. due to the many features and to the complexily of the specification. PHIGS and especially PHIGS+ rmplementations nan best when lhere is hard~-are support for their transformation . clippi ng , a nd rendering fe alures.

This book d iscus.-.e..~ graphics ~ftwarr: ... nmdards al some length . We first study SRGP n he Sim ple Ra.<;ter Gr.l.phics J';!ckage). wh ich borrow:<; featu~ rrom Apple 's popular QuickDrav.-· integer rm.1Cf graphICS packagc IROSE85) and MIT 's X Window Syste m rSCHE8&:'J lo r OUiput and from GKS and PHIGS for input. HlOving looked ;:o r s imple appl ications in this low-level llI~tef graphics package , wr: then study {tie SCltn-conversion ')IlQ clipping .. Igori thms sud! pac~ages use to generate Images of primili ... es in Ihe frame buffe r . Then. after building a mathematical foundation for 20 and 3D geomerric IransfOfTrnl tion~ ar.d for paraUel and perspective "i<!Wing in 3D. we study a far more powerful pad:age called SPHIGS (Simple PHIGS). SPHIGS is a subset o f PHIGS mat operalt'$ on primit ives defined in OJ floating-point. abslract . 3D world·coordinate system

'StGGRAPH r5 t/"le SpectallntCl"C:!iI Group on Gr..phic:s. ODe of the profCSlionaJ groups within ACM . the Assoctatiolo for Computing Madlinery . ACM is one of the {VoQ m¥n" professional soc~ties for OOmPUler profess.K>naI~; {be IEEE O.mpuler Society is the other. SIGGRAPH poblillhc:s • rcsea:"dl journal "nd ~pon.!oOf"S an annllal cvnfeTCnce tnPt fea(urcs ~tations of research papers in the field and an t<luipmenl c~ hibition. lbe Computet" Sooo.:icty .. I .... publil>hes & m;earchjoumal Ifl graphic~ .

'A pseuclO"-ali~ti<- nont"k"ring is one that simulalh the . imrle ["""" of opl'''' d,,"ribin& how light i:. ~flc("led by objeCI ~. Photorealistic renderin" uses bener apprOl<im~tions 10 tbe way objects rdlcel ~nd refract flil'll; lhesc ~ppro:<ima{ ions require more C"OIllpuLation but produc-e image~ thaI are more nearly ptKMognphic in "ual ilY (:see Color PIaIC E).

Page 32: Coputer Graphics Principles and Practices

.. 6 Conceptual Fr.mewcwk for Inta,.ctIQ Graphic. 17

independent of IIny type of display technology, and IhaJ ..... ~ 1;U1Jle s imple P HIGS+ fealures . We have oriented our discusston 10 PHIGS and PHIGS + because we believe (he), will nave much more influence on interactive 3D graphics than will GKS-3D, especially g i...en the increasing avai labil ity of haJdo,w~ thai supports real -time transformaltonS and rendering of psevdorealistic image:>.

1.6 CONCEPTUAL FRAMEWORK FOR INTERACTIVE GRAPHICS

1.6.1 Overview

The: hign-leveJ conceptual (ram~rlt shown in Fig. 1.5 can be used 10 describe almost any interactive graphics system . Al lhc. h~ level (I)O( shown explici!Jy in the diagram). a computer recei~ inptJI from interaction devices , and outputs images to a display device. The software has three components. 11te firM is the application program: il creates , ~I~ inlo , and retrieves from the second component, I1Ie application trIOdef , which represents the dala or objects 10 be. piccurcd on the screen. The applicat ion program also handles IIStt

input. II produces views by sending 10 the third component , the graphics sysl~m,.t series of graphics output commands that conta in both a detailed geomelric description of what is to be viewed and the 3uributeo; de:;.. ribing how the objects should appear. 1be graphics system is. responsible fur actually producing the picturc: (rom the detailed descriptions and for passing the user 's input to the applicatton program for ~sing.

The graphics .~ystem is thus an intermediary betwocn the application program and the d isplay hardware that effects an OWput IransjormatiOll from objects in the application rnodeI to a view of the model . Symmetrically, it effects an lnput trons/omwtiOfl from user actions to inputs to the application program that will cause the appl ication to make changes in the model andlm picture. TIle fundamental task of tne designer of an interactiw: graphics appiication program is to specify what classes of data items or objects are to be generated and lepcescnted pictoria lly, and how the user and the: applicatiotl prugr.m iU'e to in tenw::t in order to create and modify the model and its visual representZllion. Most of me programmer's task concttns creating and editing the model and handling user interaction, not actually creating vkws , since that is handled by the g~ics system .

Fig. 1 .5 COrlCeptual framework 'or mteractive graphics.

Page 33: Coputer Graphics Principles and Practices

, 8 Introduction

1 .6.2 ApplicatkHl Modeling

The applicalion modd captures a ll the data. objects , and relationships am()ng Ihem that are relevant to the display and interolCtion part of the application program and 10 any nungtaphical. roqprocessing modules. Examples of such postprocessi ng modules arc analy!'es of the trans ient behavior (Jf a circuit or o f the stresses in an a ircraft wing. simulatiun of it population model o r a weather system, and pricing computations (or a bu ilding . In the cl3ss of applkations typified by " painting" progralTl" :weh as MacPaint a nd t"C}'ai nl . the mtent or the progr3m IS 10 produce an image by le tt ing the user set or modify individual pixels . Here an e:< plid t appl icat ion model is not needed--the picture is both means and end. and t~ di~pl<l)'ed bilmap O!" p ix map ~ in cffCl.'I 3S the application made!.

More typically , however. there h an idenlifiHhk application model representing applit'at ion objccts through some combinalton of data and procedural description that is inlkpendent o f It pactiCtJlar displ ifJ deVice . Procedural descriptions are used , forellaillple, to define fmc lals, 3S described in Sectilm 20 .3. A data model can be as rudimentary as an array o f data points or as complex a" II li nked 1b.1 representing a nelwort dall;l structure or a relatio nal d3laha.o;e storing a set of re lations. We often speak of storing the appliLYltion 11UXkf in lhe upplication l.UlIa/xIu ; the lerms are used inten:hani:cably here. Models typically stOfe descriptions of primith'fl'J' (points. lines and polygons in 20 or 3D, and polyhedra and free ·form !;Urfac;cs in 3D) thai define the shape o f components of the object , objecl atuibutes such as line style , c(JI()(, or surface Texture: and C(mll«riviry relaTionships and posit ioning data thai describe how \he ~:ompuol:nt.'i fit together.

The objeclS stored in the .. nodel can d iffer great ly in the: amount o f iru rinsic geometry needed to specify them. At the geomctry- is~thing end of the spectturn , an industrial robot of the type discus.sed in Olapter 7 is describcrl almost completely in tenns of Ihe geometry o f in component polyhedra, each o f which is a collection of 3D polygonal f.teets connected at common edges defined in tenns of common vertices and enc l~;ng a vnlum .. _ A spreadsheet has much less intrinsic geQmctry. T he spatial relationships between adjacent cells are SION:d , bUI the cxact .size o r pJ.acement of each cdl on the "paper" i s not stored; instead , these values are detennirted dynamically by the spreadsheet program as a function of the conteills o f cells. At the geometry-free end of the spectrum, a demographic model storing S(atistics, such as income and age of individuals in some populal;OO, ha.s no intrinsic geometry. 1bcsc statistics can then be operated on by a procedure to derive some gnJI71eJrical illterprelation, suet. as a 20 graph. scatter d iagram . or hiSCogram .

Another class of applicalions .... ithout intrinsic geometry deals with the directed-graph nel:v.orks uud in various fields such as engineering and project managemenT. 1bese netv.urts may be represented inlemally by 8djacency matrices describing how nodes are conllCCted, plus some property data (or nodes and edges, and the application must then derive a layout in a predefined format in ()f'der 10 c reate a view of the graph . This reprucnt81ion might be created once and subsequently edited, as for a VLSI circui t layout .:omputc:U over many hours. The model would then contain both a oongeornetriC and an almost purely geometric description of the circtli t . Altemati-.ely, if a layout for a particular applicat ion i!l 5imple and fast enough 10 derive, such as a project-schedul ing chan wi th

Page 34: Coputer Graphics Principles and Practices

1 .6 Concept".1 Framework ftx Interactive Graphl~ ,. labele<l boxes and IUTQWS, it can be created o n the: fl y each time the data on which jt is based

change. Geometric data in the application model often are accompanied by nongeometric

teJI:tuaJ o r numeric property informotion useful 10 a postpnxessing progrdm or dte irlteractivc u~r. Examples of such dalli in CA D applications include manufaclUring data; "price and S4lp~ier" data; thenna!. mechan ical, electrical. or electronic properties; and me<:hanical o r ciectrical lOic:rollccs.

1 .6 .3 De.cribing to the Graphics System What Is to Be Viewed

The appHcalion program creates tile 3pplicali()n modc:l e ither a priori as a rc:su l! or prior computat ion. as in an engineering Of scient ific simulation on a supcn:ompUIC1'. or a.~ pan or an intetaCtivc session al the display devIce during >Wi ieh the ILo;c:r guides the conSlruction proces.s ~'1ep by step 10 choose components and geometric and nongcomettic propeny data . TlJe user c.n ask the application program at any time to show a vIew .. 'It' the model il has cn::;£lcd SO far. (The 'MIrd vit'w r., use<! incenltonally !)ere, bolh in [he sense of It visual rendering of some geometric properties of Ihe objern being modeled and in the technical database sense of a 20 presentation of some propertio; of some: subset of the model.)

Models are applicat ion-specific; and are created independently of M,)' pankular display system. Therefore, the application program must conYer( a description 0' the portion of the mood to be " iewed from the internal representation of the geometry (wi"k:thcT C":Xplicitly SlOT"ed in the model 01" dc:rM;:d on the fl y) 10 whale\ler porocroure calls or command:; lhe graphics system uses 10 c.-eale 1m imase . This 1;Ofl.w:ru0fl pnx:t:SS has I~ pha.<ieS . Fil"llit, the appl ication program t rdvt':r.iCS tht" application database lhat stores the: modeJ in order to extract the ponions to be vi~"ed . using some selection or query criteria . 1nen, Ihe Qtracted geometry is put in a format thai can be sem to Ihe graphics system. The sclect iOfl criteria can be gc:orncuk in natun:: (e .g .• the: ponion of the model to be viewed !\as been shifted via the eraphics equivalent of a pan or zoom camera operation). I)r they can he similar to traditional database query criteria (e .g. , c reate a view of all the activities after March IS, 1989 in Ihe scheduling c;han for producing Ihis book).

The data extracted during the database traversal must either be geometrk in nature or must be converted 10 geomeuic dala; the data can be described to the graphics system in lerms of both primitives Ihal the system can d isplay direcCly and attributes thaI contnX the primitives ' appearance. Display primilives typically match Ihose stored in geometric models: lines , rectangles, polygons , circles, ell ipses , and Celtt in 2D. and polygons. polyhedra, and text in 3D . Advanced graphks systems such as PHIGS+ support additional primitives. including eul""VeS and s!..lJfaces defined by polynomials of higher degrocs.

If Ihe model SIOres geometric primi th"1$ not directly supported by the graphics package, the application program must reduce them to those thai an: accepted by the system. For ex.ampte , if spheres arxl free -form surfoces are nm supp:.x1.ed, Ihe application must appfO"-imate such surfaces by li/ing or t~sje{lafiltlthem with meshes of pruygons that the gfaphks s~lcm Ulrt handle. Appeiltlince u.ttrlbutes supponed by (he graphlc;ji package also tend to cOITeSpotJd to the ones stored in the model, such as color. Hrte style, and line width. In addil jnn (0 primitives Hnd anributes . oovanced gnaphics packages such as PHIGS

Page 35: Coputer Graphics Principles and Practices

20 Introduction

support faolLties for specifym!!- geometric transfonnatio ns for sc:aling . rolaling . and po!>il ioning components. for spccifyinM hvw components are 10 be viewed in 3D. and for grouping logically related primitives. attributes . and transfoonations so that they can be invoked by it !>ingh: reference 10 a nllmed SlJ"ucture.

T he gOlph,cs system typically consis ts of a set or output subrout ines corresponding to the various primitives . attribute!>.. and other clements . Thcse are collected in a graphics· subroutine lIbrary or JXlckuge that "an ~ call~ from h igh-levellangu.ages such as C. Pascal , or LISP . The applicatio n program ~pec i fic ~ geometr ic primiti"VC..~ and all rihulc!>. 10 lhesce

~ubrnu!ine.~. and the subroutines then dri-..e the specific display device and ca use ilto d isplay the image . M uch a,\ n mvent;onal ltD .~Y"tem!> crea te logical 110 unils 10 !lhie1d the II pplicatio n progrnm mcr from the messy deta il s of hudwarc and device dr ivers , graphics systems C I~le a lug ;n,,1 di~pluy d",,·ic·~ . T hus, tho:: grdphics programmer can ignore such. dctail :<l as wbich part o f image generdt icm is done: in the display hardw.uc and which is done by tho:: xraphics package. or whac: the coordinate li)'!'o1cm of the display is . This abstractiOJl of the display tlevice pertains both [0 the Output of image!> and to intcraction via logical input devices . For cumplc. the mouse. da ta tablet. touch panel. 20 joys tick. or trad:.b31l can all be trca ted 3\ the locator logical input devicc that returns an (.t: . y) screen locatio n. The applicat ion program can ask the graphics .~ystcm either to samplf' the input devices OC" to wait 81 a specified poinl until an I"Hml b generated when the user ;A(:ti"lltt:S It device being waited on . With input values obtained from sampling o r waiting for an CVCtlt , the applicatio n progr.tm can handle user interactions thaI alter the model or the d isplay or that change its operating mode.

, .6 .4 In1eractton Handaing

The typical appl ication-program schema for interact ion handling is the ~f11·drivell loop . It is easily visualized as a fi ni te-state machine with a central wait state and transitions to other states that are caused by user- input events . Processing a command rna)' entail nested event loops of .hc !>ltmc format thaI havr Illeir own ~taiCS and illput trdnsit iuns . An application p rogram may also sample input devices such as the locator by asking for the ir values at any lime: the program then uses the returned value as input to a processing pf'oc."edure that also t.-hanges the stale of the application p!'Ogram, the image, or the database . The eveot-driven loop is charactttized by the following pseudocode schema:

/l~n~fTJ(~ lfIitial display, deriyedfrom appl;("Q.tiOtl model tl5 appropriate ""'lie (!qs.it ) { , . U~ hu not se!ccted !.he "quit" oplilNl . /

)

tno.bk .refection of commo.lUb obje.·ty / " Program palL...c1 indefinite ly in "wail s l.3.!e" until user acu. . / MiU/l jt,r IHLt .<d~cfion

strill:n (selrct;C>II ) {

)

Pt"(l('t"SJ selrctiOtl 10 rompltte C(>mnIDttd or proce •. , c<>lJlpl~fed comnwnd, "pda/;n/l model and scrun a.f lIuded

Let's ~amjne the appl ication 's react ion to input in more detail. The applK:8 tion progrdm Iypically responds to user internctions in o ne of 1\IoQ modcs. First . the user ItCtion may require on ly that the S(;reen be updated-fo r example . by highl ight ing of a selected object

Page 36: Coputer Graphics Principles and Practices

1.7 21

or by making ava ilable It new m e l'll! o f cho icn . T he applic:u ion Il\.!n needs o nly to upda te i [~

internal slate and to caJl the gruphic!> package tu update the scree n: it does IlOt need no! to update the database . If, howeycr, the user actio n calls fur a change in the modeJ- r", t':Aample . by adding o r deleting a componcnt- lhe appiicalion must update the model and (hen callihe graphic!> package 10 update the screen from Inc model. Either the entire model is relr3\-er..ed 10 regt'M'rolle .be Image from scl1ttch . or, with m~ sophi5ticatoo incremen­tal -update alsorithms . the s<:reen is updated selectively . It is important to understand that no signifiCant change can lake place in the obja:l:' on the screen without;) corresponding r.:hange in the model. The ~n:-en i .~ indeed the windO'o'<' 00 the computet" in that The user, in gen.::raJ. is manipulating 001 an Image but the model that is literally and figuratively behind the:: image . Only in pa inl ing and image-enhanccment appliCAtio ns are the model and the um.ge iuc:nticll.l . Tllcrcfon:. il is lhe application'S jot! 10 intcrpKt user inpul . The graphiCS system has no responsibility for building or modifying the model. either initially or in re!i>pOnse 10 user interactKm ; ils only job is 10 cre~lIe ima£es from geometric de<;c riplmns ,100 10 pass alung the user 's input Uala .

TIle eYefll-loop model, allhoug h fundamental to current practice in computei' graphics, is limiled in that the user-computcr dialogue is a sequemial. ping-pong mOdel of alternating US(:r actions and compute r reactions . In the fUiuTe . we may expect 10 see more of parallel conven;ations, in which ~imultaneou.:s input and output using multiple \,'OfTlmuni(:iltions channels- fOf exam~e. both graphic s and voi~cake place . FonnaIisms. nOl to mendon programming·language constructs, fur Sl.-d1 free· fl)(m COf1vcn;.alions are not yet well devdoped: we shall not discuss them further here .

1 . 7 SUMMARY

Graphical ilnCTfaccs have replaced lexlual interf(ICes as the standard means for user­computer illlernction . GfHphic5 has a lliO become a k.ey technology for communicat ing ideas, dala. and trend!l in most IlI'CIU uf commct"Ce. ~icllCe. e"J;illc:c::ring . and eduollkm. With graphi« . \.1Ie can c reate artificial realitte:s. each a computer-based "eJ.pIorntorium" fl)( examining objeds ",nd phenomena in a natural aBC! intuit ivc way that o.pkJits our highly deYeloped skills in visuaJ ·pallC1'D recognition .

Until tl\e late eighties . the bulk of computef-graphics applications dealt with 20 objects; 3D applications .... 'Cre relatively rare . both because 3D wfi'Nate is intrinsically far fDOI'C complex than is 2D software and because II great deal of computing ~ is required to rendCT pseudorealistic images . Thctcfore, until !'eC'Cntly. reaJ· time UJer internction wilh 3D models and pseudoreal iSlic images \lIaS feasible on only very expensive high. performance WOf'ks1alkms with dedicated , .special-purpose graphics hardwan: . The spectac· ular progress of VLSI semiconductor lechnology that was responsible fl)( the advent of inexpensive microprocessors and memory led in t he early 19805 to the c reation of 20 . bitmap-graphics---based personal computers. That same technology has made it po&."ible, less Ihan a decade later. to c reate sub~'}'stems of only a few chips that do real·lime 3D animation with color-shaded images of comp~ objects, typically described by thousands of polygons . These ~ubsYSlems can be added as 30 accelerators to workstations or even 10

pcBOnal cornpulcr.> using commodity microprocessors. II is clear that an o.plosive growth {If 3 D applicalKms will parallel the c urrent growth in 20 applications. Furthermore. topics

Page 37: Coputer Graphics Principles and Practices

22 Introductlon

such as phOiorea lislk rendering that were: \,:onsldered exotic in t he: 1982 cdlt ion of thi" book

ate now part or the .~tate of the art and tire: available routinely in i!raphio; soflwllfe and Increas ing ly in graphics hard"""3.re.

Much of thc ta~1c. (I f c reating effec th'e graphic com munic ation . whether 20 or 30. lies in modeling the objects .... 'hose images we want 10 prodlll.:e. The g raphics system acts as the intermediary bel .... '!!cn the application model and t~ output device. The appl ication program is responsible for c rea ting and updating. the model ba-.ed o n user interaction: the graphics sys tem doc.~ Ihe be~I - lIodecstood. rflQ!,t murine part o f the job when it c reate." view ..

of objel:ls and paS'ie~ user events 10 the applic ation . It is imporlant ttl !}Ote that. allhoog h thi ~ separation between m()dding and graphics \I."llS an:epted pract ice 3! the t ime this boo); Wo"IS written, our chaple TS o n modeling (C hapters II . 12. and 20) and animation (Chupler 2 1" liS ..... ell as the gmwinl! l ite rature 0 10 vuri"u~ Iypt:~ of physical ly b;]sed modeling , .~ how

Ih ll l gr-.Iphics is e-.-olving to include a g reat deal more th an rendering and inter-dc l iOn handl il1£. Images ;]nd a nimati(lIlS are IlU lonA,>er merely Illu!o.lrJtions in SClenl."C ancl eny inotring--thcy h a\'C becume parI o f tho! conlcni o f science and engineering and are influenci ng how -.cienlists and eng ineer!'> L .... mduct their da ily "WOrk .

EXERCISES

1.1 Lisl the ir,teracllvc graphic s progr.um)'-'U uSC om a routine lxIsis in )OUr .. k....-ledge work" : ",riling , caklilating.gn.phing. programmml;. debugging, and \.0 on. Which of these prognlIn!. -...ould worI; ahnO$l. as wel l nn an alptlanu""" rics-(ml)" tt:rmin~ l ?

1.2 nOt: phrase " Iook ~nd fc.-e l" · has been a pplied ulcn~ively 10 tho: user Int~f:ol.1: of gniphic, P"'"'l1Iran"l5 , Itemize' the ma';"' r ~·Olnponcnt""""""'uch a~ ictwts , windu ..... , 1>Cro/l hars , :lnd meou::.-· -of the lor)/( of the graphics mlcrf:h 'e I,f )Qur fa'-'Orit,- ''''IlJ - Jlrf)("e~smg or winJ.:--managcr program. List thc k.indt. nf graphics capabiliti~ these "widgeL~" require . Whal upportun ities do you see fur apl'J)'lIlC color and 3D depictions 10 the look. ? Fure"~mpJe . hOl\' ,,'ighl ~ · ·c!ullercd <)fr .... 'C .. be a more ~ful spiit ia l rroct:tpho<- for O1"p.t1\ling and dC<,;"",ing mf'lI"fllation th~n i! it " mess\, dc .• b op·)"

1.3 In .. s imilar ve in 10 thll o r E. ... :rci~ 1.2. wtl:lI CIp90ClUllities do you ..ee for dynamK" iCOM 10 augme1ll or o:"¥eI1 10 n:pbcc the J1alic ;con~ of ("um:,u dc:tIl lop metaphOf$?

1.4 Break. ~n )'O ... r f:l¥Orite gaphics ~ ppli("al ion inlo ib m~joc m()dule.~ . .... ing lhe concept ... al model of Figure 1.5 a::; it guide. How mU(.-n of Ihe applical lOllaCluaily deals willi glllphics per 50:? How mu("h dab with data-structUre ("realion and mai6latnance? How much deals with Cilkulauons. rwch lIS s imulalLon'?

1.5 1l1C lerms simulation and animation a", nflen used togetheT ilOO even interchangeably in computer grnphics. This ;s nltlura l ... ·ben the bo::h:.vioral (or structural) changes over time of some physical or .. bsCntct S}'5tem are bo:ill8 ~·i""al .. tXI . COf\$truct oome ~amplcs of sy~t.e rru; that could benefit from sudl visual ization".. Specify what (onn lhe silnul:!.lions -..v ... 1d lake and how they v.ould bt: =u~.

1.6 As a varialLon on Exercise 1.5 , create a hlgh-!t:\--d dc5rgn of a inlphical " clplnratorium" foc a nolllrivjai ropi<: in Kietlce. m"'lht:mali<:~. or englnccring . Discuss how the interaclion >equences """uld v.orl.: and what facilitieco .M " ..... shotlld h:tVe (o r C)I"per imcnlat ion .

1.7 Consider an image containing a ~t of J 0 .000 I-inch unconnected ~"CclOrs. Cootr,l.s.t the storaie requiml for a ~etlor display hs.t with that for a I-bit rlll>lef image for a I 024-b)r·I024 bile~ display to stCKe t his image. Assllm" thai il fakes a 8·bil " op-<ode " 10 . ..pecify "vector-dnw, "' .md four IO- bil

Page 38: Coputer Graphics Principles and Practices

Exercises 23

coordi nales (I.e_ . 6 bytes) [0 >.to", d vn-to.- in the vector display li"t. H""" do tbesc numbr= vary as a

function of tbe number and size of the vectors . the fllIJIIber of bits per pixel . and the resolution of the raster di~l'lay'! What conclusion can )UU draw aboul {he rdatiw sizes of refresh memory re\juired?

1.8 WitAout peeking at Chapter 3, c:on.<;truct a straightforward algoritllm foc scan oon"'C:ning a line in the fi rst quadrant.

1.9 AliiO$illg is a serious problem in thaI it produces unplCil5l1nt 01" eYen misleading viSllal artifac ts Discuss situations in which these artifacts maller , and I~ ill wbi<.:b they do not. Discuss various ways 10 minimize the e ffects of j nggies. and .,;pl.ain what the "costs" of t~ remedla; might be.

Page 39: Coputer Graphics Principles and Practices
Page 40: Coputer Graphics Principles and Practices
Page 41: Coputer Graphics Principles and Practices
Page 42: Coputer Graphics Principles and Practices
Page 43: Coputer Graphics Principles and Practices
Page 44: Coputer Graphics Principles and Practices
Page 45: Coputer Graphics Principles and Practices
Page 46: Coputer Graphics Principles and Practices
Page 47: Coputer Graphics Principles and Practices
Page 48: Coputer Graphics Principles and Practices
Page 49: Coputer Graphics Principles and Practices
Page 50: Coputer Graphics Principles and Practices
Page 51: Coputer Graphics Principles and Practices
Page 52: Coputer Graphics Principles and Practices
Page 53: Coputer Graphics Principles and Practices
Page 54: Coputer Graphics Principles and Practices
Page 55: Coputer Graphics Principles and Practices
Page 56: Coputer Graphics Principles and Practices
Page 57: Coputer Graphics Principles and Practices
Page 58: Coputer Graphics Principles and Practices
Page 59: Coputer Graphics Principles and Practices
Page 60: Coputer Graphics Principles and Practices
Page 61: Coputer Graphics Principles and Practices
Page 62: Coputer Graphics Principles and Practices
Page 63: Coputer Graphics Principles and Practices
Page 64: Coputer Graphics Principles and Practices
Page 65: Coputer Graphics Principles and Practices
Page 66: Coputer Graphics Principles and Practices
Page 67: Coputer Graphics Principles and Practices
Page 68: Coputer Graphics Principles and Practices
Page 69: Coputer Graphics Principles and Practices
Page 70: Coputer Graphics Principles and Practices
Page 71: Coputer Graphics Principles and Practices
Page 72: Coputer Graphics Principles and Practices
Page 73: Coputer Graphics Principles and Practices
Page 74: Coputer Graphics Principles and Practices
Page 75: Coputer Graphics Principles and Practices
Page 76: Coputer Graphics Principles and Practices
Page 77: Coputer Graphics Principles and Practices
Page 78: Coputer Graphics Principles and Practices
Page 79: Coputer Graphics Principles and Practices
Page 80: Coputer Graphics Principles and Practices
Page 81: Coputer Graphics Principles and Practices
Page 82: Coputer Graphics Principles and Practices
Page 83: Coputer Graphics Principles and Practices
Page 84: Coputer Graphics Principles and Practices
Page 85: Coputer Graphics Principles and Practices
Page 86: Coputer Graphics Principles and Practices
Page 87: Coputer Graphics Principles and Practices
Page 88: Coputer Graphics Principles and Practices
Page 89: Coputer Graphics Principles and Practices
Page 90: Coputer Graphics Principles and Practices
Page 91: Coputer Graphics Principles and Practices
Page 92: Coputer Graphics Principles and Practices
Page 93: Coputer Graphics Principles and Practices
Page 94: Coputer Graphics Principles and Practices
Page 95: Coputer Graphics Principles and Practices
Page 96: Coputer Graphics Principles and Practices
Page 97: Coputer Graphics Principles and Practices
Page 98: Coputer Graphics Principles and Practices
Page 99: Coputer Graphics Principles and Practices
Page 100: Coputer Graphics Principles and Practices
Page 101: Coputer Graphics Principles and Practices
Page 102: Coputer Graphics Principles and Practices
Page 103: Coputer Graphics Principles and Practices
Page 104: Coputer Graphics Principles and Practices
Page 105: Coputer Graphics Principles and Practices
Page 106: Coputer Graphics Principles and Practices
Page 107: Coputer Graphics Principles and Practices
Page 108: Coputer Graphics Principles and Practices
Page 109: Coputer Graphics Principles and Practices
Page 110: Coputer Graphics Principles and Practices
Page 111: Coputer Graphics Principles and Practices
Page 112: Coputer Graphics Principles and Practices
Page 113: Coputer Graphics Principles and Practices
Page 114: Coputer Graphics Principles and Practices
Page 115: Coputer Graphics Principles and Practices
Page 116: Coputer Graphics Principles and Practices
Page 117: Coputer Graphics Principles and Practices
Page 118: Coputer Graphics Principles and Practices
Page 119: Coputer Graphics Principles and Practices
Page 120: Coputer Graphics Principles and Practices
Page 121: Coputer Graphics Principles and Practices
Page 122: Coputer Graphics Principles and Practices
Page 123: Coputer Graphics Principles and Practices
Page 124: Coputer Graphics Principles and Practices
Page 125: Coputer Graphics Principles and Practices
Page 126: Coputer Graphics Principles and Practices
Page 127: Coputer Graphics Principles and Practices
Page 128: Coputer Graphics Principles and Practices
Page 129: Coputer Graphics Principles and Practices
Page 130: Coputer Graphics Principles and Practices
Page 131: Coputer Graphics Principles and Practices
Page 132: Coputer Graphics Principles and Practices
Page 133: Coputer Graphics Principles and Practices
Page 134: Coputer Graphics Principles and Practices
Page 135: Coputer Graphics Principles and Practices
Page 136: Coputer Graphics Principles and Practices
Page 137: Coputer Graphics Principles and Practices
Page 138: Coputer Graphics Principles and Practices
Page 139: Coputer Graphics Principles and Practices
Page 140: Coputer Graphics Principles and Practices
Page 141: Coputer Graphics Principles and Practices
Page 142: Coputer Graphics Principles and Practices
Page 143: Coputer Graphics Principles and Practices
Page 144: Coputer Graphics Principles and Practices
Page 145: Coputer Graphics Principles and Practices
Page 146: Coputer Graphics Principles and Practices

132 Basic Raster Graphics Algorithms for Drawing 2D Primitives

3 .16 SRGP copyPixel

If onl)' WrilePixel and Rc.,dPilo:cJ I'IW-Ic:vel prOl:edures are available , the SRGP_copyPixe! procedure can be implemenlal a~ a doubly nested (or loop for each pixel . fur simplicilY. :!SS\llTle fohl thai we arc worki ng with a bik"Vt."l display and do nOl need 10 deal with the low.level CQn.~ lderat ion~ of writing hits that are nOl word-aligned ; in Section 19 .6, we CO...ef

~olll e uf these more realistic i,sues Ih:lI lake hardware-mcmory orga nizat io n inw account. In the inner loop o f our lo. implc SRUP_l'OpyPixeJ. we du a Reildl-'ixel of the source and d(:<)litl.3 tion p i.\.CIs. logically comhine them 3COOtdlng to the SRGP wr ite nlOde. and then WritcPixcl the result. Treating replace mode. the mo::,t common write mode. as a special l 'a."C allows a si rnpler inner loop (hal dOo:!S o nly a Re<ldPixellWrilePixel of the soun.:e into lhr:: dl:lo.linatiun. wllhout having III do a IngicOlI operation. The clip rectat1~1c is used during addreslo. call.ulaliun to reSlrict lhe region imo whi.:h ckstinaliun pikr:l~ arc wrillen .

3 .17 ANTIALIASING

3 .1 7 .1 Increasing Resolution

The J>f'imit ive.~ drawn so far have a CUlllJll(l1l problem: They have jaru;cd edges . Thi~ unu"~ i rabJe o;:ff'-:cl , known as tn t' j ilxgif'l' or Sl(lircasing , is the resul l of an al!-or-~h ing

approach to scan col1vcn ion in whicll <:a<.:h p i)(e1l".il.~er is rcplaced Wllh tM primitive' s color or is len unchant,>ed. Jaggies arc 3n inslance o f a phenumenon known as oliojing. The application of lCchnjqucs Ihal rc:dlX:C: 1)( eliminale aliasing is referred 10 a.~ o fll iali£lJing. and primitives or image" produced using these tel'hnlqUCS arc :-.aid to be ant~Jia~d. In C hapler 14 . \\o~ d iS\.:u"" hasic ideas from signal proce.'i.~ing that expiain how a liasing got lIS name. why it oceun- , and hO\\,' tn rooUIX Of eliminate it when c reating p icture;. Hert , we conlenl ou~lvcs with a more intui live explanil tio n tlf why SRGP's primilives exhibit aliasing. and dbcribt- how tt) modify the line S<."an-('onvel'Sion algorithm lk:veloped in this chapler 10 gcnerol te anl ialiaseJ l ines.

CUII~id"T u~ ing the midpoint alJ.'Ofithm 10 draw a J-piAe!·thick black line. Wilh .~Iopc

between 0 and I , on a white bockground . In tach column through whieh the linc passes, the a!gOl'i tl'lm seb the color of the plXcllhil l is closest to the line . Each time the lint: moves bet y,-een columns in which the pixels clw;csl 10 the line are not in the ~mc row, there is a s harp jag in the line d rawn inlo the Carl vas, a~ is clear in Fig . 3.54(3). The same is tfue for other scan'CQn Ye n er! primitives thai clln 3.u isn o nty one of two inten.~.y valueili to piKcls .

Suppose we now UM: a dilo.play device with (wice the hori7.ontal iltld vert ical reM)jut ion. As !ohown in Fig:. ] . .'i4 (0). Ihe line- pa.~ through twice as many columns and therefore has twic~ as many jagili. bUI each jag IS half 3S b lge in x lnd in y. Although the roulting piclure loub bell~r . the improvement com e!> at the price of q uadrupling the memory COSI. memory bilndwidth. an<.l ..can-conversion lime. Increasing rew!ulion is an expensive solutio n that o nly diminishes the problem of jaggies- it does nOI eliminate Iftc problem . In lhc following ~e\: t i()n~ . we look at ilnt ialiasing (echnjque.~ Ihat arc Jess costly. yet result in significantly hcner image~ .

3 .17. 2 Unweighted Area Sampling

The: lirst approach \0 improvinJ,: ph; turc qual ity can ~ developed b) fa:ogni l.ing that. a lth oug h on ideal p rim itive ~uch .. s Ihe line ha.~ l.ero \O·idth. lhe primitive we .:m:: drdWinJ; has

Page 147: Coputer Graphics Principles and Practices
Page 148: Coputer Graphics Principles and Practices
Page 149: Coputer Graphics Principles and Practices
Page 150: Coputer Graphics Principles and Practices
Page 151: Coputer Graphics Principles and Practices
Page 152: Coputer Graphics Principles and Practices
Page 153: Coputer Graphics Principles and Practices
Page 154: Coputer Graphics Principles and Practices
Page 155: Coputer Graphics Principles and Practices
Page 156: Coputer Graphics Principles and Practices
Page 157: Coputer Graphics Principles and Practices
Page 158: Coputer Graphics Principles and Practices
Page 159: Coputer Graphics Principles and Practices

4 Graphics

Hardware

In this chapter. we describe how the imporuml hardware eJemenLS of a computer graphics display system work. Section 4.1 ccwers hardcopy technologies: printer.>, pen plotters, electrostatic pfotters , laser printers, ink-jet plotters . thennal-transfc:r ploners. and film recofder.,;. The basic technological concepts behind each type of device are described briefly, am.! a (;onduding section compares the various devices. Section 4 .2, on display technologies, discusses monochrome and color shadOVr'-mask CRTs, the direct-view storage tube (DVm, liquid--crystal displays (LCDs) , plasma panels, electroluminescent disp:lays, and severnl more specialized technologies. Again. a concluding section discusses the pros and cons of the various display technologies.

Raster display systems. which can use any of the display technologies discussed here, are discussed in Section 4.3. A simple. straightforward raste." system is first introduced, and i.s then e nhanced with respect (0 gr;"phics functionality and integration of TaSter- and. genend-purpose processors into the system address space. Section 4.4 describes the role of the look-up table and video controllet" in image display, color control . animation, and image mixing . The almost-obsolete vector (also cal!ed random . calligraphic, stroke) display system is discussed briefly in Section 4.5, followed in Section 4.6 by user interaction devices such as tablets. mice, touch panels, and so on. Again, operational concepts rachet" Ihan technological details are stressed. Section 4.7 briefly treats image­input devices, such as film scanners. by means of which an eJlisting image can by input to a computer.

Figure •. 1 shows the relation of t!lese hardware devices 10 one another. The key element is Ihe integrated CPU and display processor known as a graphics workslation, typically coosisting of a CPU capable of executing at least severa.l miJ1ion instructions per second (MIPS), It large d isk, aOO a display with resolution of at least 1000 by 800. The

145

Page 160: Coputer Graphics Principles and Practices

146 Graphics Hardware

Inleraction 6eYices

, ____ __________ Wo..xstatiorl ___ - - - - - - - - - - - I

Local·area network - connects to other WOfI<.stalioM. file 5efVet$. laser primers. high-resolution film recorders , and so on.

FiiI. 4.1 Components of a typicllll interactive graphics system.

local-area networic C(InneclS multiple workstations for file sharing. electronic mail, and access to shared peripherals such as high-Quality film ploners, large disks, gateways to other networks, and higher-performance computers.

4.1 HARDCOPY TECHNOLOGIES

In this section. we discuss various hardcopy technologies, then sumnuu-ize their character­istics. ScYerai important terms must be defined first.

The image Quality achievable with display devices depends on both tt.e addressability and the dot size of t~ device. Dot size (also called spOt sire) is the diameter of a single dot on the device 's output. Addressability is the number of individual (not necessarily distinguishable) dots per inch thaI can be created; it may differ in the horizontal and vertical directions. Add ressability in x is just the reciprocal of the distance between the centers of dots al addresses (x, y) and (x + I, y ) ; addressability in y is defined similarly. InJ~rdot disUUlce is the reciprocal of addressa.bility.

Page 161: Coputer Graphics Principles and Practices

4.1

(a) Inte<dOl spacing &qlJilllo dol size

(b) In terool spacing one-half ciot size

Hardcopy Technologies 147

(d) Interdal spacing one.quarter dot size

Fig. 4.2 The effects of varfOUS ratios of the dot size to the int&t'dot distance.

II is usu:llly desirable: thai dOl size 1x: somewhat grealer than the i!llema! dis tance , so that smooth shapes can be created. Figure 4.2 illustrates this reasoning. Tradeoffs arise: here, however: dot size several times the intardot distance allows very smooth shapes to be printed, wher-eas a smaller dOl size allows finer detail.

ResollllioTi . which is related to dot s ize and can be no grealer than addressability , is the number of distinguishable lina per inch that a device can create. Resolution is defined as the closest spacing at which adjacenl black and wllite lines can be distinguished by observers (this again implies that horizontal and vertical resolution may differ). If 40 black lines interleaved with 40 while lines c an be distinguished across one inch, the resolution is 80 lines per inch (also referred 10 as 40 line-pairs per inch) .

Resolution also depends on the cross-sectional intensity distribution of a spot. A spot with sharply delineated edges yields higher resOilution than does one with edges that trail off, as shown in Fig. 4.3.

(b)

(0) (d)

Fig. 4 .3 The effect of cross-sectional spot intensity on resolution. (a) A spot with well-defined edges. (b) Several such overlapping SPOts. (el A wider spot, wim less height since the energy is spreCld out over a fatQef area; its edges are not well defined , as are those in (a) . (d) Several of these spots ovef1apping . The distinction between (he peak.s in Ib) is much clearer in (d) . The actual image intensity is the sum of each spot's intensity.

Page 162: Coputer Graphics Principles and Practices

'48 Graphics Hardware

Many of the devices to be discussed can e reate o nly a few colors at ilI1Y OIK point. Additional rotors can be obtained with dither patterns, described in Chapter I) , at the cost of decreasc:d spatial ~Ulion of the resul ting imll&(:.

DOl-matrix prinurs use a print head of from 7 to 24 pins (thin, stiff pieces of wire). each of whir;h can be individually jiruJ, w strike a ribbon agalnst the paper. 1be print head moves across the paper one step at a lime, the paper is advanced one line, and die prill( head makt:s another pass across the paper. Hence, these printers are raster" output devices, requi ring scan conversion of vector images prioc to J)f"inling .

The: addressability of a dot-matri). printer does not ncod to be limited by the physical distance betv.een pins o n the print head . The~ can be: two columns of p in.s, offset vertically by one-balf the inteTpin spacing, as seen in Fig . 4.4. Alternatively. two passes over the paper can be: used [() achieve the same effect , by advancing die paper by one-half the interpin spacing be:t~n the firSt and second passes.

Colored rilmons cJln be used to produce color Iurdcopy . Two approachoes ani po5Sibie. The first is ming multiptc print beads. each head .... ith a ditfennt color ribbon . Alternatively and more commonly, a single print head is used with a mult icolOttd ribbon .

More CO~J"i than aJ'C actual I}' on (he ribbon can be created by overstriking two d ifferent colon at the ~ dot on the paper. The color on top may be somewhat stronger than that underneath. Up 10 e ight colors ~ be created at any one dot by overmiking with three colors---cypiclily cyan, magenta, and yellow. However, the black rc:suhing from suiking all three is quite muddy. so a ltUC black is often added to (he ribbon.

JuS( as ltw:re are random and m ter displays , SO too there are modom and raste r plottt:ni. P~n p/otu/'"S move a pen oYer a piece of paper in I1lIldom , vector-drawing style. In drawing a line, the pen is positioned at the start of the line, ~ [0 the paper, moved in a straight path to the endpoint of tbe line, raised, and moved 10 (he start of the next line . There are tv.o basic varit'ties of pen plotters. Theflat~d plOlt~r IlIOVC5 the pen in .l' and y on a sheet of papa spread out on a table and hdd down by electroswic ch arge. by vacuum. Of simply by bl::ing stretched tightly ( Frg . 4 .'). A carriage m 0Ye5 longitudinally over the fable . O n the carriage is a pen mount moving lat itudinally along the carria&e: the pen can be mised and lowered. Flatbed plotters are avai lable in sizC;>i tfOm 12 by 18 inches to 6 by 10 feet and

"" "" "" : ;"01-' Print pins

":-"" "" "" Fig. 4 .4 A dot-matril( prim head with two co lumns of print pins . offset vertically by haff the interpin spl!ICing '0 increase resolution.

Page 163: Coputer Graphics Principles and Practices

4.1 Hardcopy Technologies 149

Fig. 4.5 A flatbed pkmer. (Courtesy of CaIComp-California Computer Products, Inc.)

larger. In some cases. the "pen" is a light source for exposing photographic negatives or a knife blade for scribing. and o ften pens of multiple color.; 01" widths are used.

In contrast, drum plotlers move the paper along one axis and the pen aiCHIg the othe.­axis. Typically, the paper is sU'eu;hed lightly across a drum . as shown in Fig. 4.6. Pin:.; un the drum engage: Pf"CPunched holes in the paper to prevent slipping. The drum can rotate both fOf"W.lI'd and backward . By contras(, many duJ:-top plotters mOYe the paper back and forth betweee pinch rollers . while the pen moves across the papeI" (Fig. 4.7).

Pen plotters include a microproccssoc that accepts oommands such as "draw line, " " move," "draw circle," "draw text." "set line style, " and "seaect pen." (The microprocessor sometimes also optimizes pen movc:ments to minimize the distance the pen rn<JYeS while up; Andcr.lon (ANDES3] has developed an efficient aJgcwilhm for doing this.) The microprocessor- decomposes the output primit~s Inlo incremental pen movements in any of Ihe eight principal directions . A feedback system of position sensors and seJ"'.UmotOf"S implements the motion commands, and an electromagnet raises and towers the pen . Plotting speed depends on the acceleration and velocity with which .he pen can be moved . Tn turn, pen acceleration is par1ially a function of the mass of the plot head; many multipen plouers keep all but the active pens at the side of the plotter to minimize this mass.

In contrast 10 Ihe pen plouer, the ela:tr05tatk ptoJter placc.o;; a negative charge on those parts of white paper that are to be black , then flows positively charged black tone.- over the paper (Fig. 4.8). The loner particJes adhere to the paper where the charge has been deposited. The charge is placed on the paper, which in current systems can be up 10 72

Page 164: Coputer Graphics Principles and Practices

150 Gr~ic. Hard .........

Fig. 4 .8 A drum plOttsr. (Cour tesv of Hewhltt-Packard Company.)

inches wide , one row al a rime. The paper moves at speeds up to 3 inches per second under A fine comb of electric contacts spaced horizontAlly 100 to 400 to the inch. Eacfl contact is eirher on (to impart a negative charge) or off (to impart no ckarge). Each dot on an eleclroStatic pia! is either black or white; gJ1l)' levels must be c reated wiIh dither patterns.

Fig . 4 .7 A dllsk-10 P ploner . (Courtesy o f Hewlett-Packard Company.)

Page 165: Coputer Graphics Principles and Practices

4 . , Herdeopy Techn060gi_

Bath of w ... _ ,-, panicles

Fig . 4 .8 Organization of an electrostatic plotter.

'5'

Electrostatic p lotters may include II scan-oonversion capability. Of scan conYCr$ion can be done by the: CPU. In the latter case , because the demity of information on a 400 by 4()Q

dol'pcf"-sqU~ inch electrostatic plotter is quilt high (see Exercise 4 . 1), cotTeSpOndingly high uansfe£ rates arc needed .

Some color elcctroSIlUic plotters make mul tiple passes over the paper, rewinding to the stan of the plot after each pass. On the ti rst pass, black calibnllion marks ate placed near the edge of the paper. Sul»equent pas5ClJ complete the plot with b laclr. , cyan , magenta. and )dlow lOOet"S, using the calibration mns to maintain alignment. ~ use multiple heads to deposit all the colon: in a single pus.

Electrostatic plotters are after! rNter than pen plottef"S, and can also double as high.quality pt'inlers. On the otber hllIld . pen plotten create images with higher contraSt

than [hose; m&de by electrostatic plotters, since the lalter deposit a toner eveo in areas where the paper is not negalrvcly charged.

Laser pri"ten scan a laser beam across a posjlively chl1l"Bed tOIating drum coated with selenium . The areas hit by the laser beam lose their charge. and the positive charJ:e remains only whel'e tile copy is 10 be black . A ncaati-..ely charged po'III'dered toner adheres to the positive areas of the drum and is then tnmsferred to blank ~ to form the copy. In coJoT xeroaraphy . lhis process is repeated thTee times . once for each primary color. Figure 4 .9 is a partial schematic of a monochrome laser prifl(er.

Just as with tbe e lectrostatic plotter. the positive charge is either pr-esent or not present a l anyone spot on the drum, and there is e itl'ler black or not black at the correspondina spot

Scan line

Fig. 4 .9 Ofg8nizlttion of. laser p rinter (the toner-applicat ion mechanism 800 the paper feed,", at'8 not shownl .

Page 166: Coputer Graphics Principles and Practices

1 52 Graphics Hardware

on the copy. Hence . the la~r printec I~ a two-level monochrome device: or an c:igllt-cOIQT colo r device.

Laser printers have il micropf(x:c.~r to do ~an conversion and to conlrolthe printcr. An iocrcasing number of lascr printers accept the Postscript document and image d CM:ript:ion langua),:c a~ il ddacto standard IADOB85aJ . POstscript provides a prOCedura l description of an image to be pr inted. and can also be used to store image descriptio ns (Chapler 19). Most l.be, prinleTS 'M')t"k with 8 .5- by II-inch o r 8 .5 - by l4-ind'l paper. but considerably wider (30-inch) bser printers are available for engineet"ing drawing and map_making appl ications .

Ink-jet printers spray cyan. magenta. yellow. and sometimes black ink ontu paper. In most cases. the ink jet:'! are mounted on a head in a printr:t'likc mechanism. The print head mcves 3Cros.~ tne pIlge 10 draw one scan lir\C. I"t:lUms wllik the paper advances by one inlu-scan-line spacing. and draW5 the nexl scan line:. Slight irregularities in interli ne spacing can arise if the ~per lransport moves a bil 10(1 much Of' too lillie . Anotller approach is 10 wrap the paper around a drum; the drum then rotates rapidly ....nile the print head slowly moves along the drum. Figure 4 . JO shows this arrangement. In bolh cases . all the coJOf'S are deposited simultaneously. unlike the mUltipass laser and elcctrostatic ploners and printers . Most ink-jet primers are limited to on--ctr (i. c . • bilevel) control of each pixel: a few have a Ydriable dot-size capability.

Some ink-jet printers accept 'IKieo input as well as digital. which makes them aUractive for creating hardcopy imagc::s of nslel" d isplay screens_ Note thai the resolution of a multing image is limited by the resolution of the video inpur-typically between 640 by 480 and 1280 by I 024. Ink-j~ pOlltCrs tend 10 require more maintenance: than do many of tnc ()(her types.

Thc:rmal-Ifflnsjer prin1er:s. another raster hardcopy device. 3rc reminiscent of electro­sUltie ploners. Finely spaced (typically 200-per-inch) healing nibs transfer pigmentii frum cofored wall paper to plain paper. The Wall paper and plain paper are drawn together over the strip of heating nibs. which are selectively heated to cause the pigment transfer. For color printing (the most common usc: of this technology). the wax paper is on a roll of alternating cyan . magenta. yellow. and bLadt strips. each of a Ic:ngth equal to thc: papet' siu. Because the nibs heat and cool very rapidly. a sing~ color hardcopy image can be ~ated in less than I minute. Some thermal-transfer printCf'S accept a video signal and digital bitmap inpul. making them convenient f(lr c~ating, hardcopy or video imagc$.

Fig . 4 . 10 A rOtary ink-jet plotter.

Page 167: Coputer Graphics Principles and Practices

4 .1 Hardcopy Technologies 153

Thermal f ubftntation d)'~ transfer printc;:rS \l.Qrk similarly to the thennaJ Iranster pri nters. exccpl the heating and d}'e tr.ms fc r proce<O." permit 256 intensities each of cyan. magenta, and ~II~' 10 be tmn§fcfTed , creating high-quality full-colO( images with a spat ial resolUlKID of 200 dot" per inch . The fJTCI<.."eS~ is s lower than W".u tran~fer , hut Ihcl quality ;~

near-photogrophic , A ('amera {hil i photographs an image displayed on a cathode-ray (televis ion) lube can be

considered anoIhcr hard(:opy device . This Is the most common harrlcopy technology we discuss tbat yields II large number of colon; at II single resolution point; film can caplUre ma ny diffe rent colors.

There are two ba.o;ic techniquCl> for CO]lH" film recorden.. In one, the camer..! recoros the color image dil'«'t1y from a colnT CRT. Image rew lution is limiled because o f the shatfo-..v ma:.k of the color monitor (see Seel ion 4 .2.2) and the need 10 use a raster scan with the cok>r monitoc. In Ihe oc:OCr approach. a black~and~wbilt CRT is ~ogr.phed through color lilltf"$ . and the diffau.( wLur c;omponents of tbe image are displayed in 5Cquenct; (Fig 4 . I I). This technique yield5 very high-qualit)" rasle<" or vector- images . Colors are mixed by double-expo!>ing parts of the image throtlgh two Or more filters , usually with different CRT intensities.

Inpul to film reconjen can be a rdsler video signal. a bitmap, or ve.:tor~style

insu·uctioos. Either the video signal can drive a color CRT directly. or the red . green. and blue oompooeJ\lS of the signal can be dectronically iiqJ3.rnted fOf" limc~sequenTial display through tilter:s . In either ca.;e, the video signal trMlSt Slay constant during the entire recording c)'CIr: . which can be up 10 1 minute if relatively sJOIIo' (low·sensitivity) Ii 1m is being used. High~spced. high-resolulion bitmap or VC(:t(lt"" systems are expensive, because the drive electronics and CRT itself must be designed and calibrated carefully . As speed and resolUliOll decrease . COSl5 arc reduced dramatically .

The recently developed C ) ""c<HQr technique embeds in paper millions of microcapsuLes filled with one of Ihrtt colored dyes---cyan . ma.l:C"nta. Of" yellow. The capsules harden seleCtively when exposed to light o f a specific color. For instance , when exposed to green

Camera

Motor to rQUlte colOr -

Fig. 4 .11 A film recorder tot making color photographs uslng colored filters.

- - .. ..

Page 168: Coputer Graphics Principles and Practices

164 Graphfcs Hardwar.

TABLE 4 .1 A COMPARISON OF SfVERAL MONOCHROME HARDCOPY TECHNOLOGIES·

"'" "'" Ek«ro- '0k p'"uer malri" , Ialic 1._ i« TMnnal

iruen ~ity leveh per clot 2 2 2 2 2_many , addressabilily. poJr"~ per inch 1000+ w 250 "' 400 <01500 m 200 to ZOO clot o.i''c. thou!I.andth5 of inch 6- IS 1(}-18 8 , 8- 20 7-10 relative cool nnge L -M VL-L M ... H L- M L -M relallve COSI per image I. VI. M M I. M image quality '~M L--M M H M M

'po'" I. M H- H M-H M M

" 'ilL ~ ' "') I ...... L" 1,_. M - ,na.lj .. ",. H - hij;h .

1'100,. m • ." 10800 6-20 C-H H H I.

light, chemicals in lho:: m~en[a-filled capsule cau~ that C'.ipsule to harden. The paper i_~

paS!.e<lthrough pressure rollen :md pressed against a sheet of plain paper. T he unhardened capsules (c)'lln and yellow, in this example) brealr.:, but the har<kned capsule (magenta) does not. The c)'lln and yellO'W colors mix and are transferred to lhe plain paper . creating a high-quality green image. Unlike mmt other technologies. this o ne requim; only a single: pass.

Table 4 . 1 summarizes t~ d ifferences among b lack-and-white hardcopy devices; Table 4 .2 COYc:rs most of Ihe: colo r hardcopy devices. Considerable detai l on the technology of hardcopy de ... ices can be found in rOURBS8j . The Cllrrent pac~ of te1:hnotogical innovation is. of course, so great that the relative: advantage;; and disadvantages of some of the:se device:s will surely c hange. Also. some of the technologies are av.Bablc: in • wid~ range of prices and performances. F ilm record~rs and pen ploue:rs. !Of' inSiance:, can cost from about $1000 10 $ 100.000.

N()(e thilt, o f all the color d~ices. only (he film reoorder. Cycol.or, and ~~ ink-je:t printers can co~ure :l wide range o f col~. All Inc otOcr te:ctmo logies UK Q!>enlially a b inary on-otf control for the three or four co lors they can record difIXtiy . No te also that color control is tricky: there is no g uarantee that the eight colo rs on one de:vic~ will look anything like the eight colors on the: display or on another hardcopy device (Ct\apter 13).

Wide lascr printers are becoming available : they will slowly prttmpt electrostatic p loueB, which have a lower contrast ratio bc:t~'Cen black and white and are I1lOn d iffi cuillo maintain.

TASLE 4 _2 A COf.APAAISON OF SEVERAL COlOR HARDCOPY TECHNOLOGIES·

"0 Do< Electro- I" ~Iouer ,.,...Iri" Sl»lic '=< F """".1 """,'

color le\'cls per dOl 1<> 16 8 8 8 8- many S-~, m • ." uddressabilily, poim$ rer inch 1000+ 10250 ,. 4()0 to 1500 \0 ZOO ( 0 200 ~ 800 dot $izc . IhoYSII1!d!h~ (If inch IS-" ]8-10 8 5 20-8 10-7 :ID-6 re]ll.l l<'e COSI r311FJ: L- M VI. M- H M-H C-M M M ... ~1aIi<'e COS! per image L VI. M M I. M H image qua lily C-M I. M H M M - H M- H S~d I. C-M M M M C-M I.

· Y L ... ~.-y law. L - low . M - medium. H ~ high.

Page 169: Coputer Graphics Principles and Practices

4.2 Diaplwr T_ctn0f0gie8 ,., 4.2 DISPLAY TECHNOLOGIES

Interactive computer graphi~ demands display devices whose images can be changed quickly . Nonpermanent image displays allow an iml8c to be changed. making possible dynamic mo'<'emcnl of portions of an imll8c . The CRT is by far the I1lOSt common display device and will remain so for many )'UTS. However. solid·state technologies are being developed Ihat rna). in the lana:: term. substantially reduce the dominance: of the CRT.

The monochromatic CRTs used for graphics d~lays are essentially the same as those used in black-Bnd-white home television scts. Figure 4 . 12 shooNs • highly stylized CTOSS·secUIH1.iJ v~ of a CRT The electron gun emits a stream of electrons thai is accelcn.led toward the phosphor-coaled 8Creen by • high poa:itive voltage applied near the face of the lube. On the way to !he screen. the electrons are forced inlO a lW'l'!JW beam by the focusing mechanism and are directed toward a paniculu point on the scru:n by the magnetic field produced by the defl«:tion coils. When the eJectrom hit ttle screen, the phospt.o£ emil$ "i~ib le IIghL Because the phosphor's light output decays exponentially with lime. the enCire pi(:ture must be nfr~sh~d (redrawn) many times per second , SO thai the viCl/loQ' $eCS ....... at appean to be 1\ constant. t1n ft ick.c.ring pK:lure .

The refresh fIlte for raster-scan displays is t1suaJly III ieasl 60 frames per second, and is independent of piclUre complexilY. The refresh rate for veclor systems; depends dinlctly on picture complexity (numba of lines. poinl!J . and chancten); TIle greater the «>mpk:K.iIY , the lonaer thc time taken by It single refresh ~Ie and tbe lower the refresh rate.

11Ie stream of electrOns from the heated catOOde is accelerated toward the phosphor by II high \oOItage . typ icaUy 15 .000 to 20,000 '-OIlS. whkh determines lhc wlocilY achiCYed by the ek ..... t.iQns before they hit the phosphor. The control·grid voltage detcnnines how many electrons are aclually in the electron beam. The mort negative the control-grid vollll8e is, tnt fewer the c1«U'Ons lhal pass through tnt grid. 'rbis phenomenon a1kl1N$ the spoc'~

HeatlnQ f,lament

Ele<:lron

0""

COntrol

0""

Defl,chon =1.

ImerlOr metaUIC coating at hJgh po.rtive Voltaga

Scr • ...,

Fig . 4 .12 Cross-section of iii CRT (not to seale),

Page 170: Coputer Graphics Principles and Practices

, 56 Graphics Hard_are

intensity to be controlled, because the light OUtpuf of the pholiphor threases lIS the nwnber o f eieclro m in the beam decreases.

TIle focusing system conccnlf'8tes the eiecl10n beam so thaI the: beam \::OfIverges to a small point when it hits the phosphor coating . II is nex enough for fhe d ectroos in the beam to move parallel 10 one: another. They would di~e: bel::ause of electron repulsion . SO the focusing syste:m most make them converge to counteract the divergence. With the exceJl(ion of this tendency 10 diverge, focusing an electron beam is analogous to focusing a light beam. An optical lens and an ek:clfOn lem both haw: a fOQ.] d is t.ance, whk:h in the Ca.5C of the: CRT is sel such that the beam is focused on the screen. The crms-sectional electron density of the belltn is Gaussian (thaI is. /101lTIlll). and the intensity of tile light spot created on the phosphor has the same distribution , as was shown in Fig . 4 .3 . The spot thus has no distinct edge> , and hence spot siu is usually specified as Ihe: diameter at which the intensify is 50 percerx of that at the: celll:er o f the spot. 1bc typical spot size in a high·resoIution monod>rofm' CRT ;~ 0 .005 inches.

Figure 4 . 13 ilIustnltcs both the focu.s.ing system of and a d iffi cul ty with C RTs. The beam is shown in two positions. In one case . the beam converges at the point at which it strikes the~. In me second case, ~, the convergence poinl is behind the screen . and tt\e ~hing image is therefore somewhat blurred. why bas this tmppened? The faceplates of most C RTs are neatly flat . and hence tuve a radius of c urvature far greater than fhe d istance from the lens to the screen. Thus. not all poin ls on the screen are equidil;tant from the: len!. and if the beam is in focus wh~n it is directed at the centC!r of the 5CreeTI. il is nOl in focus anywhere else OIl the screen. The funher the beam i~ defk:cted from the cerMCT. the more dc:focused if is . In h igh-precision displays, the system solves this problem by focusing the lens dynamically as a function of the beam's position: making C RTs with sharply curved facqMtes is not a gocxI solution .

When the electron beam strikes the phosphor-coatcd scn:en of the CRT. the ind ividual c:lectron.~ are moving with k ine tic energy proponioMJ 10 the a<::celeration voltage. Some of this energy is d isSiJ»lted as tlc:at. but tile rest ~~ transferred to the c:k:ctrons of the phosphOI'

De/lected beilm converQh Inside

faceplate

unoef\ec1ed beam COfl\o>ergas at

faceplate

10---- Focal ~ngth

Fig . • . , 3 Focusing of the electron beam . The 'ocal /engl" varIes as a function o f the deflection angfe .

Page 171: Coputer Graphics Principles and Practices

4 .2 Di .. "..V Technok)gie. 157

atoms. milking IIlt'm j ump to higha quanlum-CfM:fXY levels. In returning lu their previous q uantum levels, t.he:se excited d ec'"'"' giYe up lkelr Clltra energy in the form of light, al frequencies (i.e., colon;) predict.cd by quantum theory. Any given phosphor has several different quantum levels to whkh eloctrons can be excited, each oorTe$pOfKl.ing to 8 color associated with the return to an unexcited stale. Further, electrons on some: k:Yt:)s arc k:s.s stable and refum 10 the unexcited Wile more rapidly than others. A phosphor's ftuort'.~,,!'ncf'

is the: light emitted as these very unstabte electrons lose thc:ir excess energy while the phosphor is being suuck by doclrons. Phosphor~n« is the liglll giYCn off by the return of lhe rdatively more stable Cllciled electrons 10 their unexcited state once the decltOfl beam Cllcitation is reJJ'lOYCd . Witl1 typica.l phosphors, mOSl of the light emitted is phosphores­cence, since the excitation and hence the fluorescence usually last j WII a fl1lCtion of a m icrosecond. A phosphor's peniSl/!na is defined as the time from the rentOYai of excitation 10 the mometlt when phosphorescenex has decayed to 10 percent of the inilial light OtJlput. The range of pcr$iSlence of different phosphors can I'C4Ch many sccCJn<b. WI 100 ll101M

pOOsphor.; used in graphics equipmenl II is usual ly 10 1060 microsc;(l()I'\(js . This lighl outpul decays expoIlCntially wilh time. Chanc1eristics of phosphors are detailed in [SHER79].

The refrt:Sh rote of a CRT is the number of t imes per second the image is m:lrawn; if is Iypically 60 per second fur raster displays. All the refresh rate decreases. jlicter develops because the eye Clln no longer irMCgrate Ibe individual light impulses coming from a pixel. The ~frcsh nne aboYe which a picture Mops flickering and fuses iNO a steady image is callod the criJicai flUionf~~lIcy, or CFF. 1bc process of fusion is familiar 10 all of us; it OCCUJ'S ·whenever ~ watch tele\lision or motion pictures. A flicker-free pkture appears constant or Sleady 10 the viewer, even though. in facl . any given poillt is "ofr' much longer than it is '.' 011 . "

One detenninant of lhe CFF is the phosphor's persistence: The longer the persistence. the lower the CFF. The relation bclween fusion frequency and penistmce is nonlinear. Doubling pusistenoe does not halYC the CFF. As per5istcnce increases into the SC\'ef"3.1-second range. the fusion frequency becomes quite small. At the other extreme. even a phosphor wilh absolutely no perSistence at all can be u.'iCd, since all.he eye really requires is 10 see some light for a short period of time, ~Ied at a fre<juency 81love the CFF.

Persistence is 110( the only factor affecting CFF. CFF also increases with im. intensilY and with ambient room lighting, and varies with different wavdenglhs of emiacd ligh! . Finally. i( deperxb OIl the observer. Fusion iii:, afier all . a physiological phcllo menon. and diffCf"eI1Ct:§ among viewcn of up to 20 Hz io CFFhave been reported [R0G083J . Cited fusion frequencies 8f'C thus usually averages for a luge number o f obsenooers. Eliminating fltcker fOf 99 percenl of VieweR of ~ry high-intensity images (especially prevalent with blaclt-on-wnitc r8S1er displays) requires refresh rates of 80 to 90 Hz.

The horizrmlal scan rol~ is lhe number of SCln lines pel" second dw the circuiby driving • CRT is able to disptay . "The rate is approximately the product of the refresh role and the number of scali lines. For a gi~ scan rate, ItO increase in the refresh nile means a decrease i" the number of scan lines.

The r~lldjOfl of a monochromatic CRT is defined jusl 3$ is resolution for hardcopy devices. ResoIlition is usually measured with a shrinki"R rost~r. A known number of equally spaced paralJel lines that altemale belween black and while are d ispla)'ed . and the intttliite spacing is uniformly decreased until the lines just begin 10 mn-ge togcther inlo 8 uniform

Page 172: Coputer Graphics Principles and Practices

158 Graphics Hardwllre

field of gtay. This merging happens at OIbout tht= point where the ineerline spacing i~ equal to the d iameter at which the spot intensity is 60 percent of tile intensity at the center o f the spot. The resolution is the distance between the tWO outennostlines. divided by the number o f lines in the raster. There IS II cle y dependence bet...een spot size and achievable resolution: The larger the iipOt size. the lower the achievable resolution .

In the shrinking-raster ptoCe5ll. the interline spacing is dc:ereased nol by modifying tne contents of a raster bitmap. but by changing the gain (amount of amplification) of the vcnical or horizontal deflection amplifiers, depending on whcthet" the ~rticaJ or horizontal resolution is being measured. These amplifiers control how" large an ~a on the SCfUn is covered by the b itmil.p image . Thus. CRT resolution is (properly) not a fllnction of the bitmap resolut ion , but may be either higher or lower than that of the bitmap_

Resolution is nOC a canMan!. As the number of electrons in the heltm increases , resolution tends to decrease, because a bright line is wider than a dim line. This effect is II

result of blocM. the tendency of it phosphor's excitation 10 spn::ad $Omcwhat beyond tbe iU'eM being bombarded, and a lso occun. because th e &pol size of an intense electron beam is bigger than that of a .....eak beam . Vertical resolution on II. rasteI" monitor is detennined primarily by spot size; irthe vertical resolution is nlines per ioch, the spot size needs to ~ about lIn inc:hes. Horizontal resolution (in which the line_pairs are vertkal) is determined by both spoc siz.e i\nd the speed with which the clcctron beam can be turned 011 and o ff as it movcs horizonlally ac:ross the: screen. This rate is related to the bandwidth or the d.ispiay . as discussed in lhe nett paragraph. Research on defining the re$Olution of a display precisely and on our ability to perceive images is ongoing . The nwduialiQl1 trollsftr jwtcliolf, used extensively m this research, relates a device's inpuisignal to its output signallSNYD8S j.

Tht bandwidlh of II. monitOf has to do with the speed with whkh lhc: electron gun can be turned on or off. To achteve a horirontal resolution of If pixels per- scan line, it must be possible to tum the electron gun on at least nI2 times and off another nl2 times in one 5(:an line . in on:Ier to create alternating on and off lines . Considu a raster scan of 1000 lines by tOOO piXels. displayed at a bO-Hz refresh rate. One pix.el is drawn in about 11 nanoseconds (WHITB4J. SO the period of an on--<Jtf cycle is about 22 nanoseconds. which ~nd.s 10 a frequency of 45 MHz. This frequency is the minimum bandwidth needed to achieve 1000 lines (500 line-pai~) of resolution. but is not the actual bandwidth because we have ignored the effect of spot size. The nonzero spot sil:e must be compensated fOI with a higher bandwidth whieh QlUse.s the beam to tum Of! and off more quickly , giving the pixels sharp« edges than they v.oukt have Otherwise. It is not unusual for the actual bandwidth ofa 1000 by 1000 monitOl" to be 100 MHz. The actual relationships among resolut ion, bandwidth . and spot size IU"C complex, and only recently has progress been made in quamifying them [INFA8S1 .

Color televisioo sets and eclor raster displays use some form of lhado'W-mask CRT. Here . the inside of the tube's viewing surface is covered with closely spaced groups of red , green, and blue phosphor dots. The dot groups are so small thai light emanating frum the individual dOlS is perceived by the viev.er as II mixture of the mree ooIors . Thus. II wide range of colors can be produced by each group, depending on how strongly each individual phosphor dol is excited . A sluJdow maJk. which ;5 a thin metal plate perfOr1lled with many small hates and mounted clO§C to the viewing surface . is c:.arefuUy aligned so that each 0(

Page 173: Coputer Graphics Principles and Practices

4 .2 Diaplay Twd.lOIogl .. 159

the: Ih," dearoo. beams (one c:itCh (or red, arceo., aud blue) c.o hit only one type o f

phosphor dot. The dots thus can be exciled selec:livdy. Figure 4 . 14 shows one: of the mosc common types of shadow-mask CRT . a della-ddta

CRT . The phosphor dots are ammged in a triangular triad pattern, as ace the three eiecuun guns . The guns are denected together. and are aimed (converged) at the same point on the viewing surface. The shadow m!tSk has one small hole for each triad . The ttoles are precisely aligned with respect to both the triads and the eJectroc\ gWlS, so thai each dot in the triad is exposed to electrons from only one gun . High-precision deJta-de]u e RTs are particuwly difficult to keep in alignmenl . An :lIternau\Oe /UTangemenl. the precision in·line rklla CRT shown in Fig. 4.1 5, is easier to convcrge and is gainina in popularity for hiJ!:h-precision (1000-scan- li~) monitor'S. In this case, the three beams simul taneously ClIOpo!oC three i~line phosphor dots . However, tbe: in-line arnlngement cSocs sliJhtly reduce image sharpness at the ooges of the tube. Still in the resean:h laboralOf)' but likely to become commercially viable is thejfat-pcIn~1 color e ll. in whkh the eleetron beams mOYe parallel 10 the viewing surface. and arc: then turned 90" to strike the surface.

The need for tnc shadow mask and Diads imposes a limit on the resolut ion of co/or CRTs not present with monochrome CRTs. In very high-resolution tubes , the triads are placed on abool O.21·millimeter centers: Ihose in home television lubes are on about O.60-millimeter cenlers (this distance is llllso called the pitch of the lube). Becaw;e a finely focused beam cannot be guaranteed to hit ex.actly in the center of II shadoo.v-mask hole. the beam diameter ( the diameter al which the intensify is 50 pcn:ent of the maximum) rowl be about t times tile pitch. Thus, on a mast with a pitch or O.25-millimetef (0 .01 inches).

Fig. 4 .14 Oelta-delta snadow-mask CAT . The three guns and phOspl"\or dots life arranged in II criaogular (delta) pattem. The shadow mask anows electrons from each gun to hit onl.,. the cor'esponding phospnor dots.

Page 174: Coputer Graphics Principles and Practices

160 Graphics Hardware

PhOSpI'Iors on glass fllcttplllte

~

~MelaJ mllsk

Fig. 4.15 A prec ision in-line CRT: the tnree election guns ire in ;) lina.

the beam is about 0 .018 inches across. 3nd the resolution can be no mon: than about ~ "" 55 lines pel' inch. 00 a O.25-mill imeter p ilch. 19-inch (diag<lnal measure) mI.In ilOT. whkh is about 15 .5 inches wide by 11 .6 inches h igh lCONR85). lhe resolution achKvable is thus o nly 15.5 x 55 ,. 850 by 11 .6 x 55 = 638 . This value compares ~;th a Iypicil l addres.~ab iJity of 1280 by 1024. or 1024 by 800. As illustrated in Fig. 4 .2 . a resolut ion somewhat less than the addressability is useful.

T he pitch of the shadow mask is clearly an important limit OIl the resolution of shadow-mas!.:. CRTIl . As pitch decrease!i. n$Olution can increas.e (lI.SSurning bandwidth. "'od dOl size are appropriate ). The ","aller the pitch is. however. the more d ifficult the tube i.~ to manu(ao..1.ure. A yuan-pitch shOOow mask is more fragi le. making it mCM"e d ifficult to mount. It is also TIlOI'e likely to "'-'arp fro m heating by the electron beam. T he fio' -It:nsiOll.mast lube has 1:1 Rat faceplaTe , with the mask stretched tightly to ffilIinlain it. .. position; a pitch of 0 . 15 millimeter is achiev8bie with this techlKllogy.

The shadow mask also limits CRT brightne&S. Typically, only 20 percent of the electrons in the beam hit Inc phosphors--the TCSt !-ii! the mask . Thus. few.-:r elcctrons make lighllhan in a monochrome C RT. The number o f electrollS in the beam ( the beam current) ~an be incrc.ascd. btlt a higoo- currenl makes focusi ng more d ifficult lllld also ~enerates more beat on the shadow ma~, funher eJllICerbating mask warping . Bea.use the ftatlension mm is more resistant [0 heating distort ions, it I:IlIows a higher beam current and hence a brighter image .

Most high-quality shadow~mask CRrs have diagonals of 15 to 2 1 inches, with slightty c urved faceplates that creale optical distortions for the "i~r. Several types of nat-fllec CRTs are bccoming available, induding a 29-indi-diagonal tube with a pitch of 0 .31 millimeter . Of eoun<e, the price is h igh. but it will \."Ome lIuwn as demand de~lops .

Page 175: Coputer Graphics Principles and Practices

4 .2 ,., TIle dinet-.,iew Jt~ tub>.: (DVST) ." ;'i imile to the stlUldard CRT, uccp( mat il docs

nO( need to be refreshed because the image is stom:! as I distribulKm of charges on the inside surface of the screen. Because no ttlTe5h is I'()r'ded, the DVST can dispfay complex images withoul: the high Sl;:an nne and bandwidth requinxl by a conventional CRT. 'The major disadvantage o f the DVSl is that modifying any paI1 of an imnge requires redrawing lhe entire modified image to establish a new charge d isu-ibulion in the DVsr. Thil> redraw can be: unacceptably slow (many $CConds for a complex image).

The ubiquitous Tcktronill 4010 display terminal, based o n the DVST, was die: first IOW<OSl, widely avai lltblc inteotC1ive grapbil;S lenninaJ. It was the Model T of computer graphics . and was so pervasive thai its instruction set became a defacto standard . Even loday . many dispfay systems iJ)(:lude a Tetrroni,ll·compalibiHty feature, so thai buyers can continue to run their (often large) libraries of older software developed for the 4010 . NO'W", hOWC'\.~r. DYSTs hayc been superseded by ruler displays and have essentially disappeared from the graphics scene.

A liqllid-crproJ display (LC~) is made up of six layers, as shown in rig. 4 . 16. The front layer is a ~"lcal polarizer platt: . NeJIOt is a layer with thin grid wires d ectrodeposited on .he surface adjoining the crystals. Neel is. thin (about: OJ)005· inc:h) liquid-crysrallayer, then a layer with horizontal grid wires on the surface DCXt to the crystals. then a horizontal polarizer , and finally II reflector.

The liquid-crystal material is made up of long crystalline molccu.les. The individual molecules normally are arnmgcd in a spiral fashion such that the d irection of polarization of polarized I ight passing lhrough is rotated 90". Ught entering through the front layer is polarized YerticalJy . As the lig ht passes through the liquid crystal, the polarization is l'I)IatOO 90" to horizoncal, so the light flOW passes throug h the rear horizontal polarizer, is re"ecled, and returns through !.he two polarizcrs and crystal.

When the crystals are in an electric field. they all iinc up in the the same direc.ton, and thus have no polarizing effect. Hence . crystals in the dectric ficld do not change the poJarizatton of the transmitted light. l'O ~ light remains vertK-aJly polarized .00 doeEl 1lQ' pass through the rear polarizer: The ligh. is absorbed, so the viewer sees a dark spoc on the d isplay.

.. RBfIect.ive HQfllOllial HorilOM.1I Uqu.id.

layer pOiill'izer grid wife'S crystal lay .. ,

Verticlll WrtOeaI grid polarizer .. ~

Fig. 4 .16 Tne layers of a liqvic:!-crystal d isplay (LCD), all of which ate s.mdwiched together to form a thin panel.

Page 176: Coputer Graphics Principles and Practices

162 Graphics Herctw.r.

A dark spot at point (x" ),,) is created via matrix addres..ri"/i:. Tile poi", I,. ~d=to;:'" by applying a nexalive vollage -v 10 (be horizontal grid wire x, and a positive vol,~c + V [0 tnc vertical g rid wire ),,: Neither -v nor + V is iarge enough to cause the c:ryl>!als to line up , bur their difference is large enough to do so. Now the crystah at (XI' Yl) no longer rotate the direction of polarization o f the transmined ligl1t. so it Temai1l3' v.::rticall ) polarized and does m)( pass through the: rear polarizer: The light is absorbed . so the vie\>.er ~ a dart.:spot on the d isplay.

To display dots at (x,. Yl) and (Xt . yJ. we cannO! simply apply the positive voltage to X, and ~ and [he negative voltage to YI and Y~ that would cause dob to appear at (XI ' '1) ' (x). )'t). (xt . >'j). and (x,:. yJ. because all these pointS will be affected by the vo llage. Rather, the points must be selected in succession. one after the {)(hcr. and this selec tio n proce~ must be repeated. to refresh Ihe activation of c3(;h point. Of course. if >" - )'2. then both point" on the: row can be selel;ted at the ~e time.

1be display is refreshed one row at!!. time, in raster-scan fas hion. Those points in a row that are "on " (i.e. , dark in the case: of a black-on-white LCD display) are .-elected o nly about liN of the time, where N is the number of rows. For(unatcJy , once the <.:rystals art': IiIlCd up. they stay milt way fOT :.everal hundred millisa;onds, even \""~len the voltage is withdrawn (Ine crystals ' equivalent of pho:<.phofS ' persistence) . But even so. the crystal is !lOt switched on all the time.

Aeli,.... ffWlrix pan~s are LCD pands thai have a transisl(N"" al cadI (x. y) grid point. nle (ransislcm; I'W"C used to cause the cryslals to cnange their state quickly. and also 10 control The degree 10 which the state ha~ been changed. These I'M) properties allow LCOs to be used in miniature television 5C1l> wid!. o,;ontinuous· to ne images. The c rystals can also be dyed 10 provide color. Most important. the transistor can serve: as a memory lo r the Slate of a cell and can hold the cell in tnat state until it is changed. Thai is , (he memory provided by tho: transistor enables a cell to remain on all the time and hence to be brigh ter than it would be if it had to be refreshed periodially . Color LCD panels with resolutions up 10 800 by 1000 on a l4-inch diagonal panel have been built.

Advantages uf LCOs are low (;051. low weight . small size, and low power <.:onsumption . In the pll.!.t , the major disadvantage was that LCr>.. were pas.'1i~. rcftecting o nly ifK"ident light and crealing no light of thei r own (although th i$ could be correct~ with hacklighting): Any g lare "'ashed out the imaBe. In recent years. u.o;e of active pands ha, f"t': lTlO\Ied this conCern.

Nonactive LCD technology has becn adllpted to color di!>play.> . and I:. sold commen:ial­Iy as the Tektronix Iiquid-crystal shutler (lCS). The LCS , plac~ in front of II standllrd black-and-white CRT, consisUi of three layers . The back layer. closest to the CRT. i ~ II verlical polarize1". to pob-rize light emitted from tl1c C RT . The laya- idltotl hill> a thin coating of a tran~parent conducti ng material. The next la)'er is the liquid cry"tal. and the third (front) layer is a co lor polarizer that transmits venially pulari7.ed light I"" red and ooril'onta.lly polarized light as green. T his front layer also hlt ~ a thi n co:lt ing o f tn.: transparent conductor. If tile crystals are in their normal state. L~y J"Otllte the polarization plane by 9OQ

• so the lighl i~ hurizontally polarized as it IIppro.1C~s the c(llor polarizer of the third I~. and is. SCCTl as green. If the approprillte volta~c is applied tu the conduo:t i-ve o:oating:. on the front and had; ht~rs . then tht': cry~{at s line...:p and do not affect Ihe "'t:"rt ical polarizalion, so (he lighT is seen as red .

Page 177: Coputer Graphics Principles and Practices

4.2 Display TechnokJgie. ,.3

The crystals are switched back and fonh betwt:1::n their ['AA) states at a rate of 60 Hz. At Ike same time and in synchrony . images to be seen as red and green are alternated 0Jl the monochrome di:splay. MixlUres of red and green are created by intensifying the same spot during the red and green phases , potentially with different intensities.

The LCS is an alternative to the shadow-mask CRT, but has limited oolor resolution. It is possible, however, that this technology can be extended to \OoQI'Ic with three colors. If it can be, the shadal.oi mask will no klRger be a limiting facto!' in achieving higher-resolulKln full-color displays. Spot size and bandwidth will be the major determinants, as with monochrome CRTs . Eliminating the shoo.ow mask also will increase ruggedness. Because LCD displays an:: small and light, tRey can be used in head-mounted displays such as that discussed in Section 8.1.6.

The plasma paru!1 is an array of tiny neon bulbs . Each bulb can be put into an "on" (intensified) state or an . 'off'" state, and remains in the state until explicitly changed to the other. This memory property means that plasma panels need noI be refreshed. Plasma panels typically have 50 to 12.5 cells per inch, with a 10- to 15-inch di~na1, but 40- by 4O-inch panels with 50 <;:eils per inch are sold commucially, and even larger and denser panels can be custom-made.

The neon bulbs are not discrete units, but rather are part of a single integrated ()Ilnel made of three layers of glass . as seen in Fig. 4.1 7 . The inside surfa~ of the front la)'ef has thin Yert.ical strips of an electrical conductor; the cenler !ayes- has a number o f ho les (the bulbs), and the inside surface of the rear layer has thin horizontal strips of au electrical conductor. Matrix addressing is used to tum bul~ 011 and off. To tum on a bulb, the system adjusts the voltages on the com::sponding lines such that their difference is large enough to pull electrons from the neon molecules, thus tiring the bulb and making it glow. Once the glow starts , a lower voltage is applied to sustain it. To tum off a bulb, the system momentarily decn:ases tbe voltages on the appropriAte lines to less than tbe sustaining

, , , , , , , Horizontal

~ ... ~'" (y address)

Glass plate w;m ",",

" " " , Vanical

.", wire.

(x .sorBSI)

.. Viewing ~ .. '1ion

Fig. 4.17 The levers of a plasma display. all of which are sandwiched togetller to form a then panel.

Page 178: Coputer Graphics Principles and Practices

164 Graphics Hardw'are

voltage. Bulbs can be turned on or o ff in alxxit 15 microseconds. In ~ome pane! desiJ;llS. the inuividual cells are replaced with an open cavity, because the neon glow is contained in a klcaliz.c:d area . 1n Ihis case:, the from and back glass layers are separated by spacers. Some plasma panels can also dispby muhiplc: gray leYels.

The pla.~mll. panel has the ad .... "'ntages of hein! flat, transparent , and rogge<! , and of 1I0t

needing a bitmap refresh buffer. It can be used with a rear-projectiOfl system to mix photographIC slides as Slatic bitCkground for computu-generated dynamic graphics, but has found most use in military applications , where small size and ruggedness are important. H(7IotoTVC!'. itll cost, althouSh UKllinually decreaSing, is still relatively high fl)f illS limited resolUlion. Color nas been demonstrated in the 1aboratory , but is not commc.TCially available.

ElectrQlumin~~'Ct'm (EL) djsplo~ consist of the same gridlike SUUC1ure as used in Lm and plasma displays. Bet\\.~en the front and back panels is a th in (typically 5QO-na nometers) layer of an electroluminescent material , such as zinc sulfide doped with manganese, that cmil~ light wh<:n in a high cl<:(;tric field (alo"ut 10' vul ts pt:r cen1imeter-). A point on the: panel is illuminated via the matri)(·addrcssing scheme . sevc:11ll hundred volts being placed across the horizontal and vertical selection lines . Color d ec«roluminescent displays are also available.

These d isplays are bright and can be switched on and off quickly, and transistors al each pi)(el can hi: used to st~ the image. Typical panel sizes arc: 6 by 8 inches up 10 12 by 16 indteS. with 70 addressable dots per inch. These displays' major disadvantage is Ihal their ~ consumptio n is higher than that of the LCD panel . H~'CY«, their br'igttlrlC:SS has led to their Il.<>e in some portable <:omputen; .

ElectrophoretiC displays use posiliw:ly chargc(j colored particles suspended in a solution o f a contrasting color. sealed between tWll parallel. doseJy spaced plates that h~ matrix-addressing sekc tion lines. A negative VOltage on the front selection line and a positive YOltage on the rear selection line pulls the colored par1icles toward the (ront plate, where they are seen instead o f lhe <:o lored liqu id . Re..crsing the WJltages pulls Ihe patticles t('!Ward the n:ar plate , so the CIllored liquid is seen . The display has a Im:mory: 1be particles Stay wtlef'e the)' have been placed until moved eJ!.plicitly.

Most large -screen displays use some fonn of proftoion CRT, in which the light from a §mall (sevcral-inch·diameter) but very bright monchrome CRT is magnified and projected from a curved mirror. Color 5~ems use three pi"ojectors with rod , geren , and blue fil ters. 1\ ~O'W-masl; C RT UUQ nOt creal!! enough light to be projected onto a laq;e (2·meler-diagonal) screen.

Thc GE lixht-mlve pr~iecljon .lptem is used for very large screens, where the light output from the projection CRT would nQl be sufficient. A light valve is just what its ruune implies: A mcchani,;rn fo r cuntroJling how much light passes through a valve. 1be light source can have much h igher intensity than a CRT. In the most common approach, an eleclron gun t~ ~n image 00 II thin o il 11 1m on a piece of glass. 1bc: d«tTOn charge cauSCl; the film 10 vary in thickrte:;s: A ~ti\ICly charged atea of the film is "s~tched

our . " >IS th~ electrons repel one another. causing rhe film 10 beCQmc thinner. Light from the high-intensit), source i~ directed at the glass, and is refrac ted in different directions because of the variatio n in the thickness of the oi l fi lm . Optics involving &:hlieren bars a nd lenses projecl light Ihat is rc:fractcd in cettain directions on the screen. while other light is not

Page 179: Coputer Graphics Principles and Practices

4 .3 Rast er-searl Di..,..., Systems , .. TABLE " .3 COMPARISON OF DfSPlAY TECHNCl..OGES

El"""'- UquMi PWma CRT luminescent ~staJ ~"'"

power (:oosunlpc ion fair fair- good ~"'"'" fair KI"CCn site Q<celknt good fair ucel!.!.n! d<p<h ""'" exccBent acellent good weight ""'" uoclk:nt CJlcelJcnl excellent

l'1.IUedness fair-g<JOd good-a.ccllent ~l ... exeelk:nt briahtness ex.cellent exccl lmc tair-soo<J exoeUent ~iJily good-aceJknl good fair"""1fDOd ""'" ~""" good--aoeJlent good fair good intensity levels ptt dot ~I ... fair fair fait viewi", angle c:xoelknl ""'" po<>" pxw:I-cxcel lent color- capMlility excellent good good rair J"dai~ CO&! range low medilun-ttig,h low ~h

projeclcd . Color is possible with these sysLeans. through use of either three projectors or II more sophislkated sec of opfk~ with a single projector. More detai ls are given in (SHER79I . Other similar light-val\'(; systems use LeOs to modulate the light beam.

Table 4 .3 summarizes me characteristiCs of Ihe four m:Uot display techllologies. 'The pace of technological innovation is such, ~. that some of the relationships may change over the flQt few years. Also, llOle thaI the liquid-crystaJ comparisons are for passi~ addressing: with active matrix addressing; gray leo.ds and colors are ach ievable. M ore detailed information o n rhese display tcclJnologies is giYen in (APT85; BALD8.5; CONR8S ; PERR8S; SHER79; and TAN NSS).

4 .3 RASTER-SCAN DISPLAY SYSTEMS

The basic concepts of raster g raphics systems were presented in C h.apter I , and Chapter 2 provided further insight inlo the types of OperaliOllS possible with a raSler display. In this section. ~ discuss the various elemenbi of a raster display, sttessing 1\\0 fu ndamental ways in which ..viOU5 raster systems ditrc:r one from another.

First, most raster displays have some specialized h.atdware to assist in scan converting output primitives into the p ixmap , and to perfonn the raster operations ofmoving . copying. and modifying piJ[e1s or blocks of pillels . We call this hardwan:: • graphicJ dispilly procasor. The fundamental difference among display systems is how much the display processor- docs YerSUS bow much must be done by the: gnprucs subroutine package elleCuting on the gencr.t.I-purpose CPU thaI d r iYeS the raster display . Note that the graphics display processor is aha sometimes called a (trophies cmurolkr (emphasizing its s imilarity to the control unils for olila' peripheral devices) or a display coprocasor. The soc:ond key ditrerentiato r i. ra5(er systems is the relat ionship between the pixmap and lbe address space of the general.purpose compl.uer·s memory . whether the pixmap is part of the general­purpose computer 's memOf")' o r is sep:u-nle .

In Section 4.3 . 1, we in troduce a Simple r!Wer display consisting of a CPU containing lhe piltmap as pan of its memory . and a vKJeo controlhdriving a CRT. There is no display processor. so .he C PU does both the appl ication and graphics ~rlc In Section 4 .3 .2, a

Page 180: Coputer Graphics Principles and Practices

, 88 Gr~ HlIrctw.re

graphics ,,~ wilh a sepanllc pixmap is inr:roduccd, and a wide range of graphic,,· procnsor functionalities is di"'!Jsreri in Section 4 .3.3. Section 4 .3.4 discusses ways in which the pixmap can be intcgllltcd back imo the CPU's address space, given the existence of a ir.lphics processor .

4 .3 .1 Simple R •• ter Disptay System

1l1e simplesl and mosc common I1lner display syslCm organization is shO'-'ln in Fi8 . 4 . 18 . The relal ion between memory and the CPU is exactly Inc same as in a nongr.lphks compulCr ~ystem. HOWCIICr. a portion of the memary also serves as t!le pixmap. The video controlk'r displays the image defined in the frame buffer. accessing tbe memory through a separate access port as often as the raster-scan ralC d ictates . In many systems, a fixed portion of memory is pennanenlly Ililocalcd 10 the frame buffer. whereas .some s~lems

have: se.-eral interchangeable memory areas (sometimes called pages in the persolllll­compucer world). Yet Q(1\er systems can designate (via a register) any part of me:mory for the frame buffer. In this case. the lystem may be organized as shOW"n in Fig. 4 . 19 . or the entire sYSlem memory may be dual-ported .

The 8Wltcation program and graphics subf"Outine packaie share the system memory and are executed by the CPU . The graphics package includes scan-l;O!lversion procedures , so that when lhe appl ication program calls, say . SRGP_ lineC(IOI"d, (xl, )"1, xl , ),2) , the araphtcs package can set the appropriate piJr.cls in me frame: buffer (details o n scan­cORYCI"Sion procedUIU were gj~n in Chapter 3). Because the frame buffer is in the address space of tM CPU. tM graphics package can easily access it to set pixels and to implement the P ixBlt instructions described in Chapter 2 .

The video control le r cycles through the frame buffer. one scan lioe at a time, typical ly 60 times pet" second. Memory refe~ addresses are generated in synchrony with the raster scan . and the contents of the memOt-y are used to contTOl the CRT beam's. intenllil)' or

CPU p-, """""

" System Frame """" / ~.., """"' .....- """"'" '-

Fig. 4 ,18 A common raste r dispfay sys.tem arenitBCtUr • . A dedicated portion of the system memory is du.ported, 10 that it can be accessed directly by the video controller, without the system bus being t ied up.

Page 181: Coputer Graphics Principles and Practices

4 .3 ,.7

CPU Peripheral . .-. '"

~ . ,)'

Srllem V1d~

, """''''' mem<>O' controller

./

Fi1il . 4 .19 A simp le raSter d isplay system arcnitectUfe. BltClluse the frame buff81 m ay be stOted anywhere ill system memory. the lIideo contro ller accesses the memory via the syst em bus .

colOr. 1be video controller is organized as shown in Fig. 4 .20. 11K raster-scan generato r produces defl ection signab [hat generate tbe raslcr scan; it aJso colltl'Ol$ the X and Y address registers . which in tum define the memory location to be acc;:essed next.

Assume that the frame buffer is addressed in x from 0 to..f ..... and in y from 0 to Y ... ,; then , at the start of a R;fresh c)'Cle . the X addre51i ' eaiS1el" is set to zero and the Y register is set to y.,... (tne top scan line) . As the first scan line is generated. lbe X addre. ..... is illCremented up through x_. Each pixel value is felciled and is used to control the intcn$ilY of lhe CRT beam . Afiu the first scan line, the X address is reset to zero and the Y address is decremented by one. The pnxess contmues until the last scan line (y :0: 0) I!> genentled .

Set or incrllm8l'l1 .. • .......

~ ... m 0

y ... en ... ,.., Sel (If deentment , 'Y

Oala ""'~ 1---------0 .... Intensity nlue(e) I •. or color

Fig . 4 .20 loglClIl 0(98nQ81ion of the video controller.

Page 182: Coputer Graphics Principles and Practices

168 Grepf'lics Hardware

In this simplislic situation, one tllCmoL)' l1<;l;e!>S is made 10 the: f,alne l ...... ife' for- ~h pixd to be displayed. For a medium-resolution display o f 640 piuls by 480 lines rerreshcd 60 lime; pet" scoond . a simple W3)' fO ~'timate lite time avaiLab~ for displaying a single l-bit pixd is to calculate:: 11(480 x 640 x 60) = 54 nanoseconds. This calculation igllOre..'i lhe fact thai pixds are nOI bodng l.iisplayo:d during horizontal and venical retrace (see ExeJ"CIse 4 . 10). 8Ul typical RAM memory chips have cycle limes around 200 nanoseconds; They cannot support one acress each ,54 nanoseconds! Thus, the vkloo controller mUSI fetch mulliple p ixel values in one memory cycle. In the ca~ lit hand . the controller m~ht fetch 16 bits in one memOfy ~Ic:: , thereby taking care o f 16 pixels x ,54 nslpil'd "" 864 mmosc:conds o f refresh time. The 16 bits are 10lkkt.! into a register on the video controllu, Ihen are shifted 001 10 control the CRT beam intcllSilY, o ne each 54 nanoseconds. In the 864 nanosecond~ Ihis takes, thc::re is time:: for about four memory cyck'i: one for the video controller and three for the CP U. This. snadng may force the CPU to wait ror memory accesses, polenlill.lly redw;:ing the spc::ed of the CPU by 25 percent . or course, cache memory on the C PU chip Clin be used to arueiorale this problem .

It may not be possible to fe tch 16 pi~ls in one memory C)t:le. Consider Itte situation when tile pixmap is implemented with five 64- KB- rnemory Chips . with each chip able:: 10 deliver 1 bit pet" cycle (this is <:alJed a 64-KB by I chip U'Tganillltion), for a total o f 5 bits in the 200-nanoseconds cycle lime . This is an average of 40 nan()5econd~ per bit (i.e. , per pixel) . which is not much faster than the 54 nanoseconds/pixel scan nue and leaves hardly any time lor lK"CeSSeS to the memory by Ihe CPU (exc~JX during the approximately 7·microserond inlef-scan·line retrace time and 1250-miaosccond interframe vertical rc:trace time) . With five l2-KB by 2 chips. however, iO pixels are delivered in 200 nanoseconds, leaving slightly over half the time available for rhe C PU. With a 1600 by 1200 display, the pixel lime is 1/ (1600 x 1200 )( 60) = 8.7 nanost";(;()oos. With a 200-nanoseconds memory cycle lime, 20018 .7 "" 23 p ilcls rum! he fe tched each cycle, A 1600 x 1200 display needs 1.92 M8 o f memory , whkh call be: provKted by eighl256-KB chips. Again . 2S6-KB by 1 chrps can J'lmvNi" only 8 pi)(.eh per cycle; on the other hand . 32· KB by 8 chips can deliver 64 pi)[eis , freeing ['Ml-thirds of the memory cycles fOl" the C PU.

Access to memO<)' by Inc CPU ami vioJl:o cOl1twller is clearly a problem: Table 4.4-shows that problem's. magnitude. T~ solutton is RAM architectures that 3l;commodatc the needs of raster di~plays . Chapter 18 discusses these archilectures .

We ~ tnus br assumed monochrom e: , \ · bil· pef-pixcl b itmaps. This 'lSsumplion is fine for some applications , but is grossly unsatisfactory for others. Additional cOlluol over the intensilY of ea...-tl pi)[e l is obt:tined hy storing multiple bits for each pixel: 2 bits yield four intensities. and 50 on. The bits can be used to cootmillot o nly intensity , but also colOf'. How many bits per pixel. are needed (Of" a stored image to be percl:ived as naving cont inuous s hlides of gray? Five or 6 bilS are often enough . but 8 o r morc:: bits can be n~sary. Thus, fex color displays, a somewhat simpli lic::d argument suggests that three tiJllCS as many bits are needed : 8 bits for each of the three additive primary ~-oI OfS red, blue , and green (see C hapter 13) ,

Systems whll 24 bits per pixel are still rel:mvely expen~ivc, however, despite the decreasing cost o f solid-~tate: RAM . Furthe::rmore , many color applications do not rt:4ui~ 2:100 differem ~'OIoD in ;1 single pi , lure ( which typkally ha'J onJy 2'" to 201) pixels ), On the o ther hand. there h often need for both a sm all number of colors in a g iven picture o r

Page 183: Coputer Graphics Principles and Practices

4 .3 Raste r-5Can Di~.y Systems 169

TABLE 4 .4 PERCENTAGE OF TIMe AN IMAGE IS BEING TRACED DURING WHICH THE PROCESSOR CAN ACCESS THE MEMORY CONTAINING THE BITMAp·

!JS between Percent of time ViSolbk are.:! Number Pixels accesSC$ by r<.)r pro<."'eMOr

~:<.eIS )( lioe~ Chie sj~ of chil2s ~ access vi~ ~lr~ler accesses

!i12 x 512 ~6K x 1 • 64 0 512 x 512 128K x 2 ,

'" 0 :i l l x 512 64K x 4 • ' 54 20 512 x ,S/2 32K x 8 • = «J 512 x 512 16K x 16 •• 10 17 80

1024 x 1024 2...~6K x 1 , , ... 0 1024 x lOlA 121lK x 2 , • ." 0 1024 X 1024 64K X 4 • •• "" 20 1024 X 10'24 J2K X 8 4 " 407 60 1024 x 1024 16K x 16 • 64 1011 80 1024 x 1024 1M X I • I 16 0 1024 x 1024 MK x 16 I •• ' 54 21 \024 x 1024 32K x 32 I 32 '509 " • A 200· nano.econd memory .'ycle lime ~nd 6O.Hz d15pJay rare are asstlmed througooill . The pixcllimc for ..

_~ ' 2 X 5 12 .;Ii<pLoy i~ n<.urnt:d 10 ~ 64 """"""'o" .... I~; ,h •• (0'1 1024 x 1014. 16 ... tlO5Ccond~ . The"" time>! ""' liberal •• in<:e they do no( inch>de the honzonUll and "'Crlical rtU'lCt: limes; the pj:w:ll~ l.re KluaJ ly about 45 and I J.5 n'll~on,h . rnpectivcly_

application and the ability LO chang<:: colors from picture to pkture Of" from application to applicatM>n. Also, in many image-analysis and image-enharx:emcnt applications , it is desirilble \0 ch:mge the visual appearance of an image wi thout changing the underlying data definin~ the image , in order. say, to display all piu:1s with values below some threshold as black, TO e.'IJm1KI' an intensity IOInge , or to create a pseudocolor display of a monochromatic image .

For these various reaoons, the video controller of raster displays often includes a video look-up rable (also called a look-up table or Lun. The Iook·up table has as many entries as there are pixel values. A pixel's value is used not to control the beam direclly , but rather as an indo; into the look-up table . The table entry's value is used to control lhe intensity or color of the CRT. A pixel value of fi 7 WOIJ ld thus cause: the contents of table enny 67 to be accessed and used to conrrol the CRT beam. This look-up openltion is done ror each pixcl on each display cycle, so the table mUSl be 8IC«S'libk: quickly , and the C PU musl be: able to load the look.up !able on pTOgl1lm command .

In Fig . 4 .21 , the look-up table is interposed bet ..... een the frame buffer and the CRT display. The frame buffer has 8 bits per pixel. and the Iook-up table therefore has 256 enlries,

The simpk raster display system organizations of Figs. 4. 18 and 4. 19 are used in many inexpensive personal comput~rs . Such a system is inexpensive 10 build, but has a number o f disadvantages . First. scan conven;ion in software is slow . For instance, the (x. y) address o f ellCh pixel on a line must be calculated , then must be translated into a memory address consisting of a byte: and bit-within-byte pair . Although ellCh of me iooilljdual .steps is simple, e3Ch is repeated many limes. Software-ba.sed scan convnsion slows down the

Page 184: Coputer Graphics Principles and Practices

170 Gf"aphics Hardware

I y

Pixel In bilmap al ....... y '

o 0-----=-=-----,0' o 11_ 11"..,.

Frame buffer

2551 1

67 100110100001

Look-Up lable

'00' R G

Rod

Green

•••

• o

Pixel displayed 8 1 It', y'

Ml)(lilor

Fig. 4.21 Organization of iI video look-up table . A pixel With value 67 (binary 010000 111 is displaved on the screen w ith the red electron gun 3t,\of maximum. green 8t"*. and blue alTS"' This look-up t able is shown with 12 bits per entry. Up to 24 bits are common.

overall pace of user interaclion with the application, potentially creating user dissatisfac­tion.

The second disadvantage of this architecture is that as the addressability or the refresh rate o f the display increases , the number of memory accesses made by the v ideo controller also increases, thus decreas ing the number of memory c,."ydes available 10 the CPU. The CPU is thus slOW'Cd down, eo;pecially wi th the architecture ift Fig. 4.19_ With the dual-porting of part of the system memory shown in Fig. 4.18. the slvwdown occurs only when the CPU is accessing the frame buffer, usually for scan conversion or raster operations. These two disadvamages mus t be weighed again!>l tbe ease with which the CPU can access the frame buffer and agaillSt the an:hitcctural si mplicity o f the system.

4.3 .2 Raster Display System with Peripheral Display Processor

The roSIe(" display system with a peripheral display processor is a common architecture (see Fig. 4.22) that avoids the disadvantages of the SImple raster display by introducing a separate graphics processor 10 perform graphics fllnctions s uch as scan conversion and raster operations, a nd a separate frame buffer for image refresh . We now have two processors: ttle genera l-purpose CPU and Ihe speciiiJ-purpose display processor. We also have three memory areas: the syslem memoJ)', the display-processor memory, and Ihe frame buffer. The system me mory holds data plus thC)Se progrums that execute on the C P U: the application program , graphics pac1::age, and operating system. Similarly , the d isplay­processor memory holds data pillS the programs that perform scan conversion and raster operations. The frame buffer contains the displayable image created by the scan-conversion and raster operHtKms.

10 s imple cases , the display processor can consist of specialized Ingic to perform the mappirtg fmm 2D (x , y ) coordinates to a linear memory address. In this case, the scan-conversion and raste(" operations are s ti ll perlOrmed by lhe CPU , so the d isplHY­processor memory is not needed; o nly the frnme buffer is presenl. Mos( periphe ral display processors also perform .scan (."Onve rsion . In this sectioft, we present a prototype system. Its

Page 185: Coputer Graphics Principles and Practices

4.3 Raster-scan Display Systems 171

C PU PWlpheral devices

<' . • '> .

.

[);splay S ysl',lrn processor memory

Display Frame VICl eo processor buff .. ccntrollef MOOllOr _ 0,

"- ./

F;g. 4.22 Raster system architecture with a peripheral display processor.

features an: a (sometimes simplified) composite of many typical commercia1ly available syste ms, such as the plug-in graphic~ cards used with IBM' s PC. :<T. AT, PS , and compatible computers.

The frame: buffer is 1024 by 1024 by 8 bits per pixel, and there is a 25b-entry look-up table of 12 bits, 4 each for red, green . and b lue. The origin is at ~r left, but OfIly the first 768 rows of the pixmap (y in the: range of 0 to 767) are displayed. 1be display has six status registers, which are set by various instructions and affect the execution of other instructions. These are the CP (made up of Ihe X and Y position registers), FILL , INDEX . WMODE. MASK . and PATTERN registers. Their operation is explained n~t.

The instructions for the simple raste r display att as fo llows:

Move (x , y) The X and Y registers that define the current position (CP) are set to x and y. Because the pill map is 1024 by 1024 , x and y must be between 0 and 1023.

MoveR (dx, dy) The values dx and dy are added to the X and Y register.>, thus de fining a new C Po The dx and dy values must be between -1024 and +1023, and are represented in 2's-complement notat ion. The addilt<m may cause overHow and hence a wraparound of the X and Y register values.

Line (x . y) A line is drawn from CP to (x, y) , and this position becomes the new CPo

Line.R (d", dy) A lin~ is drawn from CP to CP + (th , dy) , and thi~ po~ition becomes the new CPo

Point (x . y ) The pixel al Ct" . y ) i.~ sef , and this position becomes the new CPo

PointR (dx. dy) The pixd at CP + (dx, dy) is set, and this position become:> the new CPo

Page 186: Coputer Graphics Principles and Practices

172 Graphic. Hardware

Reel (.." y) A rectQnglc is d..-n bclw=n the c r and (x , y), The C P j ~ ullltrTOXII;:U.

RectR (d:c, dy) A rectangle is drawn between the C P and CP + (d..: , dy). The parameterdx no be thought of as the rectangle width, and dy as the height. The CP is tlnaffected .

Te:>. t (n , address) The" "haracten. at memory location addreSS ~ displayed. starting at the CPo Char3(;te rs are defi ned on a 7_ by 9-pixel grid, with 2 e:>.tra pixels of vertical and hor izonta l Sp;ldng to separate (.-haractef1 and lines. The CP is updated to the Jower-Ieft corllC1'" of the area in which cnaral..'ter n + I \WlUld be di5iplaycd.

Circle (mditls) A circle ~ drawn centered at the C P_ 'Ibe CP is unaffected .

Arc (radiu~ , startAnxfe, endAng{e) An arc of a ci rcle cenlered at the C P h" drawn . Angles are in tenths or It degree . meas urro positively counterclOCKwise from tho<: x ax is. Thr CP i ~ ImaffC"Ctt.xL

CircleSector (radius •. f/artAnx/e, endAnK/1.") A ' 'pie sl ice" is drawn consisting o f a dosed an:a with lines going ftom the CP 10 the endpoint~ of the arc_ Tile C P is unaffec ted

Polygon (n . uddrt.'!;s ) At addr"-f is stored a vertex list (XI' ,Y,. xz.)',o. Xa' )'3' , . . Xo' y.). A polygon i ~ druwn starting al (XI' )"1 )' through all the verte:<es up to (x~, Y.). anc11hcn back 10 ( X l ' >"1) ' The C P is unaffected.

AreaFil1 (flux) The flag i:o. u.;e(\ 10 set the FILL flag in the raster dispu y. When thoe Hag i .~

set to Q~ (by a nonzero value of ftn~~) , all the areas c reated by the commands Reel, RectR, Circle . CircleSect()(, Pulygon an: filled in as they are created , using the panem defined with the Pattern command .

PiltclVa!ul;: (vu/e.() T~ pixel V"dlue index is loadI::d into the INDEX legi.ner. I L~ yalue is lo"dcd inlo the pixm"p when any of Ihc output primitives in the preceding list are .scan-convened .

PaHem (rnwJ. T"{,w2 . __ , mwl6) The 16 2-bylc argumenL\ define tho: paltem used lu fill areas created by Rect, Rcc!R , Circle. CircICSecl0 .... and Polygon. The pattern is a 16 by 16 "ITa)' of bi ll>. stored in the PATT(;RN .-.:;giste. . When a filled a lea is being c realed and the FILL register is ON, then , if a bit in the PATTERN register is a I. the pixel value in the INDEX register is loaded into Ihe pix map; otherwise. the pix map is unaffected. A solid fi ll is CTCated if all the bits of the PATTERN regis ter are ON .

W 8 lockR (dT, dy. addres:y) 1be 8-bi t pixel YdlUC5 s ton:d starting at address in main memory an: "'finen intu th~ n:clangular n:giofl uf the pixmap from ep to CP + (ax , dy) . Wriling begins at the upper-left corner uf the regM.lfl and proce eds row by row. top to bottom .

RBlockR (d x . dy, addr~) A rectangular region of the pix map. from CP 10 CP + (d..t , dy) . is read rnto the main memory area begjnning at adJreJs. Re ading begins at the: upper. left corner o f the: regKm and prucr:cds row by row. top to bottom .

RasterOp (d..rt, d y • .niI'SI , )deSI) A rectangular regiun of the frame buffer, (rom CP to C P + (dx . dy), is combin~d with the regio n or the Sllme sin."; with I~r-I eft corner at (mest, )Ut!ll). ovcrwriting that region . Tltc co mbination is controlled by the: WMODE regbte r.

WMode (motk) Th.e value of MOd~ IS J(Ja(kd into the: WMODE reg~",-er. This fCgister controls how p".els in the fr .. me buffer arc: combined with any pi~ value being written into the fram c buffcr, TIlt:re are four mode values; replace. xor, and. and or. The

Page 187: Coputer Graphics Principles and Practices

4 .3 Raster-scan Display Systems 173

mocks behave a ~ described in ChaplI~r 2. NUl.: t liat , It,,- simplicity . the pn:c eding command des.criptions have been wriucn as though ft!place wt:re the only write-mode value . In xor mode . nC\»' value!. WTinen into the frame buffer are combined with the

c urrent value using a bit-by-Ilit exctusivC-QT operation.

Mask (ma sk) The R-bit m asl.: value h loaded inlo the MASK regIster. This register controls which hit .... of the frame buffer ar~ mlXlified d uring writing to tne frame buffer: 1 alhM'~ modification of the c o rre!oponding bi l; 0 jnhibit~ modification.

LuT (indeA. red, green , h lue ) Entry i l!(in: in the look-up table h imtl.h:lf with the given colo r specificalion. Tbc low -order 4 bi t .... o f each color component are loaded into the tahle.

Table 4 .5 summarizes the~e commands _ Notice that the MASK and WMODE R'gisters affeet all com ma nds that ""Tite intu the frame bufti..-t-.

The oommand!> and imme diate data are tran.~te rrt:d to the display pruccs.:.or via a fiTSt-in _ fi l'it-o ut (FIFO) buffer (I.e . , a q ueue) in a dedicated portion of the C PU address space . The graphics package places commands into the queue . and the display accesses the instructioll.~ and exccute~ them. F'I)inte rs to the start and e nd of the buffe r are also in specific m emory localions, aCl:essible 10 both the C PU and d isplay . 1be pointer to the start ( )f Ihe buffer is modified by the display processor each time a byte is removed: the poinler tu the: end o f the buffer i!> modilied by the C PU each time a byte is added. Appropriate tes ting is done (0 ensun: thai an empty bulfer is not read and tha t a full buffer is 001 wrinen. Direct memory oc'cc~s b used to fetch the addressed data for the instructions.

A queue IS more anractivt: fUT command pa!.Sing than is a single inslructiOl'l regi ~ [er or localion accessed by the display. First. the varia ble length o f the instructions favor.; the queue concept. Second, the CPU c an get ahead o f the di~play, and queue up a number of display command~ . Wht:n the C PU ha ~ li ni~hed i s ~u i ng d isplay c ommands . it can proceed to d o other '-".Jrk whi le the di~play empties out the queue .

Programming examples. Programming the dis play i ~ similar to using the SRGP package ufChapter 2. so on ly a t(>w examples will be given here . A "Z" rnean.~ that a hexadecimal value is being specified ; an . . A" Il-.can~ thaI the address of the following pare nthetkallh'l is used .

A white line on a completely hlack hackground is created as ro[Jo~.

L,T L,T WMode AreaFil1 Pancrn Mask PixdValue M~

R~

Pixt:lYatue M~

LineR

5 , 0 . 0.0 6, Z' F', Z·f' . Z'F" ","oc,

'roo 32Z' FF Z' FF' , o. 0 ]()23, 167

• 100 . 100 .">00. 400

Look· up-lable ent ry 5 is black Look-up-table entry 6 is white

Turn on the FILL lIag 32 bytes of :111 Is , for w lid pallern Enable writing tu a ll plana s... .. n ";''''",,11 ..... In!!. plM'1 value 0 1 5

Visihle p"rl o f frame buffel n{M' black Scan ~un""rl u~in~ p; ~t:l .,-,Iiue o f 6

D rdW (he Ii ...,

Page 188: Coputer Graphics Principles and Practices

TABLE 4 ,5 SUMMARY OF THE RASTER DISPLAY COMMANDS'

CommarKI mlltmonic

MM, MoveR Line UneR Poinl Poi rnR R<d ReclR Text Circle A. CirdeSet.1nc

""­Are.FiJi Pi~dVa1uc Pancm WBJo;~R RBlodR Ras~rOp M.~

WMod, LoT

Ar&~rnenIS

and Icogills

.t(2), )~2) dx(l), dy(2) l(2). y(2) d1'(2), d_\~ 2) .J(2), Jl2) d.(1l, d){l) .1'(2), )'(2) dx(2), dy(2 ) nt l) , udd/'f'SJ(4) Tildius(2j r.:ldius(2), stufl,\rwIt'(2 ), tlldAlI,I'lc(2 ) radiIlS(2) , llw'rAngft(21. tndAlI$/t(2) 11( 1), add,~4) .JI<:l&( I) intk.t{ 1) addms(4) df(2), d)~2), Qdduu(4) ~2), d)(2), QdJ~4) d,f(l ), dy(2), .uk.Jt(2), dm(2} musl{1)

"""" II mdr.f(l), rtd(l), Nfl'm(l), blut{J)

How CP IS

atrcclat

CP := (x, y) CP: "" CP + (Ib:, dy) CP :"' (x, y) CP := Cp + (.lx, dy) CP;= (:C, y) CP ,- (1) + (dx, tlyl

CP: = m:X[ ~har po, 'n

iU:&l\IlM chal alfccl COOlIl\lOO

CP CP, INDEX, WMODE, MASK CP, INDEX , WMODE, MASK cp, IND€X, WMDDE, MASK CP, INDEX, W~, MASK CP. IND£X, WMOO{ , MASK, FILL, PAlTERN CP, INDBX, WMOOE. MASK , ALL, PATrHRN CP, INDEX, WMODE, MASK CP, INDEX, WMODE, MASK, fiLL, PATTERN CP, INDEX, WMQDE, MASK ep, INDEX , WMOOE, MASk . ALL. PATfER,N cr, INDEX, WMODE. MASK , ALL, PATTERN

cp, (NDl:X , WMDDE. MASK cp, INOEX , WMOOE, MASK CP,INDEX , WMOOE, MASK

' The n~mbtr i ~ ptrcntllc..e. deer no;lI l'i~mell\ ;s IIw I.Ikr' l It"ilh in Irytn 1\1100 Il'IIIicatcd 3'" IhI: elkC1 of the C<1mmlnoJ on lbe: C'P, ano.i "'hith rqJ.<.icrs affecl b(rw IhI: commaII'.! ope'Bld,

~

~

" • ~ ~'

I •

Page 189: Coputer Graphics Principles and Practices

4 .3 Raster- scan OisP'iIIY Systems 175

A red c llcle ~rlappillg a blue' triang le . all on II black hackg TOUncI . a re c realro wilh:

L.T L.T L.T WM(>t.ie A~aFm

Panent Mask PikelValue .. ~. "'"' Pi:>.eIVa tuc ~Iyaon PixelValue M~

Circle

5.0,0, 0 7.Z'F',O,O S, 0 , 0, Z 'F' repl>l<.-'t: Z'FF' 32Z'FF' Z ' FF' S 0 .0

Look-up--table entry 5 is blitd: Lool:-up--tabk entry 1 is red Look-uP-labk entry 8 is blue

00 32 bytes o f all Is , for solid patient

Enable wnling 10 all planes <X l ~<ldy for bl.iock rcctal1t le

1023 , 767 Visible: part of frame buff", now black II Next do blu.e triangle"" a Ihree·veru:x polygon 3, A(200 . 200. 800, 200, j()(), 100) 7 Put ~ cirde 0<1 lop of triangle 5 1 I . 3ft) Put CP at cenl.,! of .. ;..,,!lor 100 Radius- IOO circle at CP

4.3.3 A.dditional Display·Processor Functionality

Our simple d isplay processor perfonns only some of the graphics-related o perations thaI might be implemented. The temptatio n faced by the system designer is (0 offload the main CPU m~ and more by addil1g fuoctMlnalit y to the di~lay processor, such as by using a local memory to store lists of display instruct;ons, by doing clipping and the wind()ll,1l-lo­viewport Iransfonna tion. and perilaps by prOYiding pick-correlation logk: and automatk: feedback wh!:n a segment is picked . Ullimately. the: display processor becomes another geocal ·purpose CPU doing gen~1 interactive g raphics work. and the designer is again tempted to pl"Q\'tde spedal-function hlU"dware to o ffload the d isplay processor .

This 'l4'Nel of rrincarrwlion was identified by Myer and Sutherland in 1968 [MYER68 ). These aUlhors· point....-a..ll that there i5 a tradeoff between , pedal-pur poo.:ee and general-purpose functionali ty . Specia l-purJX>SC:: hardware usually does the job faster than does a general-purpose proces.sor. On the o ther hand. special-purpose hardware is more expensiv!: aoo cannot be used for other purposes. This tradeoff is an enduring theme in graphics system design.

If cljppil'€ (Chapler 3) is added 10 the d isplay processor . then o utput primitives C".m be speci fi ed to the processor in coordinates other than device coordinates . This :.-pecification a n be done in " oating·point coordinates. a lthoug h S()me d isplay processors Oper.ite on o nly integers (this is changing rapidly as inexpensive floating-point chips become available). If only integers a~ u....ro.. the coordinates u!>«l hy (he applicatIOn program must be integer. Of"

the graphics package must !Dap float ing-point coo rdinates into integer coordinates . For this mapping to be possible. t~ applkalio n p rogram must. give the graphics package a ra:langle guarante~d to enclose the COOrdinlit~s of a ll output primitives specified tn the p."\Cbgl'". The rectangle mu;« then be m apped illlo the maximum integer range . w t!\at everything within the rectang le is in the: integer coordinate ,.. .. nge.

If the liuhn">utine pw.:kage is 3D. the n the display pruce. .... <;or can peTfo rm the far more complex 31) geomcuic transfunl)atiun~ and I.:Jipping desc.:ribed in Chapters S and 6 . A lw . if the package includes 3D surface primi tives, such as polygo nal areas , the display processor

Page 190: Coputer Graphics Principles and Practices

176 Graphics Hardware

can also perform Ihe visible s U1face-determimuioo and rendenng steps discussed in Chapters I S and 16. C hapter 18 di!>CuS$:s SOniC of the fundamental approaches to organil ing ~eneral- and special-purpose VLSI chips to perform these Sleps quickly. Many commercially avai lable display. provide Ihcse fealures.

AnO<her fUflClion thai is o ften added to the di~phty processor is locol $l'gm~nt s torage , also called displuy l;sl .florUgt! . Di,"p1lty inS'ructions , grouped into named se~nt.<; and having uoclipped inleger courdinates, are sloud in the display-proccs.'\Or memory, perll1illing Ihe display proces...wr to operate more aUlOnomously fTom Ihe CPU.

What cuctly ca.n a display processor do with these stored segmen(.<;? II can transfo rm and redraw them, as in :rooming or scrolling. Local dragging o f sq;ments inlO new position5 can be pmvide<i. Local pickinb can be implemented by having (he display processor compare the cursor ~ilion to all the graphics primilives (more effident ways of doing thi ~

aTe d iscussed in C hapter 7). Regener.t tion, n:quired to fi ll in the holes ~at.ed whc:n a segmeot is erased , can abo be do ne from segment storalC . Segmet'l(~ Can be creal.ed, deleted. edited , and made visible or invis ible.

Segments can also Ix copied or referencc:d, both reducing Ihe amount of information that must be sen! frum the CPU 10 the di~play processor and eeollOmi1.ing on ~orage in the display processor itself. For instaoce . the d isplay in~tructions to create a VLSI chip pad config uration 10 Ix used many limes in II d rawing can be scnt to lht:: di~p1ay processor just once and can be stOJ"Cd as a segment. Each ()t:CUtrenee of the pad is then sent as II display instruction rrfcrencing [he segment. It IS possible to build up a complex hier3.TChical data strUCture using Ihi.~ capability. and many commercial display processors with local segmcnl memof)' can copy or reference other segments. When the segments are d isplayed , a ref~nce 10 another segment muSI be preccde<! by saving Ihe display proceSSOr" S (.-u rrcnt stllte. just as a ~ubroutine call is preceded by saving the CPU·s curn:nt stme . Rcferen(;es can be nes ted . living ri!;C In II strU<.·lllr~d displuy fill! or h;~rorchicul displo.y lisl . u in PHlGS lANSI88), .... h ich is disc~-.;ed funher in Chape~ 7. In the GKS graphics package [F.NOFJl;7; HOPG86] , which UM.!S II linear. unncsled di!<play IiSI, au c.>;isting segment can be copied imo a segment that is beIng creat~d .

The segment data Mructures need. 1101 be in the d isplay~processor memory (Fig. 4 .22); They can be built dice(:tly by the graphics package in system memO{)' and acco:ssed by the display proct'5..·;m. This o peion, of course , rC<juires that me display processor be able 10 read rrom s~em memory, which implies that the; dispby processor mUSl be dirccdy on thc system bus----RS-232 aod Ethernct-speed eonna.:tions are nOC viable.

[f all the in io rmation being displayed is represc nted in a segmenl da{a structure, tllen the display processor can also impie mcnt window~manager operatiOfls such as rT)()VC, open, clO6C. resize. 50;1011. 11u.\Jl . and pop. When a window is panned, lite segment. .. are retraversed with a new viewing transfonnation in effect. At some point. the wheel of reincamatKm will again come into play , bul we must also keep in mind Ihe startlingly low cost of special -purpose VLSI chip!': By lhe time this book becomes (lutdated. window manager .. 'hips are likely to cost only a few dollars each. Indeed.. the pace of technological innovation i~ such that the graphics functio nalifY found in display processors will continue irs dramatic increase in scope: and decrease in cost .

Although this mslcr di~pby system architet .... ure wilh its graphics display and separate frame buffer has many advantages over the simple raster display syste m of Section 4.3. 1. it

Page 191: Coputer Graphics Principles and Practices

4 .3 Raster-scan Dbp"'y Systems 171

abo has "Om" disat:hamage<i. If [he di~r[ay pnx;~sor is <K:t:es..'>cd by 1111,; C PU as <l p;riVItt:tal on a direct-memory-access pori or on an RS-232 interlace. Ihe n there is cOf)~iderable oper.)ling-system overhead each li me an instruClion is pa.''iCd [0 il (this is not an iss ue:: for:l display p!"OCessoT whose instruction register is memory-mapped inw the CPU's address sp3Cc, since then it is easy for (he: graphics package to set up lhe n:giSlers direclly).

Thcre i ~ also a marked partitioning of the memories, as was shown in Fig. 4 .22 . Building Ihe display li~ in (he display-list memory is slow because of the need 10 is.sue a disp lay-procesSOf in~rUCl ion 10 add or delete e lements. The di~l>Jay list may have. to be dupliClUed in the main processors memory. bct;.lIuse il cannot always be read back. An environment in whidl the display list i~ built directly in main memory by the graphics subroutine packagc can Ihu5 be more tleJl.ible, fal;(er , and easier 10 program.

The ra~I(:T-operalj (m conmund is a patlkular difficulty . Conceptually , it ~hould have four potcntial sourc~linalion pairs: system memory 10 system memory , ~-ystem

memory 10 frame buffet" , f1'1lme bulTer to SystCfll memory. and framc buffer to frame b uffer (here, [nc frame buffer and d isplay ~or-memory of Fig . 4 .22 are considered identical , ~iO(."C they are in (he same addrr.;s space) . In display-processor s)'Slems. however. the diffe rent soun::c-dcstin:tlkm pa in arc handled in different ways. and the system-mcmory·to· system-memory em;(: may nor exist. Thh lack of symmelry complicates Ihe programmer' .~

task and reduces f1e.\ibility . Foe example, j l' the otfscrccn portio n of the pixmap becomes fi lled with menus, fonts . a nd so on, then it is difficul t to use main memory as an overflow area. Funhermore. because the use of piltmaps is so perva.~ive , failure lu support ras tet openItions on p ixmaps .~oced in main m emory is no( really viahle.

Another problem is that the o utput of scan-con\Cf'Ston algorithm.~ must go to the: frame burrer. This requirement preclude!; doubf~· bufJerjttg: scan corl'tt1 ing a new image into system memory . the n copying it into the pi xmap 10 replace the image currently stored there . In addilio n. certain window·manager slntlcgies and animation techniques require part ially or completely llbS(:ured windows 10 be kcpl current in ()tf.~creen canvases, again requi t in.g sean con",.,rsOon into sy~em ~mory (Chapters 10 flnd 19) .

The display processor defined earlier in th is section, like m any real di s.play processors, moves raster images between tho! s)'lilem memory and frarTlC buffer via 110 transfers on the system bus. Unfortunately, this movement ca n be 100 slow for real· rime operations , .such as animation . dragging , and popping up w induws and menus: The time taken in the operating system 10 initiate the transfers and the traMfer rate on the !''IllS get in the way . This problem can be partially relieved by increas.in~ the display processor 's memory to ho!.d more offscreen pixmaps , but then that memory is not available for other pUrpo5CS.......;Ind there is almost IleYeT e nough memory anyway!

4 .3 .4 Raster Display System with Integrated Display Processor

We can ameliorate marlY u f the shortcomings o f the peripheral d isplay processor di~u.~sed in the previous section by making the frame buffer part of the system memory, thus creatin,!: the single-addre.u-space (SAS) display system architecture shown in Fig. 4.23. Here (he display processor. the CPU , and the video controller are all on the system bus and can thus all access l,y!;1em memory . The origin and . in some cases. the size of Inc frame buffer ute held in registers. making double-buffering a si mple maner o f reJoading rhe- register: The

Page 192: Coputer Graphics Principles and Practices

178 Graphics Hardware

CPU DIsplay Penp/'leral processor devices

L-

~ ..- ">

System "ideo I MorIllO!" mo"""Y controller I

'-Fig. 4.23 A single-address-space (SASI raster display system architecture with an integral d isplay processor. The display processor may ha .... e a p ri .... ate memCH'"Y for algOl'"ithms and working sto rage .

n:::;;ull~ of scan u mven,;ion can go eithe£ into the frame buffer for immediate display . or elsewhere in system memory for later display. Similarly. the source and destination for raster operations performed by tbe disptay processor can be anywhere in system memory (now the o nly memory of interest to us) . This arrangemenl is also attractive because the CPU can directly manipulate pixels in the frame buffer simply by reading or writing the appropriate bits.

SAS architecture has. however, a number o f shortcomings. Contention for access to the system memory is tbe most serious. We can solve this problem at least panially by dedicating a special portion of system memory 10 be Ihe frame buffer and by providing a second access port to the frame buffer from the video controller, as shown in Fig. 4.24 . Another solution is to use a CPU chip comaining inslruction- or data-cactle memories, thus reducing the CPU's dependence on frequent and mpid access to the system memory. Of co urse, these and o lher solutions can be integrated in various ingenious ways, a.~ diM:Ussed in more detai l ill Chapter 18. In the limit, the hardware PixBlt may work on only the frame buffer. What Ihe application program01el" sees as a single Pix Bit instruction may be trealed as several different cases , with Mlftware simulation if the source and deslinalion are not supponed by the hardware. Some processors are actually fast enough 10 do this, especially if they have an instruction-cache memory in which the tight inner loop of the software simulation can rema in _

As suggo.ted e-dfIie r , nuntr.1ditionaJ rnemory-chip organizations for frame buffers also can help to avoid the memory-co ntention problem. One approach is to tum on all the pixels on a scan line in one access time . thus reducing the number of memory c)'l:les needed to scan convert mto memory, especially for tilled areas. The video RAM (VRAM) orgllllizalion, devdopc::d by Te"a~ ImtfUJllent~ . e .. n rr:ad out .. II the pix.c:ls on a selin line in one cycle, Ihus reducing the number of memory c)'l:les needed 10 refresh the display. Again, Chapter 18 gives more detail on thesr i!)!Sues .

Page 193: Coputer Graphics Principles and Practices

'.4 The Video Controller 179

CPU Display Penpheral processor "'''''ti

• ,

( ... .I I

System Frame V..., Moni1Ot memory bv' M controller

Fig. 4.24 A more common singJe-addf"ess-space raster display sy stem architecture wit" an integral display processor (compare to Fig . 4 .23). The d isplay processor may have a private memory for aJgorithms and working storage. A dedicated portion of tile system memory is dual-po.-ted so that it can be accessed directly by me video controller, without the system bus being tied up.

AnOlheJ" design complication arises if the cpe has a virtual address space. as do the commonty used Motorola 68OXO a nd Intel 80x86 families, and vareous redoced-instruclion­set-computer (RISC) processon. In this case memory addresses generated by the display processor must go through the same dynamic address translation as other memory addresses. In addition, many CPU architectures disting uish bel\o\lCc:n a kernel operating system virtual address space and an applK:ation program virtual address space. It is often des4rnble for the frame buffer (canvas 0 in SRGP tenninology) 10 be in the kernel space , so that the operating ~ystem's display device driver Can access it directly. Howevoer. the canvases allocated by the application program mUS( be in lhe application space. 1berefore display instructions whkh access the frame buffer must distinguish between the kernel and apptication address spaces . If th~ kernel is to be accessed. then the display instruction must be inYOked by a time-consuming operating system service call mther than by a simple subroutioe call .

Desptte these potential complications . more and mon: raster display systems do in fact have a single-address-space architecture, typically of the type in Fig_ 4.24. The fleAibility of allowing both the: CPU and display processor to access any pari of memory in a uniform and homogeneous way is very compelling, and doe!. s implify prugrilmming.

4.4 THE VIDEO CONTROLLER

The most important task for the vKfeo controller is the constant refresh cl the display. There IU"e two fund.:lmenlal types of relresh: interlaced and noninterlDad. The fonner is used in broadcast television and in rasler displays designed to drive regular televisio ns . The refresh cycle is broken into ('M) fields. each lasting ~second: thus, a full refresh lasts*sccond. All

Page 194: Coputer Graphics Principles and Practices

180 Graphics Hardware

odd-numbcrc:d scan lines a~ d l"playcu In lhe: tir:.1 field , .. nd .. 1/ even-numbered (lOnc~ arc displayed in Ihe second. lnc purpose: of I~ inu:riace:d scan is 10 place ~me: new information in 311 areas of the ",: r.-en al a 6O-H'l rate:, s mC!:: a 30· H:I! refrt:l>h Tale lends to (:ausc: flicker. The nct effect of interlacing is 10 produce: a p ic tuTC who.o;c: dfectiYC refresh rate is clOM:r 10 (lI) thall to 30 H£. TIm. It:dmi'lw: worb a~ long a.~ adjocem ~an lines do in fact display similar inft1rmation; an illlage consisT ing of hori£untal lines nn alternating scan lines would fiicker badly. Most vide:o controllers refre5h 31 6IJ or mort: Hz and usc a noninlerlacc:d :.can .

The output fro m Ihc video control ler ha.'i Ilnc of three fOfTTl.~ : ROB , monochrome. or NTSC . For ROB (r<XI . green, blue). S<:p3rale ~<lbl~ carry Ihe red , green. and blue s ignals to control the threc electron gum 1)1' a ~hadO'W-mask CRT, and anOIheJ- cahle: ca rries the synchronization to signal the Slilrt of vertical and i'lQri,w ntal retrace . There are standardii foc Ihe voltagc-~. wave shapes . aoo .~ynchronizatlon timings of RCD Signals. For 4.8O-scan-lim:: monochrome: 1oignals, RS-1 70 is the standard; lor color . RS- J70A; frn- higher· resolution monochl'Ol'lW signal:. , RS-343. Frequently . the synchnmization timings a~ included on the same: cable as the grcc:n signal. m which case the signals are eall.:d composite video. Monochrome ~ignals use the same Slandards but have only intensity and synchronization cables . or merety a sing le c:'lble carrying compo~ile: intensity and synchroni L3tion .

NTSC (Natiofiil l Tc:levi~ i(>n System CommiUee) video is the signal format U!>ed in North Amera;an ennllnercialtdevision . Color. intensity. and !>ynchronizatiun infomlation is combined Into a !ignal witll it b.mdwidth oralxlul 5 MHz. bruadcast as 525 scan lines. in I'NO fields of 262 .5 lines eadl . Just 480 lines are visible; the: resl occur during 1M vertical retrace: periods al the eoo nf each field. A m(>flochromc: television seluscs the intensity and synchronization infonnation;:1 colo r television set abo u~s the color information to control the three color guns. The tJandwidth limit allows many different television channels 10

broadcast oYl:r the frequency rdngc allocated to televiston . Unfortunately. this bandwklth limits pk:turc: q uality to an effective reS()lulion of about 350 by 350 . Nevertheless. NTSC is the standard for videotape-recording il<quipmcnl. Malic..,. may improve, IK.M-C""CI , willI increasing interest in lOOO-line high-definition televi!>ion (HOTV ) for videOiaping and sate:llile broadcasting . European and Sovie t tclevision broadcast and videotape s tandards arc 1\\0 625-scan· line. 5O-H£ ~tandard!> , SECAM and PAL.

Some video contro llers superimpose a pJOgrammable CUniOr. stored in a 16 by 16 Or" 32 by 32 pIX map. o n lop of the fr3~ buffer . This 8\1(liu ~ the need 10 Pix Bit the CUTSOJ' shape into lhe: frame butftr each re lfa.h cycle . slight ly rcducing CPU overhead. Similarly. some video conlrollers superimpose multiplr small , fiM:d'$ize pi~maps (called sprites) on lop of the: frame buffer . This leaturc: is used o ften in 'video game!>.

4 .4 .1 Animation with the Lookup Table

Raster image:! can be: animated in !;cveral W.i)'S . To show a rotating object. we Clln scan conven inlo lite: pixmap sucL"essi\e views of the objttt from slightly different locations. one after the other. This scan conver~iQn mUM be done at l e a.~t 10 (preferably 15 to 20) times per .second to give a reasonably ~mooth effect . and hence a new image mu~t be creat.ed in no more than 100 mill i$eConds . HO"o"ever. if scan-\.'Onverting the objec:t lakes mudl of this 100 miJli:o;cconds-say 75 milliseconds _dtc:n the complc:tc objec t can be displayed (or only 25

Page 195: Coputer Graphics Principles and Practices

4.4 The Vid.o Controeler ,.,

mill iseconds t:N: fOfl:' if must be: I:'ntSt:tJ and EaJrifWn--<l uislrdCli ll8 efft:t;L Duuble· buITerin,g is used to avoid this problem. The frame buffer is divided into Iv.o images . each with half of the bits per p~el of the overa ll frame buffer. If we call the: two halves o f the piunap ;mageO and imtlg~ f , we citn describe the a nimatio n as follows:

LaGd look·up lobi" /0 d isplay " II pu~1 n ,/ .. <" a$ backxrourtd c% r, Scan co"'~" ob}"" f i" ,o imugdJ:. Load look-up lab/I! /0 d ... p lay Qtl t)' imQg~;

d. { Sea" oom 'u l obi t'., i1l'" im<lgd: Load look-up labl", u> display only imag .. l : Rofote obj t er dLJra .tlrUClu('f' deJcriplion: Sron c(m~err object into imageO; lDiJd ltd-up tabl .. to duplay (ml), inlallt'O : Rotat~ obj .. , t iWta Sl fllClurt du cript;oll;

} ..,hUt, ( rim U l71Iinau d ) ;

Of course. if rOtatilli: and !'.Can convertIng the objecllakes more than 100 milliseconds, [he animalion is quite jerky, but the IransilKm frOm o ne image to lhe next appears to ~ inslanLaneous, as loading the look ·up table lypK:ally Iakt::s less than 1 millisecond .

Another form of look-u~able animalion displ3)'!l a short, repetit ive sequence: of Images lSHOU79] . Suppo!oC" .... 'C "'lIn ! 10 "isplay It bouncing ball . Figure 4.25 shows how the framc buffer is loaded; the numbers indicate the pixel values placed in ea(..il region of the frame buffer. Figu re 4 .26 shOVo's how 10 load the look-Up table at each step to display a ll but one of the balls at back.ground ullor O. By cycling the contents o f the look-up table , we can achieve mocton effects. Not o nly can balls be bounced , bUI the effect of moving lights on movie marquees can be simulated, as ca n the mOrion of fluids rhrough pipes and the mllt ion of wheels. T his is discussed further in Section 2 1. J.4.

Fo,- mo re complieated '~Iic animation . such as rotating OJ complex wire-frame object, it may be impossible to keep the .~parate images from overlapping in the frame buffer . In that case, some of the d ispJayed images will hllVC " holes" in Ihem . A few such holes are not o;po=cia IJy distracting. especially if realism is no< essent ial. As more hole'S appeaT. however, the animation loses its eff()l.l..i~ness and do uble ·buffering becomes more attrac:liYe .

• 3

(3)

® ® (il ,

o

Fig. 4 .25 Contents of It-e frame buffer for a bourocing-ball animation .

Page 196: Coputer Graphics Principles and Practices

'82 Graphics H tM'dw are

Colon loaded in IabIc &I each saep In 8l'limallolJ

En<", 6 7 8 9 10 " "~btt 2 3 4 ,

0 .... hite white whlle whilll! white wflile .... hite while wttite while whirt

I blrl black b .... b_ b""" _.

hI"'" b""" b_ bl"" "'" 2 .... "" J "" "" 4 , ,.d 6 7 ""

Fig . " .28 Look ...... p table to bounce a red ~I 00 a black slA"face against a wnl1e background . Unspecified entries ate all white .

4 .4 .2 B;rmap Trans forma1ions and W indowing

With some video CQn(rollc:rs , the pilo:.map is decoupled from tnc view surface; that is. the direcl , fixed com::spondence Ixtween posi tions in the fmme bulfer and positions on the:: display is removed. An image trans/ormoriol! then defines Ihe correspondence. The image transformation transforms from the frame buffet to tnc view s urface . n.e trartsformation can . in ~ner,l.I, include a translation , scaling . roIation . and an additional clippil\i oper.ition.

Figure 4 .27 shows the type .,f transformation found on some raster displays . Part of the frame buffer, defi ned by a rectangular clip region. is enlarged 10 fill the entire view surface. The ratio between the size of the window and the view surface mUSl be an integer (3, in the figure). Pi:tds in the frame: buffer out.~ ide the window are not used, and none of the: pixel values are modi fied; the rransronnal ions are applied by the video controller a t the refresh rate.

1lw: image transformation can be changed many times per second SO as to give the real-lime-dynamics effect o f scrol ling 0\= or zoofu ing intu an im~ . Also, a sequence of arbitrary images can be shown rapidly by loading each image: into a d.iffe:rent area of tnc frame buffe:r. The: image transformalio n is changed perKxiically fa d isplay a full -screen view first of ooe area, then of the ne;( t . a nd so on.

The scaling needed 10 e: nJazge an image is trh'ially accomplished by repea ting p i:td values fro m with in the windO'N as the image: is d isplayed. Fat- a scale factor- o f 2. each pixel

Clip reglOfl 011 lrame bulle . J

F •• me bulle' View surl.ce

Blown·up comer 01 '''angle

Fig . 4 .27 Ponton of the fr&me buffer enlarged o n 1he view surface.

Page 197: Coputer Graphics Principles and Practices

4.4

•• •• • Before scaling, as defined in frame ouffer

The Video ConTroller

•• •• • Aftet" scaling, as displayed

Fig. 4.28 Effect of scaling up a pixmap by a factor of 2 .

'83

value is used four limc!S, twice on each of two sU(:cClisive scan lines. Figure 4.28 shCIWS the effect of scaling up a leiter and adjoinir\l1. line by a factor of 2. Unless the image' s storage has higher resolution than docs its display , scaling up does not reveal more detail: the image is enlarged but has a more jagged appearance . Thus, this animation effect sacrifices spatial resolulKln but maintains a full range of colors, wherea~ the dOUble-buffering described in tne previous section mai ntain..~ spatial resolution but decreases the number of colors available in anyone image.

In a more general application of image tmnsfonnations . the scaled image covers only the part or the view surface defined by a viewport, as in F ig. 4.29. Now we must define to the system what is to appear on the view surface outs ide of the viewpmt . One possibility is to display some constant color or intensity; another, shown in the figure , is to display the frame buffer itse lf. The hardware implementation (01" the jailer option is simple. Registers containing tbe viewport boundary coordinates are compared to the X, Y registers ddining the raster scan' s current position. If the beam is in the viewport, pixels ~ le tched fro m within the wiftdow area of the fram e buffe r .and are replicated as requi~. Otherwise , pi~ls are. fetched (1U1ll the po~ition in the frame buffer with the iWUllC (x, y) coordinates as the beam.

Frame buffer ClIP region on Irame buffer

Enlarged viewport

j

Monitor

Fjg. 4.29 A porlion of lhe f rame buHe.-. specified by I;'e elip region on the frame buffer, scaled up by a faclor of 2 and overlaid on the unsealed fTarne buffer.

Page 198: Coputer Graphics Principles and Practices

1 B4 Graphics HiM'dw'are

I ~ "'* I F~ ..- r 00 .. 11=1 •

v_ Ilgnal

IOUfC8

Fig . 4 .30 A video controller mixing images fr om frame buff(!l" and video-signal source_

Then: arc VLSI chips {hal implement many of these image display fu nctions_ These Yarious transfonnatiom arc special cases of ge:neral window-manager operattons thaI might be desired. Window-manager chips an: available: for use in the video controller (SHIR86). Each window has a separale pix map in the system memory , and a data structure in the memory defines window sizes and origins. As a scan line is d isplayed , the chip knows which window is visib le and hcn~ knows from which pumap to feld! pillClS . ~ and other more advanced hanJwarc issues are discussed in Chapter 18.

4 .4 _3 V ideo Mixing

Another useful video-controlJer function is video mixing. Two images. one defined in the frame buffer and the otheT defined by a video signa l coming from a television camera, recorder. or otho!T soun:c, call be merged to rorm a composi te image. Examples of th is merging are sceo regularly on telr::vision news , sports . and weather shows . Figure 4.30 shows the generic system organization.

1bere ~ two types of milli~ . In one, a graphics imagt' is set into a vtdeo image . Tht' chart or graph displayed O'It'r the shoulder of a newscaster is typical of th~ style . The mixing is accomplished wi th hardware thaI treats a designaTed pixel value in the frame buffer as a flag to indicate that the video ~ignal should be shown instead of the signal from the frame buffer . Nonnally. tnc desigmued pixel value \,.'UtTCSponds to the background color of the frame-buffer image. although inleresting effcclS can be achie .. -ed by using some other pixel value insTead .

n.c se«Ifld type of mixing places the vidCQ image on top of the frame-buffet image . as .....ncn a weather reponer stands in front of a full-screen weather map. T he reporter is ac tually standing in ((Q{Jt of 11 backdrop , whose color ( typical!y blue) is used 10 control the mixi ng: Whenever the incoming video is blue , the frame buffer is shown; otherwise, the " ideo imalle is shown . Thi5 lechnioque works well all long as the l epooter is noc wearing a ~ue Ii<: o r shirt!

4 .6 RANDOM-SCAN DISPLAY PROCESSOR

Figure 4 .31 s hows a typical random (vecto r) display system . It is generically similar 10 the display-procebof-based raster sy.oaem architecture discussed in Set;tiun 4 .3 .2 . There is of course no p iJlmap for refreshing the display. and the display procCSSOf has no local memory

Page 199: Coputer Graphics Principles and Practices

4.5 Random-scan Display ProcesSOT ,85

CPU Peripheral d.""",

- '"" ,L

<-

Olsplay System processor m.mo<y

~ , Monitor

Fig. 4.31 Architecture of a random display system.

for scan-conversion algorithms , since that functionality is typically implemenled IJsing programmed logic arrays or microcode.

The random-scan graphics-display processor is often called a display processing unit (DPU) , or a graphics controller. The DPU has an instruction set and instruction address regislcr, and goes through Ih.c classic instruction fetch, decode, execute cycle found in any computer. Because there is no pixmap, the display pru.:cssor must execute its program 30 to 60 limes per second in order to provide a flicker-free display. The program executed by the DPU is in main memory, whkh is shared by the gClleral CPU and the DPU.

The application program and graphics subroutine package also reside in main memory and execule on the general CPU. TIn: graphiC!> package: creates a display program of DPU instructions and tells tbe DPU where to start the program. The DPU then asynchrotlOl.ls\y executes the display program until it is to ld to stop by the graphics p!"II;kage . A JUMP instruction at (be end of the display program transfers control back [0 ilS start, so that the display continues to be refreshed without CPU intervention.

Figure 4.32 shows a set o f instructions and mnemonics fOl" a simple modom-scan DPU. The procesSOf' has X and Y registers and an instruction counter. The instructions !If'e

defined for a 16-bit 'Mlrd length. The RIA (relative/absolute) modifier on the LD instructions indicates whether the following coordinate is to be treated as an II-bit relative coordinate or a IO-bit absolute coordinate . In tne former case, the II bits are added to either the X 01' the Y register; in the latter. the 10 bils replace [he register oontents. (Eleven bits are needed for rd ative moves fOC' a 2 's-complement representation of vaJues in the: range -1024 to + 1023.)

The same RIA interpretation is used for the JUMP instruction, except the instruction counter is modified, thereby etJecling a change in the flow of control. The SM, SP, and SL instructions atronf compact representation of oontour lines , scatter plots, and the like.

Page 200: Coputer Graphics Principles and Practices

186 Graphics Hardware

LD (XfYJ {AlAI M Load &. move

LO (XIV) (RIA, P lQad &. point

LD tXfYJIAIA) L Load &. ~nt!!

LO tXIYI (AtA) Load

SM Shor1 move

S P Shan point

SL Stlort line

CHAR Che:rec:rers

JUMP {RIAl II

Key 1'0 MJtIllion

XN: 0 ==- Load x , 1 ==- Loe<! V

I " I I' , I' , I'

,

Instrl.lction form .. 1

1 1 1 11 1 1 111 11' 1 o Xh}.-~- X or V or &X or AV -----1 1 ~(~}._~_ X Of" Y or &X 01' AY -----1 o Xx} X or Y or AX or 6.Y -----1 1 Xh}--- X or V or AX or AY ----I

1 '

I ' 1 '

1 '

I '

, '-I I 1

I

, , -I , , -I ,

.~. 10 teo-mlneta code

Char I

Ch~3

4V

I 1 1 1 X L I ---~----­Ab50Me or re:atiVe addro5'S

RIA: 0 ==-11 brts 01 AX or AY, 1 ~ 10 bitS of X or Y t I : Ctloose ~ 01. lor use In mnemonIC CO(Mj L: Frame lock bit. 1 0:> delay j.Hnp until nell! dock tidI t: Interrupt DIt, 1 0:> interrupl CPU

Fig. 4.32 Instruction set for the random-scan display syslem.

Figure 4.33 is a ~irnplc DPU program , written in as5embltt style, th.", u~ many o f t~ instructions. NOIi« how the square and diamond are drawn: The fir.;-{ IJlOV'C

instruction is absolute . but the res! are relative, so as to facilitate dragging the obj toCts lIl'Ound (he screen. If relaliw: inslructions were nOi used, then dragging would require modifying the coordinatc:s of all the instructions used 10 display the object. Thc final instruction jumps back to the star. of the DPU program . Because .he frame lock bit i'l set, as indicated by the L modifier, aeculion of the jump is delayed until the I'eXt tick of a 3O-Hz ckx.:k in order tl) allow the DPU to refresh al 30 Hz but to prevent more frequent refreshing of small programs . which could bum the phospbor.

Notice that. with this instl'l.lction set. only one load command (mnemonic LD) is needed to draw o r I1lOYe e ither horizontally or ~nica lly. ~u.sc: the OIhe.. coordinate is beld constant; oblique movements, however , require I'M) load commands. The t'M) loads can be in e hher x- then-), o r y-then-..1' ordcr , with tbe second of the I'M) aJV',llYS specifying a

Page 201: Coputer Graphics Principles and Practices
Page 202: Coputer Graphics Principles and Practices
Page 203: Coputer Graphics Principles and Practices
Page 204: Coputer Graphics Principles and Practices
Page 205: Coputer Graphics Principles and Practices
Page 206: Coputer Graphics Principles and Practices
Page 207: Coputer Graphics Principles and Practices
Page 208: Coputer Graphics Principles and Practices
Page 209: Coputer Graphics Principles and Practices
Page 210: Coputer Graphics Principles and Practices
Page 211: Coputer Graphics Principles and Practices
Page 212: Coputer Graphics Principles and Practices
Page 213: Coputer Graphics Principles and Practices
Page 214: Coputer Graphics Principles and Practices
Page 215: Coputer Graphics Principles and Practices
Page 216: Coputer Graphics Principles and Practices
Page 217: Coputer Graphics Principles and Practices
Page 218: Coputer Graphics Principles and Practices
Page 219: Coputer Graphics Principles and Practices
Page 220: Coputer Graphics Principles and Practices
Page 221: Coputer Graphics Principles and Practices
Page 222: Coputer Graphics Principles and Practices
Page 223: Coputer Graphics Principles and Practices
Page 224: Coputer Graphics Principles and Practices
Page 225: Coputer Graphics Principles and Practices
Page 226: Coputer Graphics Principles and Practices
Page 227: Coputer Graphics Principles and Practices
Page 228: Coputer Graphics Principles and Practices
Page 229: Coputer Graphics Principles and Practices
Page 230: Coputer Graphics Principles and Practices
Page 231: Coputer Graphics Principles and Practices
Page 232: Coputer Graphics Principles and Practices
Page 233: Coputer Graphics Principles and Practices
Page 234: Coputer Graphics Principles and Practices
Page 235: Coputer Graphics Principles and Practices
Page 236: Coputer Graphics Principles and Practices
Page 237: Coputer Graphics Principles and Practices
Page 238: Coputer Graphics Principles and Practices
Page 239: Coputer Graphics Principles and Practices
Page 240: Coputer Graphics Principles and Practices
Page 241: Coputer Graphics Principles and Practices
Page 242: Coputer Graphics Principles and Practices
Page 243: Coputer Graphics Principles and Practices
Page 244: Coputer Graphics Principles and Practices
Page 245: Coputer Graphics Principles and Practices
Page 246: Coputer Graphics Principles and Practices
Page 247: Coputer Graphics Principles and Practices
Page 248: Coputer Graphics Principles and Practices
Page 249: Coputer Graphics Principles and Practices
Page 250: Coputer Graphics Principles and Practices
Page 251: Coputer Graphics Principles and Practices
Page 252: Coputer Graphics Principles and Practices
Page 253: Coputer Graphics Principles and Practices
Page 254: Coputer Graphics Principles and Practices
Page 255: Coputer Graphics Principles and Practices
Page 256: Coputer Graphics Principles and Practices
Page 257: Coputer Graphics Principles and Practices
Page 258: Coputer Graphics Principles and Practices
Page 259: Coputer Graphics Principles and Practices
Page 260: Coputer Graphics Principles and Practices
Page 261: Coputer Graphics Principles and Practices
Page 262: Coputer Graphics Principles and Practices
Page 263: Coputer Graphics Principles and Practices
Page 264: Coputer Graphics Principles and Practices
Page 265: Coputer Graphics Principles and Practices
Page 266: Coputer Graphics Principles and Practices
Page 267: Coputer Graphics Principles and Practices
Page 268: Coputer Graphics Principles and Practices
Page 269: Coputer Graphics Principles and Practices
Page 270: Coputer Graphics Principles and Practices
Page 271: Coputer Graphics Principles and Practices
Page 272: Coputer Graphics Principles and Practices
Page 273: Coputer Graphics Principles and Practices
Page 274: Coputer Graphics Principles and Practices
Page 275: Coputer Graphics Principles and Practices
Page 276: Coputer Graphics Principles and Practices
Page 277: Coputer Graphics Principles and Practices
Page 278: Coputer Graphics Principles and Practices
Page 279: Coputer Graphics Principles and Practices
Page 280: Coputer Graphics Principles and Practices
Page 281: Coputer Graphics Principles and Practices
Page 282: Coputer Graphics Principles and Practices
Page 283: Coputer Graphics Principles and Practices
Page 284: Coputer Graphics Principles and Practices
Page 285: Coputer Graphics Principles and Practices
Page 286: Coputer Graphics Principles and Practices
Page 287: Coputer Graphics Principles and Practices
Page 288: Coputer Graphics Principles and Practices
Page 289: Coputer Graphics Principles and Practices
Page 290: Coputer Graphics Principles and Practices
Page 291: Coputer Graphics Principles and Practices
Page 292: Coputer Graphics Principles and Practices
Page 293: Coputer Graphics Principles and Practices
Page 294: Coputer Graphics Principles and Practices
Page 295: Coputer Graphics Principles and Practices
Page 296: Coputer Graphics Principles and Practices
Page 297: Coputer Graphics Principles and Practices
Page 298: Coputer Graphics Principles and Practices
Page 299: Coputer Graphics Principles and Practices
Page 300: Coputer Graphics Principles and Practices
Page 301: Coputer Graphics Principles and Practices
Page 302: Coputer Graphics Principles and Practices
Page 303: Coputer Graphics Principles and Practices
Page 304: Coputer Graphics Principles and Practices
Page 305: Coputer Graphics Principles and Practices
Page 306: Coputer Graphics Principles and Practices
Page 307: Coputer Graphics Principles and Practices
Page 308: Coputer Graphics Principles and Practices
Page 309: Coputer Graphics Principles and Practices
Page 310: Coputer Graphics Principles and Practices
Page 311: Coputer Graphics Principles and Practices
Page 312: Coputer Graphics Principles and Practices
Page 313: Coputer Graphics Principles and Practices
Page 314: Coputer Graphics Principles and Practices
Page 315: Coputer Graphics Principles and Practices
Page 316: Coputer Graphics Principles and Practices
Page 317: Coputer Graphics Principles and Practices
Page 318: Coputer Graphics Principles and Practices
Page 319: Coputer Graphics Principles and Practices
Page 320: Coputer Graphics Principles and Practices
Page 321: Coputer Graphics Principles and Practices
Page 322: Coputer Graphics Principles and Practices
Page 323: Coputer Graphics Principles and Practices
Page 324: Coputer Graphics Principles and Practices
Page 325: Coputer Graphics Principles and Practices
Page 326: Coputer Graphics Principles and Practices
Page 327: Coputer Graphics Principles and Practices
Page 328: Coputer Graphics Principles and Practices
Page 329: Coputer Graphics Principles and Practices
Page 330: Coputer Graphics Principles and Practices
Page 331: Coputer Graphics Principles and Practices
Page 332: Coputer Graphics Principles and Practices
Page 333: Coputer Graphics Principles and Practices
Page 334: Coputer Graphics Principles and Practices
Page 335: Coputer Graphics Principles and Practices
Page 336: Coputer Graphics Principles and Practices
Page 337: Coputer Graphics Principles and Practices
Page 338: Coputer Graphics Principles and Practices
Page 339: Coputer Graphics Principles and Practices
Page 340: Coputer Graphics Principles and Practices
Page 341: Coputer Graphics Principles and Practices
Page 342: Coputer Graphics Principles and Practices
Page 343: Coputer Graphics Principles and Practices
Page 344: Coputer Graphics Principles and Practices
Page 345: Coputer Graphics Principles and Practices
Page 346: Coputer Graphics Principles and Practices
Page 347: Coputer Graphics Principles and Practices
Page 348: Coputer Graphics Principles and Practices
Page 349: Coputer Graphics Principles and Practices
Page 350: Coputer Graphics Principles and Practices
Page 351: Coputer Graphics Principles and Practices
Page 352: Coputer Graphics Principles and Practices
Page 353: Coputer Graphics Principles and Practices
Page 354: Coputer Graphics Principles and Practices
Page 355: Coputer Graphics Principles and Practices
Page 356: Coputer Graphics Principles and Practices
Page 357: Coputer Graphics Principles and Practices
Page 358: Coputer Graphics Principles and Practices
Page 359: Coputer Graphics Principles and Practices
Page 360: Coputer Graphics Principles and Practices
Page 361: Coputer Graphics Principles and Practices
Page 362: Coputer Graphics Principles and Practices
Page 363: Coputer Graphics Principles and Practices
Page 364: Coputer Graphics Principles and Practices
Page 365: Coputer Graphics Principles and Practices
Page 366: Coputer Graphics Principles and Practices
Page 367: Coputer Graphics Principles and Practices
Page 368: Coputer Graphics Principles and Practices
Page 369: Coputer Graphics Principles and Practices
Page 370: Coputer Graphics Principles and Practices
Page 371: Coputer Graphics Principles and Practices
Page 372: Coputer Graphics Principles and Practices
Page 373: Coputer Graphics Principles and Practices
Page 374: Coputer Graphics Principles and Practices
Page 375: Coputer Graphics Principles and Practices
Page 376: Coputer Graphics Principles and Practices
Page 377: Coputer Graphics Principles and Practices
Page 378: Coputer Graphics Principles and Practices
Page 379: Coputer Graphics Principles and Practices
Page 380: Coputer Graphics Principles and Practices
Page 381: Coputer Graphics Principles and Practices
Page 382: Coputer Graphics Principles and Practices
Page 383: Coputer Graphics Principles and Practices
Page 384: Coputer Graphics Principles and Practices
Page 385: Coputer Graphics Principles and Practices
Page 386: Coputer Graphics Principles and Practices
Page 387: Coputer Graphics Principles and Practices
Page 388: Coputer Graphics Principles and Practices
Page 389: Coputer Graphics Principles and Practices
Page 390: Coputer Graphics Principles and Practices
Page 391: Coputer Graphics Principles and Practices
Page 392: Coputer Graphics Principles and Practices
Page 393: Coputer Graphics Principles and Practices
Page 394: Coputer Graphics Principles and Practices
Page 395: Coputer Graphics Principles and Practices
Page 396: Coputer Graphics Principles and Practices
Page 397: Coputer Graphics Principles and Practices
Page 398: Coputer Graphics Principles and Practices
Page 399: Coputer Graphics Principles and Practices
Page 400: Coputer Graphics Principles and Practices
Page 401: Coputer Graphics Principles and Practices
Page 402: Coputer Graphics Principles and Practices
Page 403: Coputer Graphics Principles and Practices
Page 404: Coputer Graphics Principles and Practices
Page 405: Coputer Graphics Principles and Practices
Page 406: Coputer Graphics Principles and Practices
Page 407: Coputer Graphics Principles and Practices
Page 408: Coputer Graphics Principles and Practices
Page 409: Coputer Graphics Principles and Practices
Page 410: Coputer Graphics Principles and Practices
Page 411: Coputer Graphics Principles and Practices
Page 412: Coputer Graphics Principles and Practices
Page 413: Coputer Graphics Principles and Practices
Page 414: Coputer Graphics Principles and Practices
Page 415: Coputer Graphics Principles and Practices
Page 416: Coputer Graphics Principles and Practices
Page 417: Coputer Graphics Principles and Practices
Page 418: Coputer Graphics Principles and Practices
Page 419: Coputer Graphics Principles and Practices
Page 420: Coputer Graphics Principles and Practices
Page 421: Coputer Graphics Principles and Practices
Page 422: Coputer Graphics Principles and Practices
Page 423: Coputer Graphics Principles and Practices
Page 424: Coputer Graphics Principles and Practices
Page 425: Coputer Graphics Principles and Practices
Page 426: Coputer Graphics Principles and Practices
Page 427: Coputer Graphics Principles and Practices
Page 428: Coputer Graphics Principles and Practices
Page 429: Coputer Graphics Principles and Practices
Page 430: Coputer Graphics Principles and Practices
Page 431: Coputer Graphics Principles and Practices
Page 432: Coputer Graphics Principles and Practices
Page 433: Coputer Graphics Principles and Practices
Page 434: Coputer Graphics Principles and Practices
Page 435: Coputer Graphics Principles and Practices
Page 436: Coputer Graphics Principles and Practices
Page 437: Coputer Graphics Principles and Practices
Page 438: Coputer Graphics Principles and Practices
Page 439: Coputer Graphics Principles and Practices
Page 440: Coputer Graphics Principles and Practices
Page 441: Coputer Graphics Principles and Practices
Page 442: Coputer Graphics Principles and Practices
Page 443: Coputer Graphics Principles and Practices
Page 444: Coputer Graphics Principles and Practices
Page 445: Coputer Graphics Principles and Practices
Page 446: Coputer Graphics Principles and Practices
Page 447: Coputer Graphics Principles and Practices
Page 448: Coputer Graphics Principles and Practices
Page 449: Coputer Graphics Principles and Practices
Page 450: Coputer Graphics Principles and Practices
Page 451: Coputer Graphics Principles and Practices
Page 452: Coputer Graphics Principles and Practices
Page 453: Coputer Graphics Principles and Practices
Page 454: Coputer Graphics Principles and Practices
Page 455: Coputer Graphics Principles and Practices
Page 456: Coputer Graphics Principles and Practices
Page 457: Coputer Graphics Principles and Practices
Page 458: Coputer Graphics Principles and Practices
Page 459: Coputer Graphics Principles and Practices
Page 460: Coputer Graphics Principles and Practices
Page 461: Coputer Graphics Principles and Practices
Page 462: Coputer Graphics Principles and Practices
Page 463: Coputer Graphics Principles and Practices
Page 464: Coputer Graphics Principles and Practices
Page 465: Coputer Graphics Principles and Practices
Page 466: Coputer Graphics Principles and Practices
Page 467: Coputer Graphics Principles and Practices
Page 468: Coputer Graphics Principles and Practices
Page 469: Coputer Graphics Principles and Practices
Page 470: Coputer Graphics Principles and Practices
Page 471: Coputer Graphics Principles and Practices
Page 472: Coputer Graphics Principles and Practices
Page 473: Coputer Graphics Principles and Practices
Page 474: Coputer Graphics Principles and Practices
Page 475: Coputer Graphics Principles and Practices
Page 476: Coputer Graphics Principles and Practices
Page 477: Coputer Graphics Principles and Practices
Page 478: Coputer Graphics Principles and Practices
Page 479: Coputer Graphics Principles and Practices
Page 480: Coputer Graphics Principles and Practices
Page 481: Coputer Graphics Principles and Practices
Page 482: Coputer Graphics Principles and Practices
Page 483: Coputer Graphics Principles and Practices
Page 484: Coputer Graphics Principles and Practices
Page 485: Coputer Graphics Principles and Practices
Page 486: Coputer Graphics Principles and Practices
Page 487: Coputer Graphics Principles and Practices
Page 488: Coputer Graphics Principles and Practices
Page 489: Coputer Graphics Principles and Practices
Page 490: Coputer Graphics Principles and Practices
Page 491: Coputer Graphics Principles and Practices
Page 492: Coputer Graphics Principles and Practices
Page 493: Coputer Graphics Principles and Practices
Page 494: Coputer Graphics Principles and Practices
Page 495: Coputer Graphics Principles and Practices
Page 496: Coputer Graphics Principles and Practices
Page 497: Coputer Graphics Principles and Practices
Page 498: Coputer Graphics Principles and Practices
Page 499: Coputer Graphics Principles and Practices
Page 500: Coputer Graphics Principles and Practices
Page 501: Coputer Graphics Principles and Practices
Page 502: Coputer Graphics Principles and Practices
Page 503: Coputer Graphics Principles and Practices
Page 504: Coputer Graphics Principles and Practices
Page 505: Coputer Graphics Principles and Practices
Page 506: Coputer Graphics Principles and Practices
Page 507: Coputer Graphics Principles and Practices
Page 508: Coputer Graphics Principles and Practices
Page 509: Coputer Graphics Principles and Practices
Page 510: Coputer Graphics Principles and Practices
Page 511: Coputer Graphics Principles and Practices
Page 512: Coputer Graphics Principles and Practices
Page 513: Coputer Graphics Principles and Practices
Page 514: Coputer Graphics Principles and Practices
Page 515: Coputer Graphics Principles and Practices
Page 516: Coputer Graphics Principles and Practices
Page 517: Coputer Graphics Principles and Practices
Page 518: Coputer Graphics Principles and Practices
Page 519: Coputer Graphics Principles and Practices
Page 520: Coputer Graphics Principles and Practices
Page 521: Coputer Graphics Principles and Practices
Page 522: Coputer Graphics Principles and Practices
Page 523: Coputer Graphics Principles and Practices
Page 524: Coputer Graphics Principles and Practices
Page 525: Coputer Graphics Principles and Practices
Page 526: Coputer Graphics Principles and Practices
Page 527: Coputer Graphics Principles and Practices
Page 528: Coputer Graphics Principles and Practices
Page 529: Coputer Graphics Principles and Practices
Page 530: Coputer Graphics Principles and Practices
Page 531: Coputer Graphics Principles and Practices
Page 532: Coputer Graphics Principles and Practices
Page 533: Coputer Graphics Principles and Practices
Page 534: Coputer Graphics Principles and Practices
Page 535: Coputer Graphics Principles and Practices
Page 536: Coputer Graphics Principles and Practices
Page 537: Coputer Graphics Principles and Practices
Page 538: Coputer Graphics Principles and Practices
Page 539: Coputer Graphics Principles and Practices
Page 540: Coputer Graphics Principles and Practices
Page 541: Coputer Graphics Principles and Practices
Page 542: Coputer Graphics Principles and Practices
Page 543: Coputer Graphics Principles and Practices
Page 544: Coputer Graphics Principles and Practices
Page 545: Coputer Graphics Principles and Practices
Page 546: Coputer Graphics Principles and Practices
Page 547: Coputer Graphics Principles and Practices
Page 548: Coputer Graphics Principles and Practices
Page 549: Coputer Graphics Principles and Practices
Page 550: Coputer Graphics Principles and Practices
Page 551: Coputer Graphics Principles and Practices
Page 552: Coputer Graphics Principles and Practices
Page 553: Coputer Graphics Principles and Practices
Page 554: Coputer Graphics Principles and Practices
Page 555: Coputer Graphics Principles and Practices
Page 556: Coputer Graphics Principles and Practices
Page 557: Coputer Graphics Principles and Practices
Page 558: Coputer Graphics Principles and Practices
Page 559: Coputer Graphics Principles and Practices
Page 560: Coputer Graphics Principles and Practices
Page 561: Coputer Graphics Principles and Practices
Page 562: Coputer Graphics Principles and Practices
Page 563: Coputer Graphics Principles and Practices
Page 564: Coputer Graphics Principles and Practices
Page 565: Coputer Graphics Principles and Practices
Page 566: Coputer Graphics Principles and Practices
Page 567: Coputer Graphics Principles and Practices
Page 568: Coputer Graphics Principles and Practices
Page 569: Coputer Graphics Principles and Practices
Page 570: Coputer Graphics Principles and Practices
Page 571: Coputer Graphics Principles and Practices
Page 572: Coputer Graphics Principles and Practices
Page 573: Coputer Graphics Principles and Practices
Page 574: Coputer Graphics Principles and Practices
Page 575: Coputer Graphics Principles and Practices
Page 576: Coputer Graphics Principles and Practices
Page 577: Coputer Graphics Principles and Practices
Page 578: Coputer Graphics Principles and Practices
Page 579: Coputer Graphics Principles and Practices
Page 580: Coputer Graphics Principles and Practices
Page 581: Coputer Graphics Principles and Practices
Page 582: Coputer Graphics Principles and Practices
Page 583: Coputer Graphics Principles and Practices
Page 584: Coputer Graphics Principles and Practices
Page 585: Coputer Graphics Principles and Practices
Page 586: Coputer Graphics Principles and Practices
Page 587: Coputer Graphics Principles and Practices
Page 588: Coputer Graphics Principles and Practices
Page 589: Coputer Graphics Principles and Practices
Page 590: Coputer Graphics Principles and Practices
Page 591: Coputer Graphics Principles and Practices
Page 592: Coputer Graphics Principles and Practices
Page 593: Coputer Graphics Principles and Practices
Page 594: Coputer Graphics Principles and Practices
Page 595: Coputer Graphics Principles and Practices
Page 596: Coputer Graphics Principles and Practices
Page 597: Coputer Graphics Principles and Practices
Page 598: Coputer Graphics Principles and Practices
Page 599: Coputer Graphics Principles and Practices
Page 600: Coputer Graphics Principles and Practices
Page 601: Coputer Graphics Principles and Practices
Page 602: Coputer Graphics Principles and Practices
Page 603: Coputer Graphics Principles and Practices
Page 604: Coputer Graphics Principles and Practices
Page 605: Coputer Graphics Principles and Practices
Page 606: Coputer Graphics Principles and Practices
Page 607: Coputer Graphics Principles and Practices
Page 608: Coputer Graphics Principles and Practices
Page 609: Coputer Graphics Principles and Practices
Page 610: Coputer Graphics Principles and Practices
Page 611: Coputer Graphics Principles and Practices
Page 612: Coputer Graphics Principles and Practices
Page 613: Coputer Graphics Principles and Practices
Page 614: Coputer Graphics Principles and Practices
Page 615: Coputer Graphics Principles and Practices
Page 616: Coputer Graphics Principles and Practices
Page 617: Coputer Graphics Principles and Practices
Page 618: Coputer Graphics Principles and Practices
Page 619: Coputer Graphics Principles and Practices
Page 620: Coputer Graphics Principles and Practices
Page 621: Coputer Graphics Principles and Practices
Page 622: Coputer Graphics Principles and Practices
Page 623: Coputer Graphics Principles and Practices
Page 624: Coputer Graphics Principles and Practices
Page 625: Coputer Graphics Principles and Practices
Page 626: Coputer Graphics Principles and Practices
Page 627: Coputer Graphics Principles and Practices
Page 628: Coputer Graphics Principles and Practices
Page 629: Coputer Graphics Principles and Practices
Page 630: Coputer Graphics Principles and Practices
Page 631: Coputer Graphics Principles and Practices
Page 632: Coputer Graphics Principles and Practices
Page 633: Coputer Graphics Principles and Practices
Page 634: Coputer Graphics Principles and Practices
Page 635: Coputer Graphics Principles and Practices
Page 636: Coputer Graphics Principles and Practices
Page 637: Coputer Graphics Principles and Practices
Page 638: Coputer Graphics Principles and Practices
Page 639: Coputer Graphics Principles and Practices
Page 640: Coputer Graphics Principles and Practices
Page 641: Coputer Graphics Principles and Practices
Page 642: Coputer Graphics Principles and Practices
Page 643: Coputer Graphics Principles and Practices
Page 644: Coputer Graphics Principles and Practices
Page 645: Coputer Graphics Principles and Practices
Page 646: Coputer Graphics Principles and Practices
Page 647: Coputer Graphics Principles and Practices
Page 648: Coputer Graphics Principles and Practices
Page 649: Coputer Graphics Principles and Practices
Page 650: Coputer Graphics Principles and Practices
Page 651: Coputer Graphics Principles and Practices
Page 652: Coputer Graphics Principles and Practices
Page 653: Coputer Graphics Principles and Practices
Page 654: Coputer Graphics Principles and Practices
Page 655: Coputer Graphics Principles and Practices
Page 656: Coputer Graphics Principles and Practices
Page 657: Coputer Graphics Principles and Practices
Page 658: Coputer Graphics Principles and Practices
Page 659: Coputer Graphics Principles and Practices
Page 660: Coputer Graphics Principles and Practices
Page 661: Coputer Graphics Principles and Practices
Page 662: Coputer Graphics Principles and Practices
Page 663: Coputer Graphics Principles and Practices
Page 664: Coputer Graphics Principles and Practices
Page 665: Coputer Graphics Principles and Practices
Page 666: Coputer Graphics Principles and Practices
Page 667: Coputer Graphics Principles and Practices
Page 668: Coputer Graphics Principles and Practices
Page 669: Coputer Graphics Principles and Practices
Page 670: Coputer Graphics Principles and Practices
Page 671: Coputer Graphics Principles and Practices
Page 672: Coputer Graphics Principles and Practices
Page 673: Coputer Graphics Principles and Practices
Page 674: Coputer Graphics Principles and Practices
Page 675: Coputer Graphics Principles and Practices
Page 676: Coputer Graphics Principles and Practices
Page 677: Coputer Graphics Principles and Practices
Page 678: Coputer Graphics Principles and Practices
Page 679: Coputer Graphics Principles and Practices
Page 680: Coputer Graphics Principles and Practices
Page 681: Coputer Graphics Principles and Practices
Page 682: Coputer Graphics Principles and Practices
Page 683: Coputer Graphics Principles and Practices
Page 684: Coputer Graphics Principles and Practices
Page 685: Coputer Graphics Principles and Practices
Page 686: Coputer Graphics Principles and Practices
Page 687: Coputer Graphics Principles and Practices
Page 688: Coputer Graphics Principles and Practices
Page 689: Coputer Graphics Principles and Practices
Page 690: Coputer Graphics Principles and Practices
Page 691: Coputer Graphics Principles and Practices
Page 692: Coputer Graphics Principles and Practices
Page 693: Coputer Graphics Principles and Practices
Page 694: Coputer Graphics Principles and Practices
Page 695: Coputer Graphics Principles and Practices
Page 696: Coputer Graphics Principles and Practices
Page 697: Coputer Graphics Principles and Practices
Page 698: Coputer Graphics Principles and Practices
Page 699: Coputer Graphics Principles and Practices
Page 700: Coputer Graphics Principles and Practices
Page 701: Coputer Graphics Principles and Practices
Page 702: Coputer Graphics Principles and Practices
Page 703: Coputer Graphics Principles and Practices
Page 704: Coputer Graphics Principles and Practices
Page 705: Coputer Graphics Principles and Practices
Page 706: Coputer Graphics Principles and Practices
Page 707: Coputer Graphics Principles and Practices
Page 708: Coputer Graphics Principles and Practices
Page 709: Coputer Graphics Principles and Practices
Page 710: Coputer Graphics Principles and Practices
Page 711: Coputer Graphics Principles and Practices
Page 712: Coputer Graphics Principles and Practices
Page 713: Coputer Graphics Principles and Practices
Page 714: Coputer Graphics Principles and Practices
Page 715: Coputer Graphics Principles and Practices
Page 716: Coputer Graphics Principles and Practices
Page 717: Coputer Graphics Principles and Practices
Page 718: Coputer Graphics Principles and Practices
Page 719: Coputer Graphics Principles and Practices
Page 720: Coputer Graphics Principles and Practices
Page 721: Coputer Graphics Principles and Practices
Page 722: Coputer Graphics Principles and Practices
Page 723: Coputer Graphics Principles and Practices
Page 724: Coputer Graphics Principles and Practices
Page 725: Coputer Graphics Principles and Practices
Page 726: Coputer Graphics Principles and Practices
Page 727: Coputer Graphics Principles and Practices
Page 728: Coputer Graphics Principles and Practices
Page 729: Coputer Graphics Principles and Practices
Page 730: Coputer Graphics Principles and Practices
Page 731: Coputer Graphics Principles and Practices
Page 732: Coputer Graphics Principles and Practices
Page 733: Coputer Graphics Principles and Practices
Page 734: Coputer Graphics Principles and Practices
Page 735: Coputer Graphics Principles and Practices
Page 736: Coputer Graphics Principles and Practices
Page 737: Coputer Graphics Principles and Practices
Page 738: Coputer Graphics Principles and Practices
Page 739: Coputer Graphics Principles and Practices
Page 740: Coputer Graphics Principles and Practices
Page 741: Coputer Graphics Principles and Practices
Page 742: Coputer Graphics Principles and Practices
Page 743: Coputer Graphics Principles and Practices
Page 744: Coputer Graphics Principles and Practices
Page 745: Coputer Graphics Principles and Practices
Page 746: Coputer Graphics Principles and Practices
Page 747: Coputer Graphics Principles and Practices
Page 748: Coputer Graphics Principles and Practices
Page 749: Coputer Graphics Principles and Practices
Page 750: Coputer Graphics Principles and Practices
Page 751: Coputer Graphics Principles and Practices
Page 752: Coputer Graphics Principles and Practices
Page 753: Coputer Graphics Principles and Practices
Page 754: Coputer Graphics Principles and Practices
Page 755: Coputer Graphics Principles and Practices
Page 756: Coputer Graphics Principles and Practices
Page 757: Coputer Graphics Principles and Practices
Page 758: Coputer Graphics Principles and Practices
Page 759: Coputer Graphics Principles and Practices
Page 760: Coputer Graphics Principles and Practices
Page 761: Coputer Graphics Principles and Practices
Page 762: Coputer Graphics Principles and Practices
Page 763: Coputer Graphics Principles and Practices
Page 764: Coputer Graphics Principles and Practices
Page 765: Coputer Graphics Principles and Practices
Page 766: Coputer Graphics Principles and Practices
Page 767: Coputer Graphics Principles and Practices
Page 768: Coputer Graphics Principles and Practices
Page 769: Coputer Graphics Principles and Practices
Page 770: Coputer Graphics Principles and Practices
Page 771: Coputer Graphics Principles and Practices
Page 772: Coputer Graphics Principles and Practices
Page 773: Coputer Graphics Principles and Practices
Page 774: Coputer Graphics Principles and Practices
Page 775: Coputer Graphics Principles and Practices
Page 776: Coputer Graphics Principles and Practices
Page 777: Coputer Graphics Principles and Practices
Page 778: Coputer Graphics Principles and Practices
Page 779: Coputer Graphics Principles and Practices
Page 780: Coputer Graphics Principles and Practices
Page 781: Coputer Graphics Principles and Practices
Page 782: Coputer Graphics Principles and Practices
Page 783: Coputer Graphics Principles and Practices
Page 784: Coputer Graphics Principles and Practices
Page 785: Coputer Graphics Principles and Practices
Page 786: Coputer Graphics Principles and Practices
Page 787: Coputer Graphics Principles and Practices
Page 788: Coputer Graphics Principles and Practices
Page 789: Coputer Graphics Principles and Practices
Page 790: Coputer Graphics Principles and Practices
Page 791: Coputer Graphics Principles and Practices
Page 792: Coputer Graphics Principles and Practices
Page 793: Coputer Graphics Principles and Practices
Page 794: Coputer Graphics Principles and Practices
Page 795: Coputer Graphics Principles and Practices
Page 796: Coputer Graphics Principles and Practices
Page 797: Coputer Graphics Principles and Practices
Page 798: Coputer Graphics Principles and Practices
Page 799: Coputer Graphics Principles and Practices
Page 800: Coputer Graphics Principles and Practices
Page 801: Coputer Graphics Principles and Practices
Page 802: Coputer Graphics Principles and Practices
Page 803: Coputer Graphics Principles and Practices
Page 804: Coputer Graphics Principles and Practices
Page 805: Coputer Graphics Principles and Practices
Page 806: Coputer Graphics Principles and Practices
Page 807: Coputer Graphics Principles and Practices
Page 808: Coputer Graphics Principles and Practices
Page 809: Coputer Graphics Principles and Practices
Page 810: Coputer Graphics Principles and Practices
Page 811: Coputer Graphics Principles and Practices
Page 812: Coputer Graphics Principles and Practices
Page 813: Coputer Graphics Principles and Practices
Page 814: Coputer Graphics Principles and Practices
Page 815: Coputer Graphics Principles and Practices
Page 816: Coputer Graphics Principles and Practices
Page 817: Coputer Graphics Principles and Practices
Page 818: Coputer Graphics Principles and Practices
Page 819: Coputer Graphics Principles and Practices
Page 820: Coputer Graphics Principles and Practices
Page 821: Coputer Graphics Principles and Practices
Page 822: Coputer Graphics Principles and Practices
Page 823: Coputer Graphics Principles and Practices
Page 824: Coputer Graphics Principles and Practices
Page 825: Coputer Graphics Principles and Practices
Page 826: Coputer Graphics Principles and Practices
Page 827: Coputer Graphics Principles and Practices
Page 828: Coputer Graphics Principles and Practices
Page 829: Coputer Graphics Principles and Practices
Page 830: Coputer Graphics Principles and Practices
Page 831: Coputer Graphics Principles and Practices
Page 832: Coputer Graphics Principles and Practices
Page 833: Coputer Graphics Principles and Practices
Page 834: Coputer Graphics Principles and Practices
Page 835: Coputer Graphics Principles and Practices
Page 836: Coputer Graphics Principles and Practices
Page 837: Coputer Graphics Principles and Practices
Page 838: Coputer Graphics Principles and Practices
Page 839: Coputer Graphics Principles and Practices
Page 840: Coputer Graphics Principles and Practices
Page 841: Coputer Graphics Principles and Practices
Page 842: Coputer Graphics Principles and Practices
Page 843: Coputer Graphics Principles and Practices
Page 844: Coputer Graphics Principles and Practices
Page 845: Coputer Graphics Principles and Practices
Page 846: Coputer Graphics Principles and Practices
Page 847: Coputer Graphics Principles and Practices
Page 848: Coputer Graphics Principles and Practices
Page 849: Coputer Graphics Principles and Practices
Page 850: Coputer Graphics Principles and Practices
Page 851: Coputer Graphics Principles and Practices
Page 852: Coputer Graphics Principles and Practices
Page 853: Coputer Graphics Principles and Practices
Page 854: Coputer Graphics Principles and Practices
Page 855: Coputer Graphics Principles and Practices
Page 856: Coputer Graphics Principles and Practices
Page 857: Coputer Graphics Principles and Practices
Page 858: Coputer Graphics Principles and Practices
Page 859: Coputer Graphics Principles and Practices
Page 860: Coputer Graphics Principles and Practices
Page 861: Coputer Graphics Principles and Practices
Page 862: Coputer Graphics Principles and Practices
Page 863: Coputer Graphics Principles and Practices
Page 864: Coputer Graphics Principles and Practices
Page 865: Coputer Graphics Principles and Practices
Page 866: Coputer Graphics Principles and Practices
Page 867: Coputer Graphics Principles and Practices
Page 868: Coputer Graphics Principles and Practices
Page 869: Coputer Graphics Principles and Practices
Page 870: Coputer Graphics Principles and Practices
Page 871: Coputer Graphics Principles and Practices
Page 872: Coputer Graphics Principles and Practices
Page 873: Coputer Graphics Principles and Practices
Page 874: Coputer Graphics Principles and Practices
Page 875: Coputer Graphics Principles and Practices
Page 876: Coputer Graphics Principles and Practices
Page 877: Coputer Graphics Principles and Practices
Page 878: Coputer Graphics Principles and Practices
Page 879: Coputer Graphics Principles and Practices
Page 880: Coputer Graphics Principles and Practices
Page 881: Coputer Graphics Principles and Practices
Page 882: Coputer Graphics Principles and Practices
Page 883: Coputer Graphics Principles and Practices
Page 884: Coputer Graphics Principles and Practices
Page 885: Coputer Graphics Principles and Practices
Page 886: Coputer Graphics Principles and Practices
Page 887: Coputer Graphics Principles and Practices
Page 888: Coputer Graphics Principles and Practices
Page 889: Coputer Graphics Principles and Practices
Page 890: Coputer Graphics Principles and Practices
Page 891: Coputer Graphics Principles and Practices
Page 892: Coputer Graphics Principles and Practices
Page 893: Coputer Graphics Principles and Practices
Page 894: Coputer Graphics Principles and Practices
Page 895: Coputer Graphics Principles and Practices
Page 896: Coputer Graphics Principles and Practices
Page 897: Coputer Graphics Principles and Practices
Page 898: Coputer Graphics Principles and Practices
Page 899: Coputer Graphics Principles and Practices
Page 900: Coputer Graphics Principles and Practices
Page 901: Coputer Graphics Principles and Practices
Page 902: Coputer Graphics Principles and Practices
Page 903: Coputer Graphics Principles and Practices
Page 904: Coputer Graphics Principles and Practices
Page 905: Coputer Graphics Principles and Practices
Page 906: Coputer Graphics Principles and Practices
Page 907: Coputer Graphics Principles and Practices
Page 908: Coputer Graphics Principles and Practices
Page 909: Coputer Graphics Principles and Practices
Page 910: Coputer Graphics Principles and Practices
Page 911: Coputer Graphics Principles and Practices
Page 912: Coputer Graphics Principles and Practices
Page 913: Coputer Graphics Principles and Practices
Page 914: Coputer Graphics Principles and Practices
Page 915: Coputer Graphics Principles and Practices
Page 916: Coputer Graphics Principles and Practices
Page 917: Coputer Graphics Principles and Practices
Page 918: Coputer Graphics Principles and Practices
Page 919: Coputer Graphics Principles and Practices
Page 920: Coputer Graphics Principles and Practices
Page 921: Coputer Graphics Principles and Practices
Page 922: Coputer Graphics Principles and Practices
Page 923: Coputer Graphics Principles and Practices
Page 924: Coputer Graphics Principles and Practices
Page 925: Coputer Graphics Principles and Practices
Page 926: Coputer Graphics Principles and Practices
Page 927: Coputer Graphics Principles and Practices
Page 928: Coputer Graphics Principles and Practices
Page 929: Coputer Graphics Principles and Practices
Page 930: Coputer Graphics Principles and Practices
Page 931: Coputer Graphics Principles and Practices
Page 932: Coputer Graphics Principles and Practices
Page 933: Coputer Graphics Principles and Practices
Page 934: Coputer Graphics Principles and Practices
Page 935: Coputer Graphics Principles and Practices
Page 936: Coputer Graphics Principles and Practices
Page 937: Coputer Graphics Principles and Practices
Page 938: Coputer Graphics Principles and Practices
Page 939: Coputer Graphics Principles and Practices
Page 940: Coputer Graphics Principles and Practices
Page 941: Coputer Graphics Principles and Practices
Page 942: Coputer Graphics Principles and Practices
Page 943: Coputer Graphics Principles and Practices
Page 944: Coputer Graphics Principles and Practices
Page 945: Coputer Graphics Principles and Practices
Page 946: Coputer Graphics Principles and Practices
Page 947: Coputer Graphics Principles and Practices
Page 948: Coputer Graphics Principles and Practices
Page 949: Coputer Graphics Principles and Practices
Page 950: Coputer Graphics Principles and Practices
Page 951: Coputer Graphics Principles and Practices
Page 952: Coputer Graphics Principles and Practices
Page 953: Coputer Graphics Principles and Practices
Page 954: Coputer Graphics Principles and Practices
Page 955: Coputer Graphics Principles and Practices
Page 956: Coputer Graphics Principles and Practices
Page 957: Coputer Graphics Principles and Practices
Page 958: Coputer Graphics Principles and Practices
Page 959: Coputer Graphics Principles and Practices
Page 960: Coputer Graphics Principles and Practices
Page 961: Coputer Graphics Principles and Practices
Page 962: Coputer Graphics Principles and Practices
Page 963: Coputer Graphics Principles and Practices
Page 964: Coputer Graphics Principles and Practices
Page 965: Coputer Graphics Principles and Practices
Page 966: Coputer Graphics Principles and Practices
Page 967: Coputer Graphics Principles and Practices
Page 968: Coputer Graphics Principles and Practices
Page 969: Coputer Graphics Principles and Practices
Page 970: Coputer Graphics Principles and Practices
Page 971: Coputer Graphics Principles and Practices
Page 972: Coputer Graphics Principles and Practices
Page 973: Coputer Graphics Principles and Practices
Page 974: Coputer Graphics Principles and Practices
Page 975: Coputer Graphics Principles and Practices
Page 976: Coputer Graphics Principles and Practices
Page 977: Coputer Graphics Principles and Practices
Page 978: Coputer Graphics Principles and Practices
Page 979: Coputer Graphics Principles and Practices
Page 980: Coputer Graphics Principles and Practices
Page 981: Coputer Graphics Principles and Practices
Page 982: Coputer Graphics Principles and Practices
Page 983: Coputer Graphics Principles and Practices
Page 984: Coputer Graphics Principles and Practices
Page 985: Coputer Graphics Principles and Practices
Page 986: Coputer Graphics Principles and Practices
Page 987: Coputer Graphics Principles and Practices
Page 988: Coputer Graphics Principles and Practices
Page 989: Coputer Graphics Principles and Practices
Page 990: Coputer Graphics Principles and Practices
Page 991: Coputer Graphics Principles and Practices
Page 992: Coputer Graphics Principles and Practices
Page 993: Coputer Graphics Principles and Practices
Page 994: Coputer Graphics Principles and Practices
Page 995: Coputer Graphics Principles and Practices
Page 996: Coputer Graphics Principles and Practices
Page 997: Coputer Graphics Principles and Practices
Page 998: Coputer Graphics Principles and Practices
Page 999: Coputer Graphics Principles and Practices
Page 1000: Coputer Graphics Principles and Practices
Page 1001: Coputer Graphics Principles and Practices
Page 1002: Coputer Graphics Principles and Practices
Page 1003: Coputer Graphics Principles and Practices
Page 1004: Coputer Graphics Principles and Practices
Page 1005: Coputer Graphics Principles and Practices
Page 1006: Coputer Graphics Principles and Practices
Page 1007: Coputer Graphics Principles and Practices
Page 1008: Coputer Graphics Principles and Practices
Page 1009: Coputer Graphics Principles and Practices
Page 1010: Coputer Graphics Principles and Practices
Page 1011: Coputer Graphics Principles and Practices
Page 1012: Coputer Graphics Principles and Practices
Page 1013: Coputer Graphics Principles and Practices
Page 1014: Coputer Graphics Principles and Practices
Page 1015: Coputer Graphics Principles and Practices
Page 1016: Coputer Graphics Principles and Practices
Page 1017: Coputer Graphics Principles and Practices
Page 1018: Coputer Graphics Principles and Practices
Page 1019: Coputer Graphics Principles and Practices
Page 1020: Coputer Graphics Principles and Practices
Page 1021: Coputer Graphics Principles and Practices
Page 1022: Coputer Graphics Principles and Practices
Page 1023: Coputer Graphics Principles and Practices
Page 1024: Coputer Graphics Principles and Practices
Page 1025: Coputer Graphics Principles and Practices
Page 1026: Coputer Graphics Principles and Practices
Page 1027: Coputer Graphics Principles and Practices
Page 1028: Coputer Graphics Principles and Practices
Page 1029: Coputer Graphics Principles and Practices
Page 1030: Coputer Graphics Principles and Practices
Page 1031: Coputer Graphics Principles and Practices
Page 1032: Coputer Graphics Principles and Practices
Page 1033: Coputer Graphics Principles and Practices
Page 1034: Coputer Graphics Principles and Practices
Page 1035: Coputer Graphics Principles and Practices
Page 1036: Coputer Graphics Principles and Practices
Page 1037: Coputer Graphics Principles and Practices
Page 1038: Coputer Graphics Principles and Practices
Page 1039: Coputer Graphics Principles and Practices
Page 1040: Coputer Graphics Principles and Practices
Page 1041: Coputer Graphics Principles and Practices
Page 1042: Coputer Graphics Principles and Practices
Page 1043: Coputer Graphics Principles and Practices
Page 1044: Coputer Graphics Principles and Practices
Page 1045: Coputer Graphics Principles and Practices
Page 1046: Coputer Graphics Principles and Practices
Page 1047: Coputer Graphics Principles and Practices
Page 1048: Coputer Graphics Principles and Practices
Page 1049: Coputer Graphics Principles and Practices
Page 1050: Coputer Graphics Principles and Practices
Page 1051: Coputer Graphics Principles and Practices
Page 1052: Coputer Graphics Principles and Practices
Page 1053: Coputer Graphics Principles and Practices
Page 1054: Coputer Graphics Principles and Practices
Page 1055: Coputer Graphics Principles and Practices
Page 1056: Coputer Graphics Principles and Practices
Page 1057: Coputer Graphics Principles and Practices
Page 1058: Coputer Graphics Principles and Practices
Page 1059: Coputer Graphics Principles and Practices
Page 1060: Coputer Graphics Principles and Practices
Page 1061: Coputer Graphics Principles and Practices
Page 1062: Coputer Graphics Principles and Practices
Page 1063: Coputer Graphics Principles and Practices
Page 1064: Coputer Graphics Principles and Practices
Page 1065: Coputer Graphics Principles and Practices
Page 1066: Coputer Graphics Principles and Practices
Page 1067: Coputer Graphics Principles and Practices
Page 1068: Coputer Graphics Principles and Practices
Page 1069: Coputer Graphics Principles and Practices
Page 1070: Coputer Graphics Principles and Practices
Page 1071: Coputer Graphics Principles and Practices
Page 1072: Coputer Graphics Principles and Practices
Page 1073: Coputer Graphics Principles and Practices
Page 1074: Coputer Graphics Principles and Practices
Page 1075: Coputer Graphics Principles and Practices
Page 1076: Coputer Graphics Principles and Practices
Page 1077: Coputer Graphics Principles and Practices
Page 1078: Coputer Graphics Principles and Practices
Page 1079: Coputer Graphics Principles and Practices
Page 1080: Coputer Graphics Principles and Practices
Page 1081: Coputer Graphics Principles and Practices
Page 1082: Coputer Graphics Principles and Practices
Page 1083: Coputer Graphics Principles and Practices
Page 1084: Coputer Graphics Principles and Practices
Page 1085: Coputer Graphics Principles and Practices
Page 1086: Coputer Graphics Principles and Practices
Page 1087: Coputer Graphics Principles and Practices
Page 1088: Coputer Graphics Principles and Practices
Page 1089: Coputer Graphics Principles and Practices
Page 1090: Coputer Graphics Principles and Practices
Page 1091: Coputer Graphics Principles and Practices
Page 1092: Coputer Graphics Principles and Practices
Page 1093: Coputer Graphics Principles and Practices
Page 1094: Coputer Graphics Principles and Practices
Page 1095: Coputer Graphics Principles and Practices
Page 1096: Coputer Graphics Principles and Practices
Page 1097: Coputer Graphics Principles and Practices
Page 1098: Coputer Graphics Principles and Practices
Page 1099: Coputer Graphics Principles and Practices
Page 1100: Coputer Graphics Principles and Practices
Page 1101: Coputer Graphics Principles and Practices
Page 1102: Coputer Graphics Principles and Practices
Page 1103: Coputer Graphics Principles and Practices
Page 1104: Coputer Graphics Principles and Practices
Page 1105: Coputer Graphics Principles and Practices
Page 1106: Coputer Graphics Principles and Practices
Page 1107: Coputer Graphics Principles and Practices
Page 1108: Coputer Graphics Principles and Practices
Page 1109: Coputer Graphics Principles and Practices
Page 1110: Coputer Graphics Principles and Practices
Page 1111: Coputer Graphics Principles and Practices
Page 1112: Coputer Graphics Principles and Practices
Page 1113: Coputer Graphics Principles and Practices
Page 1114: Coputer Graphics Principles and Practices
Page 1115: Coputer Graphics Principles and Practices
Page 1116: Coputer Graphics Principles and Practices
Page 1117: Coputer Graphics Principles and Practices
Page 1118: Coputer Graphics Principles and Practices
Page 1119: Coputer Graphics Principles and Practices
Page 1120: Coputer Graphics Principles and Practices
Page 1121: Coputer Graphics Principles and Practices
Page 1122: Coputer Graphics Principles and Practices
Page 1123: Coputer Graphics Principles and Practices
Page 1124: Coputer Graphics Principles and Practices
Page 1125: Coputer Graphics Principles and Practices
Page 1126: Coputer Graphics Principles and Practices
Page 1127: Coputer Graphics Principles and Practices
Page 1128: Coputer Graphics Principles and Practices
Page 1129: Coputer Graphics Principles and Practices
Page 1130: Coputer Graphics Principles and Practices
Page 1131: Coputer Graphics Principles and Practices
Page 1132: Coputer Graphics Principles and Practices
Page 1133: Coputer Graphics Principles and Practices
Page 1134: Coputer Graphics Principles and Practices
Page 1135: Coputer Graphics Principles and Practices
Page 1136: Coputer Graphics Principles and Practices
Page 1137: Coputer Graphics Principles and Practices
Page 1138: Coputer Graphics Principles and Practices
Page 1139: Coputer Graphics Principles and Practices
Page 1140: Coputer Graphics Principles and Practices
Page 1141: Coputer Graphics Principles and Practices
Page 1142: Coputer Graphics Principles and Practices
Page 1143: Coputer Graphics Principles and Practices
Page 1144: Coputer Graphics Principles and Practices
Page 1145: Coputer Graphics Principles and Practices
Page 1146: Coputer Graphics Principles and Practices
Page 1147: Coputer Graphics Principles and Practices
Page 1148: Coputer Graphics Principles and Practices
Page 1149: Coputer Graphics Principles and Practices
Page 1150: Coputer Graphics Principles and Practices
Page 1151: Coputer Graphics Principles and Practices
Page 1152: Coputer Graphics Principles and Practices
Page 1153: Coputer Graphics Principles and Practices
Page 1154: Coputer Graphics Principles and Practices
Page 1155: Coputer Graphics Principles and Practices
Page 1156: Coputer Graphics Principles and Practices
Page 1157: Coputer Graphics Principles and Practices
Page 1158: Coputer Graphics Principles and Practices
Page 1159: Coputer Graphics Principles and Practices
Page 1160: Coputer Graphics Principles and Practices
Page 1161: Coputer Graphics Principles and Practices
Page 1162: Coputer Graphics Principles and Practices
Page 1163: Coputer Graphics Principles and Practices
Page 1164: Coputer Graphics Principles and Practices
Page 1165: Coputer Graphics Principles and Practices
Page 1166: Coputer Graphics Principles and Practices
Page 1167: Coputer Graphics Principles and Practices
Page 1168: Coputer Graphics Principles and Practices
Page 1169: Coputer Graphics Principles and Practices
Page 1170: Coputer Graphics Principles and Practices
Page 1171: Coputer Graphics Principles and Practices
Page 1172: Coputer Graphics Principles and Practices
Page 1173: Coputer Graphics Principles and Practices
Page 1174: Coputer Graphics Principles and Practices
Page 1175: Coputer Graphics Principles and Practices
Page 1176: Coputer Graphics Principles and Practices
Page 1177: Coputer Graphics Principles and Practices
Page 1178: Coputer Graphics Principles and Practices
Page 1179: Coputer Graphics Principles and Practices