The production of this book, itself, illustrates the concepts of integration and visualization in computer graphics systems. It was designed and built from initial prospectus through cameraready copy on the author's Macintosh and MS-DOS workstations. All graphics appearing in the text were generated by the algorithms, application programs, and image sources described in the text. All images and image processing results shown in the text were generated, transformed, and embedded in the text on the same machine. This text is unique among books in the field because it is a product of the graphical systems and processes that it describes. By demonstrating to students the graphical capabilities of systems widely available on their own campuses, we hope to inspire them to explore and extend the graphics paradigm in their own programs.
Many of the advanced graphics tools described, such as
digital image scanners, digital video protocols, image libraries of 3D
clip-art and movies, and animation tools, were simply not available on
earlier personal workstations at any price. The present text demonstrates
not only the graphical capabilities of such tools but also illustrates
how graphical information from diverse hardware and software systems can
be integrated in one document. Our objective in this project was to produce
a book distinguished by its emphasis on visualization, integration, and
Visualization also provides the key for solving one of
the most severe problems posed by supercomputers and presentday, highcapacity
instrumentation for measurement and data collection. This is the problem
of the information explosion. Weather satellites, seismic sensors,
and medical scanners produce data far more rapidly than trained humans
can analyze it. By offering tools for visualization, computer graphics
provides a highly efficient technique for data representation and reduction
that helps humans extract meaning from the "fire hose" of raw data produced
by modern instrumentation.
Image processing and analysis represents a rapidly growing field with applications in surveillance, automation, robotics, pattern recognition, and penbased operating systems. In this text, we attempt to integrate these two complementary areas by recognizing images generated by electronic transducers (video, scanners, and so on) as graphical objects equivalent to those generated by algorithmic techniques. Images of real objects are used throughout the book to illustrate graphics concepts, and a whole chapter is devoted to special techniques for image processing and analysis.
This integration approach is possible through the multimedia capabilities of modern workstations. Integration occurs at the application program level through the ability to capture photographic, video, and screen images and transfer them throughout many programs via the cut and paste option available on graphicsbased operating systems. Thus, graphical data from Pascal programs, painting and drawing programs, and various image digitizers are readily transferred from image enhancement programs to word processors, for example. The integration of applications programs is essential for the production of effective and attractive visual media in all fields of human communication. The advent of dynamic data types, such as the QuickTime™ protocol, has extended the domain of multimedia integration to include sound, animation, and video information.
Another level of integration in which computer graphics plays a key role is at the multitasking and network level. Examples of this integration are provided by Macintosh System 7 and Microsoft Windows NT which allow multiple windows to be open, each of which is actively processing an application program. Through networking, individual workstations become nodes of a massive, parallel architecture. Computer graphics provides the key for understanding and controlling such complex operating systems that would be virtually impenetrable if implemented on oldfashioned, commandline systems.
The final level of integration explored and demonstrated in this text is that of interoperability between computer systems. Standards such as the X Window protocol have simplified the communication of graphical information between heterogeneous networked workstations. Perhaps even more important are the de facto standards for data exchange between major workstation manufacturers like Sun, Apple and IBM. Already most major software manufacturers offer word processing, spread sheets, database, desktop publishing, and CAD programs for the Macintosh and IBM-PC lines which write data files accessible on both systems.
This interoperability at the data level has greatly reduced
the risk factor for prospective buyers of workstation systems - and for textbook
authors - considering the optimum platform. The advantages of standards for
interoperability are apparent in the success of the PostScript page description
language, AutoCAD's DFX file format, and the TIFF image file format. One
of the goals of the Apple/IBM consortium is that of program interoperability.
That level of integration will encourage graphics users to focus on the
capabilities of visualization software (the important stuff) rather than
the peculiarities of individual platforms (a moving target).
Previous graphics books have also frequently been limited to algorithms implemented in FORTRAN, BASIC, Pascal, or C with limited graphics capabilities. Significant application examples such as image processing and CAD, if presented at all, were drawn from a fragmented assortment of graphics workstations, mainframe computers, and specialpurpose machines. We finally have computers available with substantial computing power, excellent graphics rendering features, and a remarkable range of image generation and processing capabilities. A principal objective of this text is to demonstrate the breadth and depth of computer graphics tools available on the major personal workstations. By restricting the examples and illustrations to those readily available on lowcost machines - rather than relying on reproductions of output from a hodgepodge of specialized systems) - we have tried to produce a truly authentic computer graphics book. Students of this text need not gaze wistfully at "Courtesy of …" reproductions, but rather can plunge into the excitement of creating their own graphics masterpieces using the tools and techniques described.
A final aspect of authenticity is the theme of model authenticity
developed throughout the book. The success of ray tracing and radiosity
rendering models is interpreted as a direct result of incorporating the
physics of light and energy. Model authenticity represents the key to
realistic simulation of the behavior of physical objects interacting with
their environment. This principle has been used to produce realistic graphical
simulations of fractal landscapes, draped garments, human smile formation,
and somersaulting Luxo lamps. Model authenticity is demonstrated by numerous
detailed examples, including the simulation of a chaotic pendulum motion
and the use of finite element analysis for visualizing beam deflection.
Such techniques will play a critical role in the emerging field of virtual
Section Two (Chapters 4 - 11) presents the material of a standard computer graphics course through a systematic development and elaboration on the theme of N dimensions. A somewhat unique aspect of this approach, which I have found very helpful in my own courses, is to introduce homogeneous coordinates and transformations in one dimension. This simplifies the mathematical treatment and is easily extended to 2D and 3D in later chapters. Several styles of presentation graphics (pie charts, bar charts, and so on) are presented in a 1D context as examples of representing scalar quantities.
The section devotes increased attention to the increasing complexity involved with representing and rendering images of 2D and 3D scenes. Ray tracing and radiosity are presented as effective approaches for achieving visual realism, and detailed examples of realistic rendering are presented using the REYES architecture of RenderMan. The section concludes with an indepth discussion of fractals as objects of fractional dimension and great visual appeal. Several fractal algorithms are presented, and the chapter concludes with a discussion of iterated function systems as a promising technique for image compression. The material in this section is highly interdependent, and the chapters should be studied in order.
Section Three (Chapters 12 - 16) summarizes some of the
most impressive software tools available for visualization. All of the
languages and examples presented illustrate the important computer graphics
concepts and algorithms of Section Two. Starting with the development of
graphical user interfaces (GUIs) in Chapter 12, it spans the fields of
design, engineering, mathematics, physics, image processing, and the design
of virtual realities. Real visualization examples are presented, using
such outstanding tools as Visual Basic, Mathematica, and the Spyglass series.
The chapters of Section Three are independent of each other and may be
used to provide material to illustrate the graphics concepts of Section
Three possible course configurations in which this text
could be used include the following:
ii) A fifteenweek, undergraduate computer graphics course. Recommended syllabus: Chapter 1, sections of Chapters 2 and 3, and Chapters 4 - 10.
iii) A fifteenweek, upperlevel undergraduate or lowerlevel graduate course in image processing (Prereq: Introduction to Computer Graphics). Recommended syllabus: Chapters 7 - 11 and Chapters 14 - 16.
A final comment on "reinventing the wheel" is appropriate at this point. Most of the algorithms described in the first two sections of the book have been effectively incorporated into many commercial computer graphics applications programs. So why do we sweat through the mathematics of matrix multiplication to implement these algorithms when applications programs have already solved our problem?
There are two points to consider when deciding whether to "build or buy." One is that, for most oneshot graphics applications, there probably exists an excellent commercial program capable of performing the graphics functions you require. In such cases, intelligent project management suggests that you purchase and utilize the appropriate application program.
The second point that should be stressed is that the hallmarks
of modern, userfriendly software are graphical user interfaces and extensive
use of computer graphics throughout. Software engineers and even casual
programmers need some awareness of the underlying graphical data structures,
transformations, and algorithms in order to implement graphics in the
programs they build. The formalism of the first two sections is intended
to develop this understanding of fundamental concepts essential for effective
graphics programming. Because the commercial programs demonstrated in the
text all incorporate fundamental graphical concepts, students will gain
insight into the concepts themselves and inspiration for their own programming
through exposure to wellwritten application programs.
A number of colleagues and institutions have contributed to the production of this textbook. First, I want to thank Earl McPeek, Linda Meehan, and Carla Kipper of Wm. C. Brown Publishers for their enthusiastic support of this project. My colleague Yong Auh contributed greatly to the conceptualization and critical review of the text and to the production of the Vectors and Matrices Appendix. I greatly appreciate the careful reading and creative wordsmithing by Theodora Gottstein and Sue Hess. Particular thanks are due my former student, colleague, and fellow biker, David Siegler, for his contributions in algorithm development, operating system details, and stimulating conversations. Dan Knudson, PHIGS guru and fellow climber, contributed greatly by writing the Fundamental Interactive Graphics System, FIGS, and developing examples of graphical user interfaces. I also appreciate the effort of former student, Scott Singer, in writing the Simulator GUI example. Debra Schroeder also deserves much thanks for appearing like an angel to enter proofreader corrections in the final stages of publication.
I owe a considerable debt to the professional computer graphics community, primarily SIGGRAPH, for the stimulation its publications, short courses and conferences provided. In particular, I want to thank Donald Greenberg, Brian Barsky, Craig Upson, Benoit Mandelbrot, Robert Wolff, Loren Carpenter, Richard Voss, and Alva Ray Smith for inspiring me with the beauty of their graphics and revealing the importance of visualization. Michael Barnsley and Dale Snider were particularly helpful in their reviews of the fractal chapter. Brad Horn of Wolfram Research made valuable corrections and improvements to the Mathematica discussion. V. I. Weingarten, President of Structural Analysis and Research Corporation, contributed to the accuracy of the discussion of finite element analysis. Brand Fortner, of Spyglass, Inc., supported the effort on volume visualization with his programs, Transform and Dicer.
Outside evaluation and critical review were of great assistance throughout the development of the book. In particular, I want to thank the following reviewers: J. D. Robertson, Daniel Lamet, Marc Armstrong, Rosalee NerheimWolfe, Mark Measures, Nan Schaller, Richard Detmer, Jeff Spears, John Lowther, J. Eugene Ball, and Evelyn Rozanski.
Finally, I want to thank the University of WisconsinParkside for a sabbatical year during which the structure of the project emerged and serious writing began. I am indebted to my colleagues Russell Ashdown, Phil Charest, Steven Dolins, Steven Firebaugh, Tim Fossum, Ben Greenebaum, Ron Gutkowski, Tony Larsen, Bill Moy, Bill Ogden, George Perdikaris, Rabah Rennane, Jim Wick, and my computer graphics students for their interest and feedback throughout the development of the book.
M. W. F.