Home      Discussion      Topics      Dictionary      Almanac
Signup       Login
OpenGL Performer

OpenGL Performer

Overview
OpenGL Performer, formerly known as IRIS Performer and commonly referred to simply as Performer, is a commercial library of utility code built on top of OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

 for the purpose of enabling hard real-time
Real-time computing
In computer science, real-time computing , or "reactive computing", is the study of hardware and software systems that are subject to a "real-time constraint"—i.e., operational deadlines from event to system response. By contrast, a non-real-time system is one for which there is no deadline, even...

 visual simulation applications. OpenGL Performer was developed by SGI
Silicon Graphics
Silicon Graphics, Inc. was a manufacturer of high-performance computing solutions, including computer hardware and software, founded in 1981 by Jim Clark and Abbey Silverstone...

, who continues to maintain and enhance it. OpenGL Performer is available for IRIX
IRIX
IRIX is a computer operating system developed by Silicon Graphics, Inc. to run natively on their 32- and 64-bit MIPS architecture workstations and servers. It is based on UNIX System V with BSD extensions. IRIX is the origin of the XFS file system....

, Linux
Linux
Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed,...

, and several versions of Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces...

. Both ANSI C
ANSI C
ANSI C is the standard published by the American National Standards Institute for the C programming language. Software developers writing in C are encouraged to conform to the requirements in the document, as it encourages easily portable code....

 and C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level and low-level language features...

 bindings are available.

Performer came about in 1991 when a group from SGI's Open Inventor
Open Inventor
Open Inventor, originally IRIS Inventor, is a C++ object oriented retained mode 3D graphics API designed by SGI to provide a higher layer of programming for OpenGL. Its main goals are better programmer convenience and efficiency.-Early history:...

 project, then known as IRIS Inventor, decided to focus on performance rather than ease of programmability.
Discussion
Ask a question about 'OpenGL Performer'
Start a new discussion about 'OpenGL Performer'
Answer questions from other users
Full Discussion Forum
 
Encyclopedia
OpenGL Performer, formerly known as IRIS Performer and commonly referred to simply as Performer, is a commercial library of utility code built on top of OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

 for the purpose of enabling hard real-time
Real-time computing
In computer science, real-time computing , or "reactive computing", is the study of hardware and software systems that are subject to a "real-time constraint"—i.e., operational deadlines from event to system response. By contrast, a non-real-time system is one for which there is no deadline, even...

 visual simulation applications. OpenGL Performer was developed by SGI
Silicon Graphics
Silicon Graphics, Inc. was a manufacturer of high-performance computing solutions, including computer hardware and software, founded in 1981 by Jim Clark and Abbey Silverstone...

, who continues to maintain and enhance it. OpenGL Performer is available for IRIX
IRIX
IRIX is a computer operating system developed by Silicon Graphics, Inc. to run natively on their 32- and 64-bit MIPS architecture workstations and servers. It is based on UNIX System V with BSD extensions. IRIX is the origin of the XFS file system....

, Linux
Linux
Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed,...

, and several versions of Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces...

. Both ANSI C
ANSI C
ANSI C is the standard published by the American National Standards Institute for the C programming language. Software developers writing in C are encouraged to conform to the requirements in the document, as it encourages easily portable code....

 and C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level and low-level language features...

 bindings are available.

History


Performer came about in 1991 when a group from SGI's Open Inventor
Open Inventor
Open Inventor, originally IRIS Inventor, is a C++ object oriented retained mode 3D graphics API designed by SGI to provide a higher layer of programming for OpenGL. Its main goals are better programmer convenience and efficiency.-Early history:...

 project, then known as IRIS Inventor, decided to focus on performance rather than ease of programmability. Whereas Inventor delivered easy-to-use objects and various UI elements to interact with them, Performer focused on a scene graph
Scene graph
A scene graph is a general data structure commonly used by vector-based graphics editing applications and modern computer games. Examples of such programs include AutoCAD, Adobe Illustrator, Acrobat 3D, OpenSceneGraph and CorelDRAW....

 system that could be re-arranged on the fly for performance reasons, allowing the various passes of a rendering task to be performed in parallel in multiple threads
Thread (computer science)
In computer science, a thread of execution results from a fork of a computer program into two or more concurrently running tasks. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

. Performer allowed the scene to describe levels of detail with hysteresis bands and fade capabilities. Frame rate and statistics were monitored and a 'stress' factor was calculated. This could be used to further weight the level of detail in the scene eliminating detail to maintain a target frame rate.

