Computer Graphics with OpenGL / Edition 3 available in Hardcover
- Pub. Date:
- Prentice Hall
Reflecting the rapid expansion of the use of computer graphics and of C++ as a programming language of choice for implementation, this book converts all programming code into the C++ language. This new edition is a complete revision, bringing the text up to date with current advances in computer graphics technology and applications.
Assuming readers have no prior familiarity with computer graphics, the authors—both authorities in their field—present basic principles for design, use, and understanding of computer graphics systems using their well-known, and accessible writing style. It includes an exploration of GL, PHIGS, PHIGS+, GKS and other graphics libraries and covers topics such as distributed ray tracing, radiosity, physically based modeling, particle systems, and visualization techniques.
For professionals in any area of computer graphics: CAD, Animation, Software Design, etc. Previously announced in 12/2002 catalog.
|Product dimensions:||8.16(w) x 10.28(h) x 1.50(d)|
About the Author
Donald Hearn joined the Computer Science faculty at the University of Illinois at Urbana-Champaign in 1985. Dr. Hearn has taught a wide range of courses in computer graphics, scientific visualization, computational science, mathematics, and applied science. Also, he has directed numerous research projects and published a variety of technical articles in these areas.
M. Pauline Baker is on the faculty of the Computer Science Department and the School for Informatics at Indiana University-Purdue University. Dr- Baker is also a Distinguished Scientist and the Director of the Pervasive Technology Lab for Visualization and Interactive Spaces, and she collaborates with research groups on the use of computer graphics and virtual reality to explore scientific data. Previously, Dr. Baker was the Associate Director for Visualization and Virtual Environments at NCSA (National Center for Supercomputer Applications), University of Illinois.
Read an Excerpt
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.
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.
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, 1 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; xmg, r 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.
Table of Contents
1. A Survey of Computer Graphics.
2. Overview of Graphics Systems.
3. Graphics Output Primitives.
4. Attributes of Graphics Primitives.
5. Geometric Transformations.
6. Two-Dimensional Viewing.
7. Three-Dimensional Viewing.
8. Three-Dimensional Object Representations.
9. Visible-Surface Detection Methods.
10. Illumination Models and Surface-Rendering Methods.
11. Interactive Input Methods and Graphical User Interfaces.
12. Color Models and Color Applications.
13. Computer Animation.
14. Hierarchical Modeling.