OpenGL® Distilled is a concise book about the essential, commonly used features of modern OpenGL, the industry-standard cross-platform API for high-performance 3D computer graphics. By focusing on essential OpenGL features, eliminating discussion of algorithms, and pointing the reader to sources of additional information, OpenGL® Distilled provides useful information quickly and concisely. OpenGL version 1.0 was introduced by SGI in 1992 and quickly dominated the 3D software development industry. It is available for several versions of Microsoft Windows, Linux, and Unix, and for Apple Mac OS. Graphics hardware manufacturers supporting OpenGL include 3Dlabs, ATI, Intel, Matrox, NVIDIA, and SGI. The fact that OpenGL is an open standard is certainly one reason for its popularity. The OpenGL feature set is determined by the OpenGL Architecture Review Board (ARB), a governing body composed of representatives from several major hardware and software companies.[1] This group meets regularly to discuss and approve additions and modifications to the OpenGL specification. The ARB's multivendor nature ensures that OpenGL runs equally well on a wide variety of graphics architectures.
This book documents OpenGL version 2.0, released in September 2004. Although OpenGL has evolved significantly since its initial release, each version has remained compatible with previous versions. The benefits of backward compatibility are obvious, and several companies have taken advantage of OpenGL's stability to amortize the expense of software development. Over time, some older OpenGL features fell into disfavor as the ARB added new rendering methods and paradigms to the OpenGL standard. Still other features never quite caught on with the developer community for a variety of reasons, such as corner-case or platform-specific applicability, overlapping or limited functionality, or nearly universal inefficient implementation. The addition of new functionality, while continuing to keep older (and increasingly obsolete) features for backward compatibility, has resulted in a bulky and more complex OpenGL specification. Consider:
Although such comprehensive documentation is indispensable for experienced programmers, the documentation's growth in size and complexity over the years has increased the learning curve for new OpenGL developers. Furthermore, finding advice on accepted modern usage is difficult for new OpenGL programmers due to the sheer magnitude of information or time wasted learning outdated methodologies and paradigms. OpenGL® Distilled addresses these issues by presenting only the essential elements of modern OpenGL used in current 3D software development. To meet this goal, several features of OpenGL have been left out of this book. OpenGL® Distilled presents the commonly used features and accepted practices in modern OpenGL programming. Features that have fallen into disfavor are omitted except where they help illustrate accepted practices or important concepts. Each chapter begins with a summary of what is and what is not covered. To reduce the learning curve further, OpenGL® Distilled presents information in a direct, how-to style so that readers can find information quickly without wading through extraneous information. For this reason, there is little explanation or discussion of graphics algorithms. Shadow algorithms (discussed in Chapter 6) are the exception because of their almost-universal applicability and lack of direct OpenGL support. For other algorithms, OpenGL® Distilled assumes that the reader is familiar with computer graphics or is reading OpenGL® Distilled as part of a university-level computer graphics course. This book presents the subset of OpenGL that most programmers can use to do the majority of their OpenGL programming. Because this material is a subset, the reader will likely desire access to more information. For this reason, OpenGL® Distilled serves as a gateway or road map to additional OpenGL and 3D graphics programming information. This book will frequently refer to the following resources:
|