| OpenGL is a good 3D graphics API. When asked "What makes a good 3D graphics API?", most software developers will probably mention the following:
Efficiency is often in the eye of the beholder. Many applications require frame rates that allow real-time interactivity, whereas significantly lower frame rates suffice for applications such as offline video production and visualizing terabytes of scientific data. If the application isn't the bottleneck, and the API is well designed, API efficiency should always be an implementation issue. A good API design should facilitate and never hinder efficient implementations. In general, an API whose design facilitates efficiency allows implementation on a wide variety of graphics hardware architectures and computing platforms. Moreover, well-designed APIs remain popular for years and run on several generations of graphics hardware architectures (Lichtenbelt 1997). But for most software developers, the question of API support boils down to "Is it available on my development platform?" or, more important, "Is it available on my customers' platforms?" OpenGL implementations on a wide variety of hardware architectures are well documented (Cojot 1996, Carson 1997, Kilgard 1997, McCormack 1998). Defining and measuring ease of use is somewhat subjective. Does the API provide a rich feature set? Does it allow flexible usage? Is it self-consistent? After you've learned how to use the API to solve one rendering problem, can you draw upon what you've learned to solve other rendering problems? A majority of "yes" answers indicates that the API is easy to use. If you assume that efficiency and availability are givens, your primary concern as a new programmer is ease of use. This introductory chapter outlines the overall design of OpenGL and shows you how easy it is to put together a simple test program. What You'll LearnChapter 1 presents the following topics:
What You Won't LearnKeep this in mind as you read this chapter:
|