Durisar Whereas rendering primarily is concerned with surfaces, animation algorithms require a model with additional properties like articulation and mass. A graphics platform acts as the intermediary between the application and the underlying graphics hardware, providing a layer of abstraction to shield the programmer from the details of driving the graphics processor. His research addresses 3D user interfaces, augmented reality, wearable computing, and many topics at the intersection of human-computer interaction and computer graphics. This third edition has been completely rewritten to provide detailed and up-to-date coverage of key concepts, algorithms, technologies, and applications. Download Ch 29 4.
|Published (Last):||14 June 2011|
|PDF File Size:||6.34 Mb|
|ePub File Size:||18.34 Mb|
|Price:||Free* [*Free Regsitration Required]|
Newton-Raphson Iteration for Root Finding. Until recently it was an esoteric specialty involving expensive display a hardware, substantial computer resources, and idiosyncratic software. 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 3D 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 corner. Thus "real-time" vector displays in showed moving wire-frame objects made of tens of thousands of vectors without hidden-edge removal; in 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-performance systems provide real-time texture mapping, anitialiasing, atmospheric attenuation for fog and haze, and other advanced effects. Graphics software standards have also advanced significantly since our first edition.
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 modeling objects, not just for creating their pictures. Furthermore, interest is growing in describing the time-varying geometry and behavior of 3D 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 artificial-intelligence techniques to assist in the design of object models, in motion planning, and in the layout of effective 2D and 3D graphical presentations.
Today the frontiers of graphics 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 pages, we 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. We explain how to do applications programming in each of these packages and who 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 2D desktop metaphors and for 3D interaction devices. Coverage of modeling is expanded to include NURB nonuniform rational B-spline curves and surfaces, a chapter on solid modeling, and a chapter on advanced modeling techniques, such as physically based modeling, procedural models, factals, L-grammar systems, and particle systems.
Increased coverage of rendering includes a detailed treatment of antialiasing and greatly expanded chapters on visible-surface determination, illumination, and shading, including physically based illumination models, 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 fundamentals and ending with more complex and specialized subjects.
Basic Group. Chapter 1 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 2D integer graphics 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 two chapters, 5 and 6, introduce the ideas of transformations in the plane and 3-space, representations by matrices, the use of homogeneous coordinates unify linear and affine transformations, and the description of 3D views, including the transformations from arbitrary view volumes to canonical view volumes. Chapter 7 also discusses the advantages and disadvantages of the hierarchy available in PHIGS and the structure of applications that use this graphics package.
User Interface Group. Chapters 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 mangers, interaction technique-libraries, and user-interface management systems, is addressed. Model Definition Group. The first two modeling chapters, 11 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 conversion from one to another. This chapter also briefly addresses rules for the effective use of color. Image Syntheses 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 transform and convolution.
Chapter 15 describes a variety of strategies for visible-surface determination in enough detail to allow the reader to implement some of the most important ones. Illumination and shading algorithms are covered in detail in Chapter The early part of part of this chapter discusses algorithms most commonly found in current hardware, while the remainder treats texture, shadows, transparency, reflections, physically based illumination models, rat tracing, and radiosity methods.
The last chapter in this group, Chapter 17, describes both image manipulations, such as scaling, shearing, and rotating pixmaps, and image storage techniques, including various image-compression schemes. Advanced Techniques Group. The last four chapters give an overview of the current state of the 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-performance graphics architectures.
Chapter 19 describes the complex raster algorithms used for such tasks as scan-converting arbitary conics, generating antialiased text, and implementing page-description languages, such as PostScript. The final two chapters survey some of the most important techniques in the fields of high-level modeling and computer animation.
The first two groups cover only elementary material and thus can be used for a basic course at the undergraduate level. 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 2D graphics would include Chapters 1 and 2, simple scan conversion and clipping from Chapter 3, a technology 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" point of view from Sections 6. The User Interface Group, Chapters , would be followed by selected introductory sections and simple algorithms from the Image Syntheses Group, Chapters 14, 15, and A one-course general overview of graphics would include Chapters 1 and 2, basic algorithms from Chapter 3, raster architectures and interaction devices from Chapter 4, Chapter 5, and most of Chapters 6 and 7 on viewing and SPHIGs.
The second half of the course would include sections on modeling from Chapters 11 and 13, on image syntheses 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 3D modeling and rendering would start with Chapter 3 sections on scan converting, clipping of lines and polygons, and introducing antialiasing. The course would then progress to Chapters 5 and 6 on the basic mathematics of transformations and viewing.
Chapter 13 on color, and then cover the key Chapters 14, 15 and 16 in the Image Syntheses 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. Acknowledgments This 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. Additional valuable editing on multiple versions of multiple chapters was provided by Debbie van Dam, Melissa Gold, and Clare Campbell.
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. 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.
Plates II. Siegel, under the direction of M. Jeff Vogel implemented the algorithms of Chapter 3, and he and Atul Butte verified the code in Chapters 2 and 7.
Randy Pausch and his students ported the packages to the PC environment. Send email to "graphtext cs. Preface to the C Edition This is the C-language version of a book originally written with examples in Pascal. It includes all changes through the ninth printing of the Pascal second edition, as well as minor modifications to several algorithms, and all it s Pascal code has been rewritten in ANSI C.
See page for information on obtaining the software. We wish to thank Norman Chin for converting the Pascal code of the second edition to C, proofreading it, and formatting it using the typographic conventions of the original. Thanks to Matt Ayers for careful proofing of Chapters 2, 3, and 7, and for useful suggestions about conversion problems.
Computer Graphics: Principles and Practice, 3rd Edition
Computer Graphics: Principles and Practice in C, 2nd Edition