throbber

`

`Computer Graphics
`
`PRJ CIPLES AND PRACflCE
`SLC0:'\0 EDITIO:'IJ in C
`
`Foley • vun Dam • Fcmcr • Hughes
`
`James 0. •'oley (Ph.D., University of Mochogan) is lhe
`founding dorector of the interdiscoplinary GraphiC>. Visual·
`tl31oon & Uubo~t) Centu at Georgoa ln~ttlute of Technol·
`01)). and Profe;sor of Computer Scoenc:e and of Electrical
`Engoneenna. Coauthor "'ilh And~ •an Dam of Funda·
`mrntols of lmtructllt Computtr Graphu:s, Foley os 3
`member of ACM. ACM SIGGRAPII. ACM SIGCIII. the
`Hu~an Factors Society. IEEE, and the IEEE Computer
`Soeocty. l ie recently ser.cd as Editor-in-Chief of ACM
`Transllt 110m"" Graphics. and l~ on 1he editoriul boards of
`Compllltro arul Grapllrcs. User Modtlm~ uml U.vu-Adapt(cid:173)
`td lnrtrat rum. and Prtstna. Hi, re<ean:h onteresl\ in(cid:173)
`clude model-~ u<er interface de•ctopmeD!tools. user
`in1erface \Oil" are. onformation vt>uahl<luoo, mulumedia.
`and human f.oCtoo of the user interface. Foley os a Fello"
`of the IEEE. and a member of Pho Beta Kappa. Tau Beta
`Pill. Ela Kappa u. and Sogma Xi. AI GeO'lJW Tech. he
`has received College of Computing gradua1e s1uden1
`award, n• Mo>t Likely 10 Make Studenls Wnnl to Grow
`Up to Be Prote,.or<. Most lnspirmional F:ocully Member.
`the campu~ lnterdoo;ciplinlll) Aclovilte< A"ard. and the
`Sogma Xi Su;tained Re.'oea1Ch A"ard.
`
`Andries \'lin Dam (Ph.D .• UDJ•et\11) of Penns}hanoa)
`was the liN ch.urman of the Computer Scoence Depart(cid:173)
`menial Bro"'n Unove..,uy. Current!) Thomas J. Wa1son.
`Jr. Unovef\11) Profcs.or of Technology nnd Educu1ion Jnd
`Profe.-or of Computer Science m Bro,.n. he is also Dircc(cid:173)
`lor of !he NSf'/ ARPA Science nnd Technology Cemcr for
`Computer Grnphic~ and Sciemilic Vi>unli7nlion. Hi~ re(cid:173)
`search lnlere~l\ onclude compu1er ~rnphic•. hypcnnedja
`S)Stems. and \\OrkMalJons. He is pas! Chaim1an of the
`Compuung RC\Cmh Msocia1ion. Choef ScocnlJ" at Elee(cid:173)
`tronoc Bon~ Technologoes. Chairman of ObJCCI Po.,.er'•
`T<ehnocal Ad' t\Ory Board. and • member of Mocrosofl's
`Technocal Advowry Board. A Fellow of both the IEEE
`Com puler Society and or ACM. he " aL1o cofounder of
`ACM SIGORAPH. Coauthor of the wodely u;cd book
`Fmodammttfls of ltuutu•ltrt Ctmtpru~r Grttpluc.< witlt
`James Foley, and of Objtct-Oritmtd Program111111g ;,
`P{Jjt a/ A Graplucu/ Approach, "-ith D. Brook>hore Con(cid:173)
`ner and Da>od ~oguodula. he has. on addouon. publt;hed
`over eighl) papeo. In 1990 van Dam recel\ed the NCGA
`Academoc A"Jrd. on 1991. the SIGGRAPH Stc•cn A.
`Coons A\I.Jrd. and on 1993 the AC\1 Karl V. Knrl>trom
`Ou1St3ndong Educa1or A""ard.
`
`. tc,en K. Feiner (Ph.D .. Bro"n Un.-ersuy) is Associa1e
`Profe.>sor of Computer ScJence at Columbo• Unt\er<tt).
`-.he,.., he directs the Computer Graplucs and u..,r lmcr·
`faces Lab. Hos currem research roeuses oo 3D user tnlcr·
`face>. virtual worlds. augmented real it). knowledge-oo.>ed
`desogn of gmphics and mullimediu. animmion, visualiza.
`tion. and hypermedia. Dr. Feiner is on !he edjtotial board<
`of ACM Trwtsacrio11s on GrliJllrics. /1!££ Tramaaio11s
`"" I /srwli:ation and Compllltr Grapl11rs. and £/tcrromc
`Publtshi"R· and is on the C\ecutove board of the IEEE
`T~><:hmcal Committee on Computer GraphiCs. He is a 111<'111·
`ber of ACM SIGGRAPH and 1he IEEE Computer Soeiety.
`In 1991 he received an ONR Young lnvestJgator Award. Dr
`Fetner's work has been published on over lifly papers and
`pre>entL-d in numerous talk>, tutorial>. and panels.
`
`John •~ Hughes (Ph.D .. Univers11y of California. Berkeley)
`is nn Assistunl Professor of Computer Science nl Brown
`Univc110ily. where he codirec" !he computer gruphics group
`"'•th Andries van Dam. Ht> research onlerests are in appli·
`cauon; or mathematics to computer gntphJcs. scienulic
`vosuJh.za!Jon. mathematical sh3pe descnpooo. malhemato(cid:173)
`cal fundamentals of con1pu1er gruplucs. and low-dirnen(cid:173)
`;oooal !apology and geomett) He o< a member of the AMS.
`IEEE. and ACM SIGGRAPH. Hos recent papers ha.e
`appeared in Complller Graplucs. and in Visualization Con·
`fcrence Proceedings. He al~o ho~ n long-standing in1ere~1 in
`!he u;e of COmpulcr graphics in mathematics educalion.
`
`RELATED TITLES
`
`The Pa5Cal·l>nguage •ersoon of Conrpmu Graphr~s· Pnn·
`rrpln and Pramu. Stcond Edtlton remruns available.
`ISBN 0·201-12 110-7
`
`lmroduwon w Computer Grcrplllt'S is an abbreviated vcr·
`MOn of' Foley, va.n D:om, Feiner. and Hugtocs thai focuse~ on
`tO(liCS e<sem ial for beginner. ttllhc field and provides e•(cid:173)
`pandcd explanations for reader> with '""' 1ccbnical bad(cid:173)
`ground. also with example, on C. Added to the orig~nal list
`of auth(m. Richard Pholltp. "a; pnncopall) responsoble for
`thos adapcatioo. ISBN 0-201·60921-S
`
`For on formation aboUI other Addison· Wesle) bools. you
`may acce>> our electronic cn1nlog through the World Wide
`Web nl http: I /WoMN .aw. com/ or through gopher
`aw.can
`
`TEXAS INSTRUMENTS EX. 1009 - 2/1253
`
`

`

`THE
`SYSTEMS
`PROGRAMMING
`SERIES
`
`Computer
`Graphics:
`Principles and
`Practice
`SECOND EDITION in C
`
`Foley • \lan Dam • Feiner • l-Iughes
`
`,
`
`TEXAS INSTRUMENTS EX. 1009 - 3/1253
`
`

`

`Plan I: "Vanna-I Game-n ' itiirur'lflfiv {IF Nod Greer-1N?” Cumpurar Gtaphlcs Lab J
`
`'Luinc Ilm Bumf |:Jn..r J Emit-.1. T Kw. anflJ Emma-r
`Flut- l.
`iPluduwd .11 Enlmch and 13'“ Curporntmn CDPVHUHI . 1989
`Calmch I
`
`
`
`
`TEXAS INSTRUMENTS EX. 1009 - 4/1253
`
`TEXAS INSTRUMENTS EX. 1009 - 4/1253
`
`

`

`HI“ I "Bland State,‘ by F. K. Mulgrlw. {Cnpvrifiht fl" 1m K. Mumrlva and
`E. Mandelbrot.)
`
`Pin-LI
`
`Hill III ”Luna Jr..' by J. LII-Ifllr. W. Emu. E. Ulth'f. Ind 5. Llffler. {Copyright If 15“
`
`TEXAS INSTRUMENTS EX. 1009 - 5/1253
`
`TEXAS INSTRUMENTS EX. 1009 - 5/1253
`
`

`

`SECOND EDITION IN C
`
`Computer Graphics
`
`PRINCIPLES AND PRACTICE
`
`TEXAS INSTRUMENTS EX. 1009 - 6/1253
`
`

`

`SECOND EDITION IN C
`
`Computer Graphics
`
`PRINCIPLES AND PRACTICE
`
`James D. Foley
`Georgia Institute of Technology
`
`Andries van Dam
`Brown University
`
`Steven K. Feiner
`Columbia University
`
`John F. Hughes
`Brown University
`
`..,..,
`
`ADDISON-WESLEY PUBLISHING COMPANY
`Reading, Massachusetts • Menlo Park, California • New York
`Don MiUs, Ontario • Wokingharn, England • Amsterdam • Bonn
`Sydney • Singapore • Tok)Q • Madrid • San Juan • Milan • Paris
`
`TEXAS INSTRUMENTS EX. 1009 - 7/1253
`
`

`

`Sponsoring Editor: Peter S. Gordon
`Production Supervisor: Bette J. Aaronson
`Production Supervisor for the C edition: Juliet Silveri
`Copy Editor: Lyn Dupre
`Text Designer: Herb Caswell
`Technical Art Consultant: Joseph K. Vetere
`Illustrators: C&C Associates
`Cover Designer: Marshall Henrichs
`Manufacturing Manager: Roy Logan
`
`This book is in the Addison-Wesley Systems Programming Series
`Consulting editors: IBM Editorial Board
`
`Library of Congress Cataloging-in-Publication Data
`
`Computer graphics: principles and practice I James D. Foley . . . [ et
`a!.]. -
`2nd ed. in C.
`p.
`em.
`Includes bibliographical references and index.
`ISBN 0-201-84840-6
`1. Computer graphics.
`T385.C5735 1996
`006.6'6-dc20
`
`I. Foley, James D. , 1942-
`
`Reprinted with corrections, July 1997.
`
`95-13631
`CIP
`
`Cover: " Dutch Interior," after Vermeer, by J. Wallace, M. Cohen, and D. Greenberg, Cornell University
`(Copyright © 1987 Cornell University , Program of Computer Graphics .)
`
`Many qf the designations used by manufacturers and sellers to distinguish their products are claimed as
`trademarks. Where those designations appear in this book, and Addison-Wesley was aware of a trademark
`claim, the designations have been printed in initial caps or all caps.
`
`The programs and applications presented in this book have been included for their instructional value. They are
`not guaranteed for any particular purpose. The publisher and the author do not offer any warranties or
`representations, nor do they accept any liabilities with respect to the programs or applications.
`
`Reprinted with corrections November 1992, November 1993, and July 1995.
`
`Copyright© 1996, 1990 by Addison-Wesley Publishing Company , Inc.
`
`All rights reserved . No part of this publication may be reproduced, stored in a retrieval system, or transmitted,
`in any form or by any means , electronic, mechanical, photocopying, recording, or otherwise, without the prior
`written permission of the publisher. Printed in the United States of America.
`
`6 7 8 9 10-DOC-99 98 97
`
`TEXAS INSTRUMENTS EX. 1009 - 8/1253
`
`

`

`To Marylou , Heather, Jenn, my parents, and my teachers
`Jim
`
`To Debbie, my father, my mother in memoriam, and
`my children Elisa, Lori, and Katrin
`
`To Jenni, my parents, and my teachers
`
`To my family, my teacher Rob Kirby, and
`my father in memoriam
`
`And to all of our students.
`
`Andy
`
`Steve
`
`John
`
`TEXAS INSTRUMENTS EX. 1009 - 9/1253
`
`

`

`THE SYSTEMS PROGRAMMING SERIES
`
`Communications Architecture for Distributed Systems
`
`R.J. Cypser
`
`An IntrOduction to Database Systems, Volume I,
`Fifth Edition
`
`C.J. Date
`
`An Introduction to Database Systems, Volume U
`
`C.J. Date
`
`Computer Graphics: Principles and Practice,
`Second Edition
`
`Structured Programming: Theory and Practice
`
`Conceptual Structures: lnformation ProCessing in
`Mind and Machines
`
`James D. Foley
`Andries van Dam
`Steven K. Feiner
`John F. Hughes
`
`Richard C. Linger
`Harlan D. Mills
`Bernard l. Wiu
`
`John F. Sowa
`
`IBM EDITORIAL BOARD
`
`Chairman:
`
`Gene F. Hotfnagle
`
`TEXAS INSTRUMENTS EX. 1009 - 10/1253
`
`

`

`Foreword
`
`The field of systems programming primarily grew out of the efforts of many programmers
`and managers whose creative energy went into producing practical, utilitarian systems
`programs needed by the rapidly growing computer industry. Programming was practiced as
`an art where each programmer invented his own solutions to problems with little guidance
`beyond that provided by his immediate associates. In 1968, the late Ascher Opler, then at
`IBM, recognized that it was necessary to bring programming knowledge together in a form
`that would be accessible to all systems programmers. Surveying the state of the art, he
`decided that enough useful material existed to justify a significant codification effort. On his
`recommendation, IBM decided to sponsor The Systems Programming Series as a long term
`project to collect, organize, and publish those principles and techniques that would have
`lasting value throughout the industry. Since 1968 eighteen titles have been published in the
`Series, of which six are currently in print.
`The Series consists of an open-ended collection of text-reference books. The contents
`of each book represent the individual author's view of the subject area and do not
`necessarily reflect the views of the lBM Corporation. Each is organized for course use but is
`detailed enough for reference.
`Representative topic areas already published, or that are contemplated to be covered by
`the Series, include: database systems, communication systems, graphics systems, expert
`systems, and programming process management. Other topic areas will be included as the
`systems programming discipline evolves and develops.
`
`The Editorial Board
`
`ix
`
`TEXAS INSTRUMENTS EX. 1009 - 11/1253
`
`

`

`Preface
`
`Interactive graphics is a field whose Lime has come. Until recently it was an esoteric
`specialty involving expensive display hardware, substantial computer resources, and
`idiosyncratic software. In the last few years, however, it has benefited from the steady
`and sometimes even spectacular reduction in the hardware price/performance ratio
`(e.g., personal computers for home or office with their standard graphics terminals),
`and from the development of high-level, device-independent graphics packages that
`help make graphics programming rational and straightforward. Interactive graphics is
`now finally ready to fulfill its promise to provide us with pictorial communication and
`thus to become a major facilitator of man/machine interaction. (From preface,
`Fundamemals of Interactive Computer Graphics, James Poley and Andries van Dam,
`1982)
`
`This assertion that computer graphics had finally arrived was made before the revolution in
`computer culture sparked by Apple's Macintosh and the ffiM PC and its clones. Now even
`preschool children are comfortable with interactive-graphics techniques, such as the
`desktop metaphor for window manipulation and menu and icon selection with a mouse.
`Graphics-based user interfaces have made productive users of neophytes, and the desk
`without its graphics computer is increasingly rare.
`At the same time that interactive graphics has become common in user interfaces and
`visualization of data and objects, the rendering of 30 objects has become dramatically
`more realistic, as evidenced by the ubiquitous computer-generated commercials and movie
`special effects. Techniques that were experimental in the early eighties are now standard
`practice, and more remarkable " photorealistic" effects are around the comer. The simpler
`kinds of pseudorealism, which took hours of computer time 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 objecL~
`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 highlights and with full hidden-surface removal. The highest(cid:173)
`performance systems provide real-time texture mapping, antialiasing, atmospheric attenua(cid:173)
`tion for fog and haze, and other advanced effects.
`Graphics software standards have also advanced significantly since our first edition.
`The SIGG RAPH Core '79 package, on which the first edition's SGP package was based,
`has all but disappeared, along with direct-view storage tube and refresh vector displays. The
`much more powerful PHlGS package, supporting storage and editing o( structure hierarchy,
`h,ts become an official ANSI and ISO standard, and it is widely available for real-time
`
`xi
`
`TEXAS INSTRUMENTS EX. 1009 - 12/1253
`
`

`

`xii
`
`Preface
`
`geometric graphics in scientific and engineering applications, along with PHIGS+, which
`suppons lighting, shading, curves, and surfaces. Official graphics standards complement
`lower-level. more efficient de facto standards, such as Apple's QuickDraw, X Window
`System's Xlib 20 integer raster graphics package, and Silicon Graphics' GL 30 library.
`Also widely available are implementations of Pixar's RenderMan interface for photorealis(cid:173)
`tic rendering and PostScript interpreters for hardcopy page and screen image description.
`Better graphics software has been used to make dramatic improvements in the .. look and
`feel ' 'of user interfaces. and we may expect increasing use of 3D effects, both for aesthetic
`reasons and for providing new metaphors for organizing and presenting, and navigating
`through information.
`Perhaps the most important new movement in graphics is the increasing concern for
`madding objects, not just for creating their pictures. Furthermore, interest is growing in
`describing the time-varying geometry and behavior of 30 objects. Thus graphics is
`increasingly concerned with simulation, animation, and a " back to physics" movement in
`both modeling and rendering in order to create objects that look and behave as realistically
`as possible.
`As the tools and capabilities available become more and more sophisticated and
`complex, we need to be able to apply them effectively. Rendering is no longer the
`bottleneck. Therefore researchers are beginning to apply anificial-intelligence techniques to
`assist in the design of object models, in motion planning, and in the la~ut of effective 20
`and 30 graphical presentations.
`Today the frontiers of gr.tphics are moving very rapidly, and a text that sets out to be a
`standard reference work must periodically be updated and expanded. This book is almost a
`total rewrite of the Fundamentals of Interactive Computer Graphics, and although this
`second edition contains nearly double the original 623 pages, "''e remain painfully aware of
`how much material we have been forced to omit.
`Major differences from the first edition include the following:
`
`• The vector-graphics orientation is replaced by a raster orientation.
`• The simple 20 floating-point graphics package (SGP) is replaced by two packages(cid:173)
`SRGP and SPHIGS-
`that reflect the two major schools of interactive graphics
`programming. SRGP combines features of the QuickDraw and Xlib 20 integer raster
`graphics packages. SPHIGS, based on PHIGS, provides the fundamental features of a 30
`floating-point package with hierarchical display lists. We explain how to do applications
`programming in each of these packages and show how to implement the basic clipping,
`scan-conversion, viewing, and display list traversal algorithms that underlie these
`systems.
`• User-interface issues are discussed at considerable length, both for 20 desktop metapbors
`and for 30 interaction devices.
`• Coverage of modeling is expanded to include NURB (nonuniform rational 8-spline)
`curves and surfaces, a chapter on solid modeling, and a chapter on advanced modeling
`techniques, such as physically based modeling, procedural models, fractals, L-grammar
`systems. and particle systems.
`• Increased coverage of rendering inc.ludes a detailed treatment of antialiasing and greatly
`
`TEXAS INSTRUMENTS EX. 1009 - 13/1253
`
`

`

`Preface
`
`xiii
`
`expanded chapters on visible-surface determination, illumination, and shading, including
`physically based il.lumination modcls, ray tracing, and radiosity.
`• Material is added on advanced raster graphics architectures and algorithms, including
`clipping and scan-conversion of complex primitives and simple image-processing
`operations, such as compositing.
`• A brief introduction to animation is added.
`
`This text can be used by those without prior background in graphics and only some
`background in Pascal programming, basic data structures and algorithms, computer
`architecture, and simple linear algebra. An appendix reviews the necessary mathematical
`foundations. The book covers enough material for a full-year course, but is partitioned into
`groups to make selective coverage possible. The reader, therefore, can progress through a
`carefully designed sequence of units, starting with simple, generally applicable fundamen(cid:173)
`tals and ending with more complex and specialized subjects.
`
`Basic Group. Chapter I provides a historical perspective and some fundamental issues in
`hardware, software, and applications. Chapters 2 and 3 describe, respectively, the use and
`the implementation of SRGP, a simple 20 integer grdphics package. Chapter 4 introduces
`graphics hardware, including some hints about how to use hardware in implementing the
`operations described in the preceding chapters. The next t~ chapters, 5 and 6 , introduce
`the ideas of transformations in the plane and 3·space, representations by matrices. the use
`of homogeneous coordinates to unify linear and affine transformations, and the description
`of 30 views, including the transformations from arbitrary view volumes to canonical view
`volumes. Finally, Chapter 7 introduces SPHIGS, a 30 floating-point hierarchical graphics
`package that is a simplified version of the PHIGS standard, and describes its use in some
`basic modeling operations. Chapter 7 also discusses the advantages and disadvantages of the
`hierarchy avai.lable in PHIGS and th.e structure of applications that use this graphics
`package.
`
`U ser Interface Group. Chapters 8-10 describe the current technology of interaction
`devices and then address the higher-level issues in user-interface design. Various popular
`user-interface paradigms are described and critiqued. In the final chapter user-interface
`software, such as window managers, interaction technique-libraries, and user-interface
`management systems, is addressed.
`
`Model Definition Group. The first ~ modeling chapters, ll and 12, describe the
`current technologies used in geometric modeling: the representation of curves and surfaces
`by parametric functions , especially cubic splines, and the representation of solids by
`various techniques, including boundary representations and CSG models. Chapter 13
`introduces the human color-vision system, various color-description systems, and conver(cid:173)
`sion from one to another. This chapter also briefly addresses rules for the effective use of
`color.
`
`Image Synthesis Group. Chapter 14, the first in a four-chapter sequence, describes
`the quest for realism from the earliest vector drawings to state-of-the-art shaded graphics.
`The artifacts caused by aliasing are of crucial concern in raster graphics, and this
`chapter discusses their causes and cures in considerable detail by introducing the Fourier
`
`TEXAS INSTRUMENTS EX. 1009 - 14/1253
`
`

`

`xiv
`
`Preface
`
`transfonn and convolution. Chapter I 5 describes a variety of strategies for visible-surface
`detennination in enough detail to allow the reader to implement some of the most im(cid:173)
`portant ones. Tllumination and shading algorithms are covered in detail in Chapter 16.
`The early part of this chapter discusses algorithms most commonly found in current
`hardware, while the remainder treats texture, shadows, transparency. reftections, physical(cid:173)
`ly based illumination models, ray tracing, and radiosity merhods. The last chapter in
`this group, Chapter l 7, describes both image manipulations, such as scaling, shearing,
`and rotating pixmaps, and image storage techniques, including various image-compres(cid:173)
`sion schemes.
`Advanced Techniques Group. The last four chapters give an overview of the current
`stare of tbe art (a moving target, of course). Chapter 18 describes advanced graphics
`hardware used in high-end commercial and research machines; this chapter was contributed
`by Steven Molnar and Henry Fuchs, authorities on high-perfonnance graphics architec(cid:173)
`tures. Chapter 19 describes the complex raster algorithms used for such tasks as
`scan-converting arbitary conics, generating antialiased text, and implementing page(cid:173)
`description languages, such as PostScript. The final two chapters survey some of the most
`important techniques in the fields of high-leYCI modeling and computer animation.
`
`The firs! two groups cover only elementary material and thus can be used for a basic
`course at the undergraduate leYCI. A follow-on course can then use the more advanced
`chapters. Alternatively, instructors can assemble customized courses by picking chapters
`out of the various groups.
`For example, a course designed to introduce students to primarily 20 graphics would
`include Chapters I and 2 , simple scan conversion and clipping from Chapter 3, a
`rechoology overview with emphasis on raster architectures and interaction devices from
`Chapter 4, homogeneous mathematics from Chapter 5, and 3D viewing only from a "how
`to use it'" poinl of view from Secrions 6.1 to 6 .3. The User Inrerface Group, Chapters
`8-10. would be followed by selected introductory sections and simple algorithms from tbe
`Image Synthesis Group, Chapters 14, 15, and 16.
`A one-course general overview of graphics would include Chapters I and 2, basic
`algorirhms from Chapter 3, raster architectures and interaction devices from Chapter 4,
`Chaprer 5, and most of Chapters 6 and 7 on viewi ng and SPHJGS. The second half of the
`course would include sections on modeling from Chapters I I and 13, on image synthesis
`from Chapters 14, 15, and 16, and on advanced modeling from Chapter 20 to give breadth
`of coverage in these slightly more advanced areas.
`A course emphasizing 30 modeling and rendering would start with Chapler 3 secrions
`on scan converting, clipping of lines and polygons, and introducing anrialiasing. The
`course would then progress 10 Chapters 5 and 6 on the basic mathematics of traosfonna(cid:173)
`rions and viewing, Chapre.r 13 on color, and chen cover !he key Chapters 14, 15, and 16 in
`the Image Synrhesis Group. Coverage would be rounded off by selections in surface and
`solid modeling, Chapter 20 on advanced modeling, and Chapter 21 on animation from the
`Advanced Techniques Group.
`
`Graphics Packages. The SRGP and SPHIGS graphics packages, designed by David
`Sklar, coauthor of the two chapters on these packages, are available from the publisher for
`
`TEXAS INSTRUMENTS EX. 1009 - 15/1253
`
`

`

`Preface
`
`xv
`
`the LBM PC (ISBN 0-201-54700-7), the Macintosh (ISBN 0-201-54701-5), and UNIX
`workstations running X II , as are many of the algorithms for scan conversion, clipping, and
`viewing (see page I 17 5).
`
`Acknowledgments. Th.is book could not have been produced without the dedicated
`work and the indulgence of many friends and colleagues. We acknowledge here our debt to
`those who have contributed significantly to one or more chapters; many others have helped
`by commenting on individual chapters, and we are grateful to them as well. We regret any
`inadvertent omissions. Katrina Avery and Lyn Dupre did a superb job of editing. Additional
`valuable editing on multiple versions of multiple chapters was provided by Debbie van
`Dam, Melissa Gold, and Clare Campbell. We are especially grateful to our production
`supervisor, Bette Aaronson, our art director, Joe Vetere, and our editor, Keith Wollman,
`not only for their great help in producing the book, but also for their patience and good
`humor under admittedly adverse circumstances-if we ever made a promised deadline
`during these frantic five years, we can't remember it!
`Computer graphics has become too complex for even a team of four main authors and
`three guest authors to be expert in all areas. We relied on colleagues and students to amplify
`our knowledge, catch our mistakes and provide constructive criticism of form and content.
`We take full responsibility for any remaining sins of omission and commission. Detailed
`technical readings on one or more chapters were provided by John Airey, Kurt Akeley, Tom
`Banchoff, Brian Barsky, David Bates, Cliff Besbers, Gary Bishop, Peter Bono, Marvin
`Bunker, Bill Buxton, Edward Chang, Norman Chin, Michael F. Cohen, William Cowan,
`John Dennis , Tom Dewald, Scott Draves, Steve Drucker, Tom Duff, Richard Economy,
`David EIIS'M>rth, Nick England, Jerry Farrell, Robin Forrest, Alain Fournier, Alan Freiden,
`Christina Gibbs, Melissa Gold, Mark: Green, Cathleen Greenberg, Margaret Hagen, Griff
`Hamlin, Pat Hanrahan, John Heidema, Rob Jacob, Abid Kamran, Mike Kappel, Henry
`Kaufman, Karen Kendler, David Kurlander, David Laidlaw, Keith Lantz, Hsien-Che Lee,
`Aaron Marcus, Nelson Max, Deborah Mayhew, Barbara Meier, Gary Meyer, Jim
`Michener, Jakob Nielsen, Mark: Nodine, Randy Pausch, Ari Requicha, David Rosenthal,
`David Salesin, Hanan Samet, Jam.es Sanford, James Sargent, Robin ScbauHer, Robert
`ScheiDer, John Scbnizlein, Michael Shantzis, Ben Shneiderman, Ken Shoemake, Judith
`Schrier, John Sibert, Dave Simons, Jonathan Steinhart, Maureen Stone, Paul Strauss, Seth
`Tager, Peter Tanner, Brice Tebbs, Ben Trumbore, Yi Tso, Greg Turk, Jeff Vroom, Colin
`Ware, Gary Watkins, Chuck Weger, Kevin Weiler, Thmer Whitted, George Wolberg, and
`Larry Wolff.
`Several colleagues, including Jack Bresenham, Brian Barsky, Jerry Van Aken, Dilip
`Da Silva (who suggested the uniform midpoint treatment of Chapter 3) and Don Hatfield,
`not only read chapters closely but also provided detailed suggestions on algorithms.
`We.lcome word-processing relief was provided by Katrina Avery, Barbara Britten, Clare
`Campbell, Tina Cantor, Joyce Cavatoni, Louisa Hogan, Jenni Rodda, and Debbie van Dam.
`Drawings for Chapters 1-3 were ably created by Dan Robbins, Scott Snibbe, Tina Cantor,
`and Clare Campbell. Figure and image sequences created for this book were provided by
`Beth Cobb, David Kurlander, Allen Paeth, and George Wolberg (with assistance from Peter
`Karp). Plates D.21- 37, showing a progression of rendering techniques, were designed and
`rendered at Pixar by Thomas Williams and H.B. Siegel, under the direction of M.W.
`Mantle, using Pixar's PhotoRealistic RenderMan software. Thanks to Industrial Light &
`
`TEXAS INSTRUMENTS EX. 1009 - 16/1253
`
`

`

`xvi
`
`Preface
`
`Magic for the use of their laser scanner to create Plates 0.24-37, and to Norman Chin for
`computing vertex normals for Color Plates 0 .3~32. L. Lu and Carles CasteiJsagu~ wrote
`programs to make figures.
`Jeff Vogel implemented the algorithms of Chapter 3, and he and Atul Butte verified the
`code in Chapters 2 and 7. David Sklar wrote the Mac and XII implementations of SRGP
`and SPHJGS with help from Ron Balsys, Scott Boyajian, Atul Butte, Alex Contovounesios,
`and Scott Draves. Randy Pauscb and his students ported the packages to the PC
`environment.
`We have installed an automated electronic mail server to aiJow our readers to obtain
`machine-readable copies of many of the algorithms, suggest exercises, report errors in the
`text and in SRGP/SPHIGS, and obtain errata lists for the text and software. Send email to
`" graphtext@ cs.brown.edu" with a Subject line of "Help" to receive the current list of
`available services. (See page 1175 for information on how to order SRGP and SPHIGS.)
`
`Washington. D.C.
`Providence, R.I.
`New York. N.Y.
`Providence, R.I.
`
`J.D.F.
`A.v.D.
`S. K.F.
`J.F.H.
`
`TEXAS INSTRUMENTS EX. 1009 - 17/1253
`
`

`

`Contents
`
`CHAPTER 1
`INTRODUCTION
`
`1
`
`2
`. . . . . • . . . . . . . . . . . . . • . . .
`lmage Processing as Picture Analysis
`1.1
`3
`. . . . . . . . . . . . . . . . . . • . . .
`1.2 The Advantages of Interactive Graphics
`4
`1.3 Representative Uses of Computer Graphics
`. . . . . . . . . . . . . . . . . . . .
`6
`. . . . . . . . . . . . . . . . . . . . . . . . . . . .
`1.4 Classification of Applications
`8
`1.5 Development of Hardware and Software for Computer Graphics
`. . . . . . .
`17
`. . . . . . . . . . . . . . . . .
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . 2 1
`. . . . . . . . . . ... •. . • . • . . . . . . . . . . . . . . . • . . . . . . 22
`
`r 6 Conceptual Framework for Inter.!ctive Graphics
`
`1.7
`
`Summary
`Exercises
`
`CHAPTER 2
`PROGRAMMING IN THE SIMPLE RASTER
`GRAPHICS PACKAGE (SRGP)
`
`25
`. . . . . . . . . . . . . . . •. . . . . . . . . . . . . . . . . . 26
`Drawing with SRGP
`2.1
`2.2 Basic Interaction Handling
`. . . . . . . . . • . • . . . . . . . . . . . . . • . . . 40
`2.3 Raster Graphics Features
`. . . . . . . . . . . • . . . . . . • . . . . . . . . • . . . 52
`2.4
`Limitations of SRGP
`. . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . 60
`2.5
`Summary
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
`. . . . . .. . . . . . . . . . .. .. . . . . . . .. . . .. .. .. . .. . 64
`Exercises
`
`CHAPTER 3
`BASIC RASTER GRAPHICS ALGORITHMS
`FOR DRAWING 2D PRIMITIVES
`
`67
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
`Overview
`3.1
`Scan Converting Lines
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
`3.2
`Scan Converting Circles
`.. ................ , . . . . . . . . . . . . 81
`3.3
`Scan Converting Ellipses
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
`3.4
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
`Filling Rectangles
`3.5
`Filling Polygons
`. . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . 92
`3.6
`Filling Ellipse Arcs
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
`3.7
`Pattern Filling
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
`3.8
`Thick Primitives
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
`3.9
`3.10 Line Style and Pen Style .................. • ...... . ..... 109
`3.11 Clipping in a Raster World
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
`3.12 Clipping Lines
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . Ill
`
`TEXAS INSTRUMENTS EX. 1009 - 18/1253
`
`

`

`xviil
`
`Contents
`
`3. 13 Clipping Circles and EUipses ......•.•................... 124
`3.14 Clipping Polygons
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
`3.15 Generating Characters
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
`3. 16 SRGP ..copy Pixel
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
`3.17 Anuahasmg ....... . .......... ... .................. 132
`3. 18 Summary ......................................

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket