next up previous
Next: The Graphics Pipeline

Hardware for Accelerating OpenGL

Mark J. Kilgard gif
Silicon Graphics Inc.

The last five OpenGL columns discussed OpenGL programming techniques and explained source code examples. This feature article is not about programming, but instead explores the ways graphics hardware can accelerate OpenGL rendering. The intent is to provide you with enough knowledge about 3D graphics hardware architecture to evaluate and select the right graphics hardware for your needs and budget.

The OpenGL graphics system is a standard programming interface for 3D graphics. OpenGL is window system independent and is available for the X Window System, Windows NT, and OS/2. Implementations for the Macintosh and Windows 95 are planned.

OpenGL is intended for interactive graphics where specialized graphics hardware can greatly improve graphics performance. Also, OpenGL is designed to be appropriate for a wide variety of graphics systems. The same OpenGL standard should achieve good performance on computers ranging from PCs to tomorrow's fastest graphics supercomputers. This is despite two or more orders of magnitude between both the expected performance and cost at the extremes of such a range of computers.

One view of OpenGL is that OpenGL is a high-level description of the functionality that an OpenGL capable graphics subsystem must implement. Within OpenGL's prescribed functionality, there are numerous approaches to implement OpenGL for various price/performance levels.

The process of rendering interactive computer graphics is a highly specialized task that benefits greatly from graphics hardware designed to support the basic operations that occur repeatedly during graphics operations. As a rule, effectively utilized graphics hardware results in better graphics performance. At the same time, adding specialized hardware to a computer system increases the cost of the system. Deciding how many dollars a graphics system should devote to hardware for accelerating graphics operations is determined by the price/performance requirements of the complete system.

At a minimum, displaying OpenGL graphics requires video display hardware connected to a frame buffer. A frame buffer is a bank of memory designed to hold an array of image pixels that can be continuously scanned out to video display hardware. Beyond this minimum hardware support for displaying graphics, varying degrees of additional hardware can accelerate OpenGL rendering.

  
Figure 1: How the OpenGL state machine maps to the general graphics pipeline.





next up previous
Next: The Graphics Pipeline



mjk@sgi.com