Standards Pipeline The OpenGL Specification - ACM Digital Library

5 downloads 0 Views 153KB Size Report
Packard, IBM, Intel, Intergraph, Microsoft, Silicon. Graphics and Sun Microsystems.The OpenGL. 1.0 Specification was completed in June 1992. In. January 1996 ...
Standards Pipeline The OpenGL Specification George S. Carson GSC Associates, I n c .

Introduction This is the first in a series of Slumdards Pipeline articles concerning important "de-facto" or "public" specifications rather than formal standards. Paula Womack and John Schimpf of 5GI contributed the material on which this article is based.

Background OpenGL® is a visualization library that is owned and controlled by an Architectural Review Board (ARB) consisting of Digital Equipment, Evans & Sutherland, H e w l e t t Packard, IBM, Intel, Intergraph, Microsoft, Silicon Graphics and Sun Microsystems.The OpenGL 1.0 Specification was completed in June 1992. In January 1996, the ARB approved OpenGL I.I which includes additional texturing support, support for IoRic operations in RGB mode and vertex an'ays (an interface for defining geometry with fewer subroutine calls).

API Levels OpenGL is a low-level API intended for programmers who want to write portable code that accesses the hardware at the lowest possible level. One goal of the desikmers of OpenGL was to only include features in the API that could be accelerated in hardware. Convenience functions and data management utilities (e.g., scene graph management) are relegated to higher level libraries. The ARB-approved OpenGL Utility library, libGLU, provides many convenience functions for O p e n G L These include matrix utilities, tools for generatim¢ mipmaps from texture images and support for rendering trimmed NURBS and non-convex polygons. Several higher level toolkits have been written for OpenGL Open Inventor is an objectoriented, 3D toolkit that is very easy to use. It is available on a wide variety of platforms and the Open Inventor file format was the basis of the VRML 1.0 and VRML 2.0 file formats. Performer is a real-time rendering and scene management toolkit for SGI machines. It is very popular among developers of databases who want to get the maximum performance possible out of the graphics system in demanding applications such as visual simulations. The ARB is currently working on a objectoriented 3D toolkit library built on top of OpenGL. They will leverage the experience

from Performer and Open Inventor to create a toolkit that is both easy to use and which provides very high performance.

Application Areas OpenGL is not domain specific: It can and does support a broad range of applications. OpenGL is nor just used for high-end applications (plus today's high-end application is tomorrow's standard requirement). Here are how some important application areas are addressed by OpenGL GRRtes While games programmers have been slow to adopt any standard API, OpenGL has been used by visual simulation applications such as flight simulators and ten-ain flyovers for years. Uke games, these applications require interactive frame rates, efficient texture and data management and the ability to trade scene complexity for quick frame updates. OpenGL is a much easier API to use for games programming than many competing approaches, (for example, Direct3D programs are typically about four times longer than the equivalent OpenGL program), and it contains most of the features that =~ame progr'ammers require. W e b Clients Web applications need a graphics library that is available on all low-cost platforms, regardless of OS. OpenGL is available on low-cost Unix workstations in addition to W i n d o w s NT, Windows 95 and Mac OS platforms. Also, OpenGL is accessible to JavaTM applications through efficient Java bindings. Intranet web applications must be able to display VRML files. The best way to do this is to use a higher level t o o l k i t such as the OpenGL toolkit being developed by the ARB. OpenGL is a great choice for the low-level rendering substrate when compared with competing approaches (the VRML file format itself was based on the Open Inventor file format, and Open Inventor was based on OpenGL).

Engineering Applications OpenGL is the only choice for developers of engineering applications because it is the only API that contains all the features that they need and i¢ is the only API that is available on both W i n d o w s N T and Unix workstations. For example, other APIs lack supporC for key features required by CAD applications, including front-face culling, stippled lines, trimmed NURBS and stencil buffers.

It is also important to note that OpenGL vendors can easily add extensions to enhance the capabilities for particular markets. For example, Silicon Graphics and Hewlert Packard both support extensions such as histogram and convolution to better support imaging applications.

Platforms (HW and OS) OpenGL relies on the local windowing system to manage windows, input events, etc. Because OpenGL is designed to do the rendering and not the windowing and I/O, it can be ported to virtually any platform, OpenGL is currently available on platforms running X-Windows, Unix, Windows95,Windows NT, Mac O5, OS/2, Linux and BeOs. In fact, there are shipping OpenGL implementations available on all workstations, including: • • • • • • • • • •

