本书是一本内容丰富、取材新颖的计算机图形学著作,并在其第一版的基础上进行了全面扩充,增加了许多新的内容,覆盖了近年来计算机图形学的最新发展和成就。全书层次分明、重点突出,并附有大量的程序及插图,是一本难得的优秀教材。
\r\n 全书共分为16章。首先对计算机图形学进行综述,然后讲解了二维图形的对象表示、算法及应用、三维图形技术、建模和变换等,还介绍了光照模型、颜色模型和动画技术。最后附录中给出了计算机图形学中用到的基本数学概念。
\r\n 本书适用于本科生和研究生作为教材或参考书,也可以作为计算机图形学工作者的参考书。
1.计算机图形学综述;\r\n2.图形系统综述;\r\n3.输出图元;\r\n4.输出图元的属性\r\n5.二维几何变换\r\n6.二维观察\r\n7.结构和层次模型\r\n8.图形用户界面和交互输入方法\r\n9.三维概念 \r\n10.三维物体的表示\r\n11.三维几何和建模变换\r\n12.三维观察\r\n13.可见面判别算法;\r\n14.光照模型和面绘制算法\r\n15.颜色模型和颜色应用\r\n16.计算机动画\r\n附录A 计算机图形学的数学基础\r\n
DONALD HEARN,从1985年开始任教于伊利诺伊大学URBANA-CHAMPAIGN分校的计算机科学学院。HEARN博士担任过多门课程的教学工作,其中包括计算机图形学、科学计算可视化、计算科学、数学和应用科学等。他还指导过多个研究项目并在该领域发表了大量的学术论文。
M.PAULINE BAKER,印第安那大学一普度大学计算机科学学院和信息学院的教授。BAKER博士担任着可视化和交互空间渗透技术实验室主任一职,同时她也是一位杰出的科学家。BAKER博士正在研究使用计算机图形和虚拟现实技术进行科学数据挖掘。在此之前,她还担任过伊利诺伊大学NCSA的可视化和虚拟环境实验室副主任。
Computer graphics remains one of the most exciting and rapidly growing areas of modern technology. Since the appearance of the first edition of this book, computer graphics has become a standard feature in applications software and computer systems in general. Computer, graphics methods are routinely applied in the design of most products, in training simulators, in the production of music videos and television commercials, in motion pictures, in data analysis, in scientific studies, in medical procedures, and in numerous other applications. A great variety of techniques and hardware devices are now in use or under development for these diverse application areas. In particular, much of today's computer-graphics research is concerned with improving the effectiveness, realism, and speed of picture generation. To produce a realistic view of a natural scene, a graphics program must simulate the effects of actual light reflections and refractions from physical objects. Therefore, the current trend in computer graphics is to incorporate improved approximations of physics principles into graphics algorithms, to better simulate the complex interactions between objects and a lighting environment.
Features of the Third Edition
The material in this third edition evolved from notes used in a variety of courses we have taught over the years, including introductory computer graphics, advanced computer graphics, scientific visualization, special topics, and project courses. When we wrote the first edition of this book, many graphics courses and applications dealt only with two-dimensional methods, so we separated the discussions of two-dimensional and three-dimensional graphics techniques. A solid foundation in two-dimensional computer-graphics procedures was given in the first half of the book, and three-dimensional methods were discussed in the second half. Now, however, three-dimensional graphics applications are commonplace, and many initial computer-graphics courses either deal primarily with three-dimensional methods or introduce three-dimensional graphics at an early stage. Therefore, a major feature of this third edition is the integration of three-dimensional and two-dimensional topics.
We have also expanded the treatment of most topics to include discussions of recent developments and new applications. General subjects covered in this third edition include: current hardware and software components of graphics systems, fractal geometry, ray tracing, splines, illumination models, surface rendering, computer animation, virtual reality, parallel implementations for graphics algorithms, antialiasing, superquadrics, BsP trees, particle systems, physically based modeling, scientific visualization, radiosity, bump mapping, and morphing. Some of the major expansion areas are animation, object representations, the three-dimensional viewing pipeline, illumination models, surface-rendering techniques, and texture mapping.
Another significant change in this third edition is the introduction of the OpenGL set of graphics routines, which is now widely used and available on most computer systems. The OpenGL package provides a large and efficient collection of device-independent functions for creating computer-graphics displays, using a program written in a general-purpose language such as C or C++. Auxiliary libraries are available in OpenGL for handling input and output operations, which require device interactions, and for additional graphics procedures such as generating cylinder shapes, spherical objects, and B-splines.
Programming Examples
More than twenty complete C++ programs are provided in this third edition, using the library of graphics routines available in the popular OpenGL package. These programs illustrate applications of basic picture-construction techniques, two-dimensional and three-dimensional geometric transformations, two-dimensional and three-dimensional viewing methods, perspective projections, spline generation, fractal methods, interactive mouse input, picking operations, menu and submenu displays, and animation techniques. In addition, over one hundred C++/OpenGL program segments are given to demonstrate the implementation of computer-graphics algorithms for clipping, lighting effects, surface rendering, texture mapping, and many other computer-graphics methods.
Required Background
We assume no prior familiarity with computer graphics, but we do assume that the reader has some knowledge of computer programming and basic data structures, such as arrays, pointer lists, files, and record organizations. A variety of mathematical methods are used in computer-graphics algorithms, and these methods are discussed in some detail in the appendix. Mathematical topics covered in the appendix include techniques from analytic geometry, linear algebra, vector and tensor analysis, complex numbers, quaternions, basic calculus, and numerical analysis.
This third edition can be used both as a text for students with no prior background in computer graphics and as a reference for graphics professionals. The emphasis is on the basic principles needed to design, use, and understand computer-graphics systems, along with numerous example programs to illustrate the methods and applications for each topic.
Suggested Course Outlines
For a one-semester course, a subset of topics dealing with either two-dimensional methods or a combination of two-dimensional and three-dimensional topics can be chosen, depending on the requirements of a particular course. A two-semester course sequence can cover the basic graphics concepts and algorithms in the first semester and advanced three-dimensional methods in the second. For the self-study reader, early chapters can be used to provide an understanding of graphics concepts, supplemented with selected topics from the later chapters.
At the undergraduate level, an introductory computer-graphics course can be organized using selected material from Chapters 2 through 6, 11, and 13. Sections could be chosen from these chapters to cover two-dimensional methods only, or three-dimensional topics could be added from these chapters along with limited selections from Chapters 7 and 10. Other topics, such as fractal representations, spline curves, texture mapping, depth-buffer methods, or color models, could be introduced in a first computer-graphics course. For an introductory graduate or upper-level undergraduate course, more emphasis could be given to three-dimensional viewing, three-dimensional modeling illumination models, and surface-rendering methods. In general, however, a two-semester sequence provides a better framework for adequately covering the fundamentals of two-dimensional and three-dimensional computer-graphics methods, including spline representations, surface rendering, and ray tracing. Special-topics courses, with an introductory computer-graphics prerequisite, can be offered in one or two areas, selected from visualization techniques, fractal geometry, spline methods, ray tracing, radiosity, and computer animation.
Chapter 1 illustrates the diversity of computer-graphics applications by taking a look at the many different kinds of pictures that people have generated with graphics software. In Chapter 2, we present the basic vocabulary of computer graphics, along with an introduction to the hardware and software components of graphics systems, a detailed introduction to OpenGL, and a complete OpenGL example program. The fundamental algorithms for the representation and display of simple objects are given in Chapters 3 and 4. These two chapters examine methods for producing basic picture components such as polygons and circles; for setting the color, size, and other attributes of objects; and for implementing these methods in OpenGL. Chapter 5 discusses the algorithms for performing geometric transformations such as rotation and scaling. In Chapters 6 and 7, we give detailed explanations of the procedures for displaying views of two-dimensional and three-dimensional scenes. Methods for generating displays of complex objects, such as quadric surfaces, splines, fractals, and particle systems are discussed in Chapter 8. In Chapter 9 we explore the various computer-graphics techniques for identifying the visible objects in a three-dimensional scene. Illumination models and the methods for applying lighting conditions to a scene are examined in Chapter 10. Methods for interactive graphics input and for designing graphical user interfaces are given in Chapter 11. The various color models useful in computer graphics are discussed in Chapter 12, along with color-design considerations. Computer-animation techniques are explored in Chapter 13. Methods for the hierarchical modeling of complex systems are presented in Chapter 14. And, in Chapter 15, we survey the major graphics file formats.
Acknowledgments
Many people have contributed to this project in a variety of ways over the years. To the organizations and individuals who furnished pictures and other materials, we again express our appreciation. We also acknowledge the many helpful comments received from our students in various computer-graphics and visualization courses and seminars. We are indebted to all those who provided comments, reviews, suggestions for improving the material covered in this book, and other input, and we extend our apologies to anyone we may have failed to mention. Our thanks to Ed Angel, Norman Badler, Phillip Barry, Brian Barsky, Hedley Bond, Bart Braden, Lara Burton, Robert Burton, Greg Chwelos, John Cross, Steve Cunningham, John DeCatrel, Victor Duvaneko, Gary Eerkes, Parris Egbert, Tony Faustini, Thomas Foley, Thomas Frank, Don Gillies, Andrew Glassner, Jack Goldfeather, Georges Grinstein, Eric Haines, Robert Herbst, Larry Hodges, Carol Hubbard, Eng-Kiat Koh, Mike Krogh, Michael Laszlo, Suzanne Lea, Michael May, Nelson Max, David McAllister, Jeffrey McConnell, Gary McDonald, C. L. Morgan, Greg Nielson, James Oliv. er, Lee-Hian Quek, Laurence Rainville, Paul Ross, David Salomon, GOnther Schrack, Steven Shafer, Cliff Shaffer, Pete Shirley, Carol Smith, Stephanie Smullen, Jeff Spears, William Taffe, Wai Wan Tsang, Spencer Thomas, Sam Uselton, David Wen, Bill Wicker, Andrew Woo, Angelo Yfantis, Marek Zaremba, Michael Zyda, and the many anonymous reviewers. We also thank our editor Alan Apt, Toni Holm, and the Colorado staff for their help, suggestions, encouragement, and, above all, their patience during the preparation of this third edition. And to our production editors and staff, Lynda Castillo, Camille Trentacoste, Heather Scott, Xiaohong Zhu, Vince O'Brien, Patricia Bums, Kathy Ewing, and David Abel, we extend our sincere appreciation for their many talented contributions and careful attention to detail.