TM

OpenGL® The Industry’s Foundation for High-Performance Graphics

Developer-Driven Advantages ■ Industry standard. An independent consortium, the OpenGL Architecture Review Board, guides the OpenGL specification. With broad industry support, OpenGL is the only truly open, vendor-neutral, multiplatform graphics standard.

■ Stable. OpenGL implementations have been avail- able for more than seven years on a wide variety of platforms. Additions to the specification are well controlled, and proposed updates are announced in time for developers to adopt changes. Backward compatibility requirements ensure that existing applications do not become obsolete.

■ Reliable and portable. All OpenGL applications produce consistent visual display results on any OpenGL API-compliant hardware, regardless of operating system or windowing system.

■ Evolving. Because of its thorough and forward- looking design, OpenGL allows new hardware innova- tions to be accessible through the API via the OpenGL Most Widely Adopted Graphics Standard extension mechanism. In this way, innovations appear OpenGL is the premier environment for developing in the API in a timely fashion, letting application portable, interactive 2D and 3D graphics applications. developers and hardware vendors incorporate new Since its introduction in 1992, OpenGL has become features into their normal product release cycles. the industry’s most widely used and supported 2D and ■ Scalable. OpenGL API-based applications can run 3D graphics application programming interface (API), on systems ranging from consumer electronics to bringing thousands of applications to a wide variety PCs, workstations, and supercomputers. As a result, of computer platforms. OpenGL fosters innovation applications can scale to any class of machine that and speeds application development by incorporating the developer chooses to target. a broad set of rendering, texture mapping, special ■ effects, and other powerful visualization functions. Easy to use. OpenGL is well structured with an intu- Developers can leverage the power of OpenGL across itive design and logical commands. Efficient OpenGL all popular desktop and workstation platforms, routines typically result in applications with fewer lines ensuring wide application deployment. of code than those that make up programs generated using other graphics libraries or packages. In addition, High Visual Quality and Performance OpenGL drivers encapsulate information about the Any visual computing application requiring maximum underlying hardware, freeing the application developer performance—from 3D animation to CAD to visual from having to design for specific hardware features. simulation—can exploit high-quality, high-perfor- ■ Well-documented. Numerous books have been mance OpenGL capabilities. These capabilities allow published about OpenGL, and a great deal of sample developers in diverse markets such as broadcasting, code is readily available, making information about CAD/CAM/CAE, entertainment, medical imaging, OpenGL inexpensive and easy to obtain. and virtual reality to produce and display incredibly compelling 2D and 3D graphics. Datasheet The OpenGL Visualization Programming Pipeline

IMAGING PATH

Image Unpack Pixels Pixel Operations Image Rasterization

Display Lists Texture Memory Fragment Operations TO FRAME BUFFER

GEOMETRY PATH

Geometry Unpack Vertices Vertex Operations Geometric Rasterization

OpenGL operates on image data as well as geometric primitives.