Apple (Available for Mac OS via 3rd party support) Digital Equipment (Unix andWindows NT) Evans& Sutherland (Unix andWindows NT) Fujitsu (Windows N'I') Hewletr Packard (Unix andWindows NI") Hurnminghird Communications (PC X Windows Terminals) IBM (Unix and 05/2) Intergmph (Windows N'I-) NCD (Unix XTerminals) Silicon Graphics (Unix) Sun Microsystems (Unix)

In addition, Microsoft supports OpenGL for both Windows NT and Windows 95. The following vendors will provide OPOnGL drivers to accelerate Microsoft's OpenGL library on Intel ~arforrns: • • • • • • • •



3Dlabs GLINT and Permedia chips 3DfxVoodoo ATI RAGE Accel Graphics - - AccelPro, AccelR8, AG300/500 Diamond Multimedia-- FireGL, Stealth 3D Dynamic Pictures - - Oxygen ELSA-- GLoria Number Nine - - Imagine 12B O m n i c o m p - - 3Demon Matrox - - Millenium Lockheed-Martin - - R3D/IOO 53 --Vir~e,VirgeVX

Not only does OpenGL run on all these platforms but the implementations are guaranteed to be consistent because all implementations of O p e n G L must pass a set of conformance tests.

Computer Graphics May 1997 17

Marketplace Acceptance by ISVs Nearly all professional supercomputing, workstation and personal computer graphics applications are based on OpenGL.The list of these applications is long, and includes leading animation systems (e.g., Microsoft's SOFTIMAGEI3D; Alias/Wavefront's PowerAnimator; and Nichimen Graphic's Nworld); CAD systems (e.g., Parametric Technology's Pro/Engineer and CDRS; SDRC's IDEAS; Division's dVS; and Dassault's Catia); modeling tools (e.g, MultiGen, Designer's Workbench, LightScape's LVS); visual simulation (e.g. Paradigm's Vega; MultiGen's MultiGen and GameGen; and Hughes Trainings RightView UTD); broadcast and film post production applications (e.g., Discreet Logic's Flame, Inferno, Fire, and Vapor; Avid Technologies' Maestro; and Kodak's Cineon); location based entertainment (LBE) (e.g., Magic Edge's XDV7, Disney's Aladdin and Infobyte's Nefertari's Tomb; virtual reality (e.g. Sense8's WorldToolKit, Integrated Data Systems' Vrealm and Fakespace's Immersive WorkBench); publishing (e.g.,Adobe's Premiere); scientific visualization (e.g. the CAVE from University of Iowa); 3DWeb Browsers such as SGrs Cosmo Player; and broadcast video (e.g. the CBS, NBC, CNN and BBC election coverage). In short, there are many applications using OpenGL - - far too many to mention here. Game developers are really the only application developers that have been slow to embrace OpenGL But it is important to note that, as yet, they haven't embraced any 3D API - - most games today are based on proprietary graphics rendering code. However, this is changing as game developers begin to write games that take advantage of the 3D accelerator cards that are now available for PCs. ID Software is leading the charge, developing a new version of Quake that will require hardware acceleration. They have ported this version of Quake to both OpenGL and Direct3D. Although both OpenGL and Direct3D provide hardware acceleration on a wide variety of PC cards, OpenGL is much easier to use (the OpenGL port of Quake was done in a weekend!). Interplay/BioWare's Shattered Steel II is another example of the application of OpenGL to games programming. For more information on Quake, OpenGL and ID Software, [email protected].

Evolution The evolution of OpenGL is controlled by the ARB, as mentioned above.This is important because it guarantees that OpenGL can be efficiently implemented on a wide variety of platforms. Currently the OpenGL ARB is working on cross platform metafile and printing suppo~ an object-oriented 3D toolkit that will efficiently

18 May 1997Computer Graphics

manage the scene data and provide an easy to use programming interface for application developers and version 1.2 of OpenGL which will include additional texture mapping and imaging capabilities. It is also easy for any vendor to extend OpenGL to expose a particular feature of their hardware or to address a particular market segment.There is a forum for vendors to share extensions so that vendors who are interested in extending OpenGL in the same way can collaborate. In fact, almost all of the features in OpenGL I.I started out as extensions that multiple vendors defined and implemented. George S.Carson

GSCAssociates,Inc. 5272 Redman Road Las Cruces,NM 8801 I Tel: + 1-505-521-7399 Fax:+ 1-505-521-932I Email:[email protected]