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:
- Geometric and raster primitives
- RGBA or color index mode
- Display list or immediate mode
- Viewing and modeling transformations
- Lighting and Shading
- Hidden Surface Removal (Depth Buffer)
- Alpha Blending (Translucency)
- Anti-Aliasing
- Texture Mapping
- Atmospheric Effects (Fog, Smoke, Haze)
- Feedback and Selection
- Stencil Planes
- Accumulation Buffer
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.
Level 1 License
The level 1 license is designed to provide an extremely
low cost entry level into creating and marketing
OpenGL binaries. However, level 1 does not entitle the
licensee to the sample implementation source code,
which requires a level 2 license. Licensees are permitted
to redistribute OpenGL binaries to end-users.
OpenGL Specification
This written specification defines the API and identifies
the underlying principles of OpenGL, including the
transformation, lighting, and texturing pipeline,
pixelization rules, display lists, and state requests.
OpenGL Utility Library Specification and Source Code
The written specification defines and the source code
implements a collection of higher level graphics functions,
such as spheres, cones, and NURBS surfaces. The
OpenGL Utility Library is a mandatory part of any
OpenGL implementation.
OpenGL/X Window System Interface Specification
This written specification defines the OpenGL interface
to the X Window System (the GLX API).
OpenGL/X Server Protocol Extension Specification
This written specification defines the network protocol
for the GLX extension, as it is encapsulated within the
X protocol byte stream. This extension enables consistent
client-server communication between any
OpenGL implementation on an X Window System
platform.
OpenGL/X Window System
Client Side Library Source Code
ANSI C code allowing OpenGL applications to run
remotely and communicate and render on a host via
the X Server extension.
OpenGL Hard Copy and
Machine Readable Documentation
This includes an off-line copy of the OpenGL
Programming Guide and a redistributable, on-line
copy of the manual pages.
OpenGL Conformance Test
Specification and Source Code
OpenGL FORTRAN and ADA Bindings
OpenGL Sample Programs
Level 2 License
The level 2 license provides additional source code to
give licensees a head start in creating OpenGL binaries.
Licensees are permitted to redistribute OpenGL binaries
to end users.
A level 2 license contains all level 1 information and
source code, and in addition:
OpenGL Sample Implementation (SI)
An ANSI C code implementation of OpenGL suitable
for use as a porting base. The SI is intended to be
optimized by each vendor for optimal performance on its
own graphics hardware.
OpenGL Sample X Server Extension Source Code
An ANSI C code implementation of an X Server extension which will
invoke OpenGL rendering.
OpenGL Optimization and Porting Guide
Level 3 License
A level 3 license provides the licensee the right to
redistribute modified OpenGL source code to third parties
who are already OpenGL source licensees. A level 3
license includes all items described for a level 2 license.
Site and University Licensing
Companies or universities interested in licensing
OpenGL for use within their own site or campus for
internal or instructional purposes can get access to a
source license for OpenGL for a reduced rate, but they
may not redistribute OpenGL binaries off their sites.
Redistribution Fees
Support, Maintenance, and Consulting Contracts
Support, maintenance, and interim updates are avail-
able to OpenGL licensees under annual support con-
tracts with Silicon Graphics.
Support Pricing
Consulting
Available. Call for Pricing.