Simplifies Software Development, Speeds Architected for Flexibility and Differentiation Time-to-Market Although the OpenGL specification defines a particular OpenGL routines simplify the development of graphics graphics processing pipeline, platform vendors have the software—from rendering a simple geometric point, line, freedom to tailor a particular OpenGL implementation or filled polygon to the creation of the most complex lighted to meet unique system cost and performance objectives. and texture-mapped NURBS curved surface. OpenGL gives Individual calls can be executed on dedicated hardware, software developers access to geometric and image primitives, run as software routines on the standard system CPU, display lists, modeling transformations, lighting and texturing, or implemented as a combination of both dedicated hard- anti-aliasing, blending, and many other features. ware and software routines. This implementation flexibility Every conforming OpenGL implementation includes the full means that OpenGL hardware acceleration can range from complement of OpenGL functions. The well-specified OpenGL simple rendering to full geometry and is widely available standard has language bindings for C, C++, Fortran, Ada, and on everything from low-cost PCs to high-end workstations Java™. All licensed OpenGL implementations come from and supercomputers. Application developers are assured a single specification and language binding document and are consistent display results regardless of the platform imple- required to pass a set of conformance tests. Applications mentation of the OpenGL environment. utilizing OpenGL functions are easily portable across a wide Using the OpenGL extension mechanism, hardware developers array of platforms for maximized programmer productivity can differentiate their products by developing extensions that and shorter time-to-market. allow software developers to access additional performance All elements of the OpenGL state—even the contents of the and technological innovations. texture memory and the frame buffer—can be obtained by an OpenGL application. OpenGL also supports visualization API Hierarchy applications with 2D images treated as types of primitives that can be manipulated just like 3D geometric objects. As shown in the OpenGL visualization programming pipeline diagram WINDOWS APPLICATION UNIX APPLICATION above, images and vertices defining geometric primitives are passed through the OpenGL pipeline to the frame buffer. GLU GLU Available Everywhere Supported on all UNIX® workstations, and shipped standard GDUWGL OpenGL XlibGLX OpenGL with every Windows NT® and Windows® 95 PC, no other graphics API operates on a wider range of hardware platforms ■ OpenGL applications use the window system’s and software environments. OpenGL runs on every major window, input, and event mechanism operating system including Mac® OS, OS/2®, UNIX, Windows ■ GLU supports quadrics, NURBS, complex polygons, 95, Windows NT, , OPENStep, Python, and BeOS; matrix utilities, and more it also works with every major windowing system, including Presentation Manager, Win32, and X/Window System™. This diagram demonstrates the relationship between OpenGL OpenGL is callable from Ada, C, C++, Fortran, and Java GLU and windowing . and offers complete independence from network protocols and topologies. The Foundation for Advanced APIs OpenGL Applications (partial list) Leading software developers use OpenGL, with its robust Company Application rendering libraries, as the 2D/3D graphics foundation for higher-level APIs. Developers leverage the capabilities of 3D ANIMATION AND MODELING OpenGL to deliver highly differentiated, yet widely supported Alias|Wavefront Maya™ vertical market solutions. For example, Open Inventor™ Byte by Byte Soft F/X 3D provides a cross-platform user interface and flexible scene Caligari truSpace graph that makes it easy to create OpenGL applications. CrystalGraphics Crystal 3D Impact Pro IRIS Performer™ leverages OpenGL functionality and delivers Hash Inc. Hash 3D Animation System additional features tailored for the demanding high frame rate Hollywood FX Inc. Hollywood FX markets such as visual simulation and virtual sets. OpenGL Kinetix 3D Studio Max, Character Studio Optimizer™ is a toolkit for real-time interaction, modification, Lightscape Lightscape MultiGen GameGen™, MultiGen® Creator and rendering of complex surface-based models such as Newtek LightWave 3D those found in CAD/CAM and special effects creation. The Nichimen Graphics N-World Fahrenheit Scene Graph, scheduled for release in 1999, will Softimage Digital Studio, Softimage 3D® leverage OpenGL capabilities to provide a platform for appli- Strata StudioPro™ cations and APIs across diverse market segments, allowing Template Graphics Software LiveWork 3D, 3Space Publisher reduced development time, maximized performance, and high visual quality. CAD/CAM & DIGITAL PROTOTYPING

