OpenGL(tm) It's Everywhere

OpenGL is the premier environment for developing 2D and 3D graphics applications. The OpenGL application programming interface (API) is a vendor neutral, multiplatform industry standard. Licensees of OpenGL support the API on a range of computers: from PC's to work- stations to supercomputers. Porting OpenGL applications among conforming OpenGL implementations is simple and easy.

It's Everywhere

Several leading PC, workstation, and super- computer vendors, including Cray Research, Digital Equipment, Evans & Sutherland, Harris Computer, Hitachi, IBM, Intel, Intergraph, Kendall Square Research, Kubota Pacific, Media Vision, Microsoft, NEC, Samsung, Sony, and Silicon Graphics are committed to OpenGL as a strategic open standard for high performance 2D and 3D graphics. Third party solutions for Hewlett-Packard and Sun products are available from several companies, including Du Pont Pixel Systems and Portable Graphics.

A Tradition in Computer Graphics OpenGL is the direct descendant of the IRIS Graphics Library (tm)(IRIS GL). Invented in 1982, over 1500 3D applications are currently written with IRIS GL. OpenGL inherits that legacy of experience in applications development. All critical rendering functionality from IRIS GL is in OpenGL. OpenGL applications are, and will be, ported from IRIS GL, and new applications will be written directly with OpenGL.

Features/Application Portability

OpenGL provides a wide range of graphics features: from rendering a simple geometric point, line, or filled polygon, to the most sophisticated lighted and texture mapped NURBS curved surface. The 250 routines of OpenGL provide software developers access to these graphics capabilities:

These functions are provided on every conforming OpenGL implementation to make applications written with OpenGL easily portable between platforms. All licensed OpenGL implementations are required to pass the Conformance Tests, and come from a single specification and language binding document.

Architecture

The OpenGL state machine is a good model for representing graphics problems. The figure above provides a high-level block diagram of how OpenGL processes data. Commands enter from the left and proceed through what can be thought of as a processing pipeline. Some commands specify geometric objects to be drawn, and others control how the objects are handled. All elements of OpenGL state, even the contents of the texture memory and the frame buffer, can be obtained by an OpenGL application.

Let's look at an example. Want to draw a 3D model consisting of lighted, smooth shaded polygons? Turn on the lighting state and set your values for the material properties. Turn on the smooth shading. Set your viewing transformation. For each polygon, declare a current surface normal to define its orientation. Now that you've established the current state, issue the vertices which comprise each polygon. The OpenGL state machine will process and render those polygons into the frame buffer.

In subsequent renderings, you can further enhance your model. You can turn on the depth buffer and remove hidden surfaces. You can even add fog or apply a texture map to your model.

Easy to Learn

For an experienced graphics programmer, the OpenGL interface is easily understood. However, for someone new to graphics, help is readily and inexpensively available. Addison-Wesley publishes a two-volume set (The OpenGL Technical Library) to make the learning process very easy. The OpenGL Programming Guide (ISBN: 0-201-63274-8) is your starting point, walking you step by step with plenty of code examples through the entire OpenGL, from first polygon to texture map- ping and motion blur. The OpenGL Reference Manual (ISBN: 0-201-63276-4) describes the technical operation of each OpenGL routine.

For more intensive assistance, hands-on classes in OpenGL are available from the Silicon Graphics Technical Education Department.

Integration

The model for interpretation of OpenGL commands is client-server. A client application issues commands, which are interpreted and processed by an OpenGL server. The server and client may operate on different machines; thus, OpenGL is network transparent. If not going over a network, the client-server communication might be replaced by local rendering, which may be faster.

OpenGL is hardware, window, and operating system independent. On one implementation, OpenGL may run with the X Window (tm) System and UNIX. On another implementation, OpenGL may run with Windows (tm) and MS-DOS tm) or Windows NT (tm). OpenGL is or will be compatible with other APIs, such as Xlib, OSF/Motif, IRIS Inventor, ImageVision, and IRIS Performer (tm). OpenGL is designed to be callable from C, C++, FORTRAN, and Ada.

Governance

OpenGL is defined and released by the OpenGL Architecture Review Board (ARB). (At the time of this printing, there were 5 members of the Board: DEC, IBM, Intel, Microsoft and SGI.) Every member of the ARB has a single vote towards determining the future of OpenGL. The OpenGL ARB oversees the administration of the OpenGL Specification and Conformance Test Suite.

The OpenGL Advisory Forum is composed of licensees who are not on the ARB: ISV's, end users, universities, and others who influence and observe the actions of the OpenGL ARB.

OpenGL Licensing Program

OpenGL is licensable at three levels. Only system vendors, peripheral suppliers, or software companies providing an OpenGL development or run time environment are required to license OpenGL. End users or software developers writing code based on the OpenGL API use OpenGL free of licensing requirements. The ARB approved OpenGL specification and source code are available.