Other key features of Performer were the use of symmetric multi-processing capabilities, support multiple graphics pipes and the ability to utilize the scalable resources of high end systems. In this regard Performer was actually simple to use given the underlying complexity. Application culling and rendering could be running in different threads locked to different physical processors. In a multi-pipe (multiple graphics subsystems) configuration rendering to each graphics pipe would have a dedicated thread and similarly culling would also have a dedicated processor. Advanced features like database paging, texture paging and point light source management (for flight simulation) and intersection testing for collision detection would also have dedicated processors allowing asynchronous i/o and processing to occur without negatively impacting graphics performance. Most of this complexity was hidden beneath a simpler scene graph API with relatively high level configuration calls which could be made to set up the threads and inter-process communication.

Performer did not have a native file format, merely plugin loaders from 3rd parties such as MultiGen's OpenFlight format loader. Similarly there was no default runtime, there was sample code and the often used and often modified 'perfly' sample application. This probably contributed to its reputation for being difficult to use.

By the mid-1990s it started to become clear that there was no reason that Inventor and Performer could not be combined. This led to the Cosmo 3D project that SGI was intending to build both Inventor and Performer (now essentially API shim
API shim
In computer programming, a shim is a small library that transparently intercepts an API, changing the parameters passed, handling the operation itself, or redirecting the operation elsewhere. Shims typically come about when the behaviour of an API changes, thereby causing compatibility issues for...

s) out of, as well as promote as a new and higher-level standardized API for future work on the SGI platform. However after the first beta release of Cosmo 3D, SGi joined with Intel and IBM
IBM
International Business Machines Corporation, abbreviated IBM, is a multinational computer technology and IT consulting corporation headquartered in Armonk, Town of North Castle, New York, United States. The company is one of the few information technology companies with a continuous history dating...

 (and later DEC
Digital Equipment Corporation
Digital Equipment Corporation was a pioneering American company in the computer industry. It is often referred to within the computing industry as DEC...

) to create OpenGL++, essentially a cleaned up version of Cosmo. This project died when SGI turned their attention to an almost identical project with Microsoft
Microsoft
Microsoft Corporation is a multinational computer technology corporation that develops, manufactures, licenses, and supports a wide range of software products for computing devices...

 known as Fahrenheit
Fahrenheit graphics API
Fahrenheit was an effort to create a unified high-level API for 3D computer graphics to unify Direct3D and OpenGL. It was designed primarily by Microsoft and SGI and also included work from an HP-MS joint effort. Much of the original Fahrenheit project was abandoned, and Microsoft and SGI...

, which was also killed. Today Inventor and Performer remain separate products, and none of the combined versions ever saw the light of day.

Features


Performer consists primarily of two libraries: the lower-level libpr and the higher-level libpf. The libpr library provides an object-oriented interface to high-speed rendering functions based on the concept of a pfGeoSet and a pfGeoState. A pfGeoSet is a collection of graphics primitives, such as polygons or lines. A pfGeoState encapsulates properties pertaining to a given pfGeoSet such as lighting, transparency, and texturing.

The libpf library includes functions for the generation and manipulation of hierarchical scene graphs, scene processing (simulation, intersection, culling, and drawing tasks), level-of-detail management, asynchronous database paging, dynamic coordinate systems, environment models, light points, and so on. This library also provides transparent support for multiple viewports spread across multiple graphics pipelines.

Other Performer libraries--libpfutil, libpfdb, libpfui, etc.--provide functions for generating optimized geometry, database conversion, device input (such as for interfacing with external flyboxes and MIL-STD-1553
MIL-STD-1553
MIL-STD-1553 is military standard published by the United States Department of Defense that defines the mechanical, electrical and functional characteristics of a serial data bus. It was originally designed for use with military avionics, but has also become commonly used in spacecraft on-board...

 mux busses), motion models, collision models, and a format-independent database interface that supports common data formats such as Open Inventor
Open Inventor
Open Inventor, originally IRIS Inventor, is a C++ object oriented retained mode 3D graphics API designed by SGI to provide a higher layer of programming for OpenGL. Its main goals are better programmer convenience and efficiency.-Early history:...

, OpenFlight, Designer's Workbench, Medit, and Wavefront
Wavefront
In optics and physics, a wavefront is the locus of points having the same phase. Since infrared, optical, x-ray and gamma-ray frequencies are so high, the temporal component of electromagnetic waves is usually ignored at these wavelengths, and it is only the phase of the spatial oscillation that...

.

External links