® Governance Bentley Systems MicroStation CoCreate SolidDesigner The OpenGL Architecture Review Board (ARB), an inde- Dassault Systèmes CATIA® pendent consortium formed in 1992, governs the OpenGL EDS Unigraphics Unigraphics® specification. Composed of members from many of the Kinetix 3D Studio VIZ industry’s leading graphics vendors, the ARB defines confor- Matra Datavision EUCLID Quantum mance tests and approves OpenGL enhancements. Currently Parametric Technology Corp. Pro/ENGINEER®, PT/Modeler the board includes representatives from Compaq, Evans Parasolid UG/Creator & Sutherland, Hewlett-Packard, IBM, Intel, Intergraph, SDRC I-DEAS™ , and . The OpenGL ARB Web SolidWorks SolidWorks site can be found at www..org. The OpenGL Performance Characterization Committee, VISUAL SIMULATION AND VIRTUAL REALITY another independent organization, creates and maintains Advanced Visual Systems AVS/Express™ OpenGL benchmarks and publishes the results of those Coryphaeus Software Designer’s Workbench™ benchmarks on its Web site: DataPath RealiMation www.specbench.org/gpc/opc.static/index.html. IBM Visualization Data Explorer MultiGen MultiGen II Pro Continued Innovation Paradigm Simulation Vega ® The OpenGL standard is constantly evolving. Formal revi- Research Systems IDL ™ sions occur at periodic intervals, and extensions allowing Sense8/Engineering Animation Inc. WorldToolKit Silicon Graphics IRIS Performer application developers to access the latest hardware advances through OpenGL are continuously being developed. As VRML extensions become widely accepted, they are considered for Cosmo Software Cosmo™ World, PageFX inclusion into the core OpenGL standard. This process allows Ligos Technology V-Realm Builder OpenGL to evolve in a controlled yet innovative manner. Rendersoft Rendersoft VRML Editor In the most recent revision of OpenGL (version 1.2), several Sense8/Engineering Animation Inc. World Up capabilities that were previously available as extensions were Systems in Motion PolyRed rolled into the core OpenGL standard. (See back page for more details.) GAMES Epic Megagames Unreal Licensing id Software Quake2 ARB-approved OpenGL specifications and source code are ION Storm Dai-Katana, Anachronox available to licensed hardware platform vendors. End users, Laminar Research X-Plane independent software vendors, and others writing code based Ritual Entertainment SiN on the OpenGL API are free from licensing requirements. Valve Software Half-Life See www.opengl.org/Developers/developers.html for more Zombie VR Studios SpecOps information. OpenGL

OPENGL GRAPHICS FUNCTIONS (partial list) Pixel operations. Storing, transforming, • Texture coordinate edge clamping to avoid blend- Accumulation buffer. A buffer in which multiple mapping, zooming. ing border and image texels during texturing rendered frames can be composited to produce a Polynomial evaluators. To support non- • Level of detail control for mipmap textures single blended image. Used for effects such as depth uniform rational B-splines (NURBS). to allow loading only a subset of levels; this of field, motion blur, and full-scene anti-aliasing. Primitives. A point, line, polygon, bitmap, can save texture memory when high-resolution Alpha blending. Provides a means to create or image. Raster primitives: Bitmaps and pixel texture images are not required due to tex- transparent objects. Using alpha information, an rectangles. tured objects being far from the viewer object can be defined as anything from totally RGBA mode. Color buffers store red, green, • Vertex array enhancements to specify a subrange transparent to totally opaque. blue, and alpha color components, rather than of the array and draw geometry from that Anti-aliasing. A rendering method used to indices. subrange in one operation; this allows a variety smooth lines and curves. This technique averages of optimizations such as pretransforming, caching Selection and picking. A mode in which the color of the pixels adjacent to the line. It has transformed geometry, and so on OpenGL determines whether certain user- the visual effect of softening the transition of the identified graphics primitives are rendered OPTIONAL IMAGING FEATURES pixels on the line and those adjacent to the line, into a region of interest in the frame buffer. OF OPENGL 1.2 thus providing a smoother appearance. Stencil planes. A buffer that can be used to The optional imaging subset includes a variety Color-index mode. Color buffers store color mask individual pixels in the color frame buffer. of enhancements to the OpenGL pixel path. indices rather than red, green, blue, and alpha An implementation may or may not support the color components. Texture mapping. The process of applying an image to a graphics primitive. This technique is subset, but any implementation that supports it Display list. A named list of OpenGL commands. used to generate realism in images. For example, must provide all of the documented features. The contents of a display list may be preprocessed a tabletop drawn as a rectangle could have a The imaging subset includes all of the following and might therefore execute more efficiently than wood-grain texture applied to it to make it look features: the same set of OpenGL commands executed in more realistic. immediate mode. • Blending enhancements include specifying a Transformation. The ability to change the constant color as one component of a blend as Double buffering. Used to provide smooth rotation, size, and perspective of an object in well as a way to define new blending equations; animation of objects. Each successive scene of an 3D coordinate space. some of the new equations supported include object in motion can be constructed in the back the ability to choose the minimum or maximum or “hidden” buffer and then displayed. This allows Z-buffering. The Z-buffer is used to keep track of the blend colors and to subtract one of the only complete images to ever be displayed on of whether one part of an object is closer to the blend colors from the other the screen. viewer than another. It is important in hidden surface removal. •A color matrix stage, which transforms colors Feedback. A mode where OpenGL will return under an arbitrary 4x4 matrix, may be enabled the processed geometric information (colors, pixel NEW CORE CAPABILITIES OF OPENGL 1.2 after convolution; it may be used to reassign and positions, and so on) to the application as com- duplicate color components or for simple color pared to rendering them into the frame buffer. The latest specification of the OpenGL API defines new core capabilities for all 1.2 implementations space conversions Gouraud shading. Smooth interpolation of and a new optional imaging subset. • Color tables are an RGBA format color look-up colors across a polygon or line segment. Colors mechanism capable of operating on a subset of are assigned at vertices and linearly interpolated • Three-dimensional texturing for supporting color components; it is possible to respecify parts across the primitive to produce a relatively hardware-accelerated volume rendering of a color table without recreating the table smooth variation in color. • BGRA pixel formats and packed pixel formats to • Simple 1D and 2D convolutions may then be Immediate mode. Execution of OpenGL directly support more external file and hardware done; both separable and nonseparable 2D commands when they’re called, rather than frame buffer types filters are allowed; new convolution border from a display list. • Automatic rescaling of vertex normals changed modes define several possible behaviors when by the modeling matrix; rescaling can, in some Materials lighting and shading. The ability the filter samples both image and border pixels to accurately compute the color of any point cases, replace a more expensive renormalization • The pixel path may gather histogram statistics given the material properties for the surface. operation that the application may query • Application of specular highlights after texturing for more realistic lighting effects

Corporate Office U.S. 1(800) 800-7441 Canada 1(905) 625-4747 2011 N. Shoreline Boulevard Europe (44) 118-925.75.00 Australia/New Zealand (61) 2.9879.95.00 Mountain View, CA 94043 Asia Pacific (81) 3-54.88.18.11 SAARC/India (91) 11.621.13.55 (650) 960-1980 Latin America 1(650) 933.46.37 Sub-Saharan Africa (27) 11.884.41.47 See www.opengl.org for daily OpenGL updates. URL: http://www.sgi.com

© 1998 Silicon Graphics, Inc. All rights reserved. Specifications subject to change without notice. Silicon Graphics, OpenGL, IRIS, and the Silicon Graphics logo are registered trademarks, and Open Inventor, IRIS Performer, Maya, OpenGL Optimizer, and Cosmo are trademarks, of Silicon Graphics, Inc. UNIX is a registered trademark in the U.S. and other countries, licensed exclusively through X/Open Company Limited. Mac is a registered trademark of Apple Computer, Inc. Windows and Windows NT are registered trade- marks of Microsoft Corporation. Java is a trademark of Sun Microsystems, Inc. OS/2 is a registered trademark of IBM. MultiGen is a registered trademark, and GameGen is a trademark, of MultiGen Inc. Softimage 3D is a registered trademark of Softimage, a wholly owned subsidiary of Microsoft Corporation. StudioPro is a trademark of Strata, Inc. MicroStation is a registered trademark of Bentley Systems, Inc. CATIA is a registered trademark of Dassault Systèmes. Unigraphics is a registered trademark of Electronic Data Systems. I-DEAS is a trademark of Structural Dynamics Research Corp. Pro/ENGINEER is a registered trademark of Parametric Technology Corporation. AVS/Express is a trademark of Advanced Visual Systems, Inc. Designer’s Workbench is a trademark of Coryphaeus Software, Inc. IDL is a registered trademark of Research Systems, Inc. WorldToolKit is a trademark of Sense8 Corporation. X/Window System is a trademark of Massachusetts Institute of Technology. All other trademarks mentioned herein are the property of their respective owners. Front cover image credit: “Man standing with arms out” image provided by GPC News. Image created using Alias|Wavefront’s Advanced Visualizer software, OpenGL. “Engine Mount” image courtesy of Computational Engineering Solutions International, Inc. “Palm Springs” image provided by ERDAS, Inc. Data provided by SPOT Image Corporation. “St. Peter’s Basilica” image courtesy of ENEL SpA and InfoByte SpA. “Grey Robot” Maya image by Alias|Wavefront. “Surf/Viz” image courtesy of GeoQuest, an operating unit of Schlumberger. “Video entertainment system controller” courtesy of Benny S. Chi, BSC Engineering. 434 (7